কিছুটা হ্যাকি, কিন্তু:
for f in *.avi; do
echo "Testing $f"
ffmpeg -i "$f" 2>&1 | awk '/Duration/ { split($2,a,":"); exit a[1]*3600+a[2]*60+a[3] < 30 ? 3 : O }'
[[ $? -eq 3 ]] && rm -i -- "$f"
done
এটি ধরে নিয়েছে আপনি ffmpeg
ইনস্টল করেছেন। rm
কোনও ফাইল সরানোর আগে আপনাকে জিজ্ঞাসা করবে, তবে আপনি -i
যদি এটি চান তা করেন তবে আপনি তা মুছে ফেলতে পারেন।
একটি পোর্টেবল রুবি স্ক্রিপ্ট যে হবে না নিশ্চিত হওয়ার জন্য জিঞ্জাসা - কিন্তু আপনি প্রতিস্থাপন করতে পারেন f.delete
সঙ্গে puts f
চেক করতে এটা কী করবেন:
ruby <<"EOF"
Dir.glob("*.avi").each { |f|
ff = %x( ffmpeg -i "#{f}" 2>&1 )
d = ff.match(/Duration: ([0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{2})/)[1].split(":").map{|s| s.to_i}
s = (d[0]*60*60 + d[1]*60 + d[2])
f.delete if s < 30
}
EOF