@Dstob উল্লিখিত মত, আপনি ffprobe
আই-ফ্রেম এবং তাদের সম্পর্কিত তথ্য পেতে ব্যবহার করতে পারেন । ডাউনলোড পৃষ্ঠায়ffprobe
কিছু স্থিতিশীল বিল্ডগুলির সাথে আসে এবং উত্স থেকেও নির্মিত যেতে পারে।
এটি ধরে নিচ্ছে আপনি লিনাক্স / ইউনিক্সে রয়েছেন:
ফ্রেম এবং ফ্রেমের প্রকারগুলি বের করুন
ffprobe -select_streams v -show_frames \
-show_entries frame=pict_type \
-of csv bbb480.avi \
| grep -n I | cut -d ':' -f 1
grep
আদেশের সঙ্গে লাইন ফিল্টার I
তাদের মধ্যে, এবং তাদের ইনডেক্স (ব্যবহার, মোট ছাত্র -n
বিকল্প)। cut
কমান্ড আউটপুট শুধুমাত্র (INDEX) প্রথম কলামে নির্বাচন করে। মনে রাখবেন যে এই সূচকটি 1-ভিত্তিক, 0-ভিত্তিক নয়।
সূচকের ভিত্তিতে আউটপুট ফাইলগুলির নাম পরিবর্তন করুন
আপনি আসলে এই সূচকগুলি একটি তালিকায় পাইপ করতে পারেন:
ffprobe -select_streams v -show_frames \
-show_entries frame=pict_type \
-of csv bbb480.avi \
| grep -n I | cut -d ':' -f 1 > frame_indices.txt
তারপরে সমস্ত থাম্বনেইলের একটি তালিকাও তৈরি করুন:
ls -1 thumbnails*.jpeg > thumbnails.txt
তারপরে এই দুটি এক সাথে পেস্ট করুন:
paste thumbnails.txt frame_indices.txt > combined.txt
তালিকায় এখন থাম্বনেল এবং সূচকের নাম রয়েছে। এর উপর ভিত্তি করে একটি নতুন নাম সম্পাদন করুন:
while read -r thumbnail index; do
newIndex=$(echo $index - 1 | bc) # subtract 1 from the index
mv -- "$thumbnail" "thumbnail-$newIndex.jpeg" # rename file
done < combined.txt
উপরের নামকরণ thumbnail-01.jpeg
হবে thumbnail-0.jpeg
। দ্রষ্টব্য যে আউটপুট সূচীতে কোনও শূন্য-প্যাডিং নেই। আপনি যদি এটিতে শূন্য-প্যাড করতে চান, বলুন, 5 সংখ্যা, ব্যবহার করুন printf
:
newIndex=$(printf '%05d' $(echo $index - 1 | bc))
উইন্ডোজে আপনি ঠিক একই কাজটি করবেন ffprobe
তবে আউটপুটকে আলাদাভাবে পার্স করবেন। কীভাবে সেখানে পুনরায় নামকরণ করা যায় তা ধারণা নেই।