जवाबों:
के साथ प्रयास करें ffmpeg
ffmpeg -i inputfile.avi -r 1 -f image2 image-%3d.jpeg
आप यहाँ दस्तावेज़ पढ़ सकते हैं
-i inputfile.avi
वीडियो इनपुट फ़ाइल inputfile.avi है-r 1
वीडियो के प्रति सेकंड 1 छवि निकालें। प्रति सेकंड आप जो चित्र प्राप्त करना चाहते हैं, उस संख्या को प्रतिस्थापित करें।-f image2
छवि आउटपुट प्रारूप को बल दें, आप संभावित रूप से इसे छोड़ सकते हैं क्योंकि प्रोग्राम फ़ाइल एक्सटेंशन से आउटपुट छवियों के प्रारूप को चुनने की कोशिश करता है।image-%3d.jpeg
आउटपुट छवियों का नाम,% 3D इंगित करता है कि आउटपुट जेनरेट की गई छवियों का क्रम संख्या 3 दशमलव होगा, यदि आप चाहते हैं कि संख्या शून्य से गद्देदार हो तो आपको% 03d का उपयोग करने की आवश्यकता है।-r 1
प्रति सेकंड छवियों की संख्या के लिए है। तो 60ips, या 24 के लिए, यह है -r 24
। और अर्क को सीमित करने के लिए, यह है -ss [start] -t [duration]
।
मैंने अभी हाल ही में विंडोज 32 के लिए वीएलसी का नवीनतम संस्करण डाउनलोड किया है - 2.1.2 रेनविंड और यह ऐसा करने के लिए ठीक काम करता है।
कदम:
1 - टूल> प्राथमिकताएं पर क्लिक करें और सभी रेडियो बटन पर क्लिक करें
2 - नीचे स्क्रॉल करें और विस्तार करने के लिए वीडियो के बगल में स्थित + चिह्न पर क्लिक करें
3 - नीचे स्क्रॉल करें और दृश्य फ़िल्टर पर क्लिक करें और निर्देशिका पथ उपसर्ग (जहाँ आप फ़्रेम को सहेजना चाहते हैं) के लिए जानकारी भरें। सहेजें पर क्लिक न करें।
4 - स्क्रॉल करें और फ़िल्टर के तहत वीडियो पर क्लिक करें
5 - दृश्य वीडियो फ़िल्टर के लिए चेक बॉक्स पर क्लिक करें और सहेजें पर क्लिक करें।
6 - एक वीडियो खोलें और चलाएं और यह .png की बचाएगा
7 - बचत फ्रेम को रोकने के लिए चरण 5 पर वापस जाएं और दृश्य वीडियो फ़िल्टर को अनचेक करें। आसानी से एक बार जब आप जानते हैं कि सेटिंग्स को कहां खोजना है।
उममीद है कि इससे मदद मिलेगी
#!/bin/bash
source_dir="."
output_dir="."
input_file_types=(avi wmv flv mkv mpg mp4)
output_file_type="jpg"
convert() {
echo "" | ffmpeg -ss $ss -y -i "$in_file" -an -f image2 -vframes 1 "$output_dir/$out_file"
}
for input_file_types in "${input_file_types[@]}"
do
find "$source_dir" -name "*.$input_file_types" -print0 | while IFS= read -r -d $'\0' in_file
do
echo "Processing…"
echo ">Input "$in_file
# Replace the file type
out_file=$(echo $in_file|sed "s/\(.*\.\)$input_file_types/\1$output_file_type/g")
echo ">Output "$out_file
# get video duration
# fulltime=`ffmpeg -i "$in_file" 2>&1 | grep 'Duration' | cut -d ' ' -f 4 | sed s/,//`;
# hour=`echo $fulltime | cut -d ':' -f 1`;
# minute=`echo $fulltime | cut -d ':' -f 2`;
# second=`echo $fulltime | cut -d ':' -f 3 | cut -d '.' -f 1`;
# seconds=`expr 3600 \* $hour + 60 \* $minute + $second`;
# ss=`expr $seconds / 2`; # from the middle of video
ss=`expr 10`; # from the 10sec of video
# Convert the file
convert "$in_file" "$out_file"
if [ $? != 0 ]
then
echo "$in_file had problems" >> ffmpeg-errors.log
fi
echo ">Finished "$out_file "\n\n"
done
done
VLC में आप राइट क्लिक, वीडियो, टेक स्नैपशॉट ले सकते हैं