-pattern_type glob
यह शानदार विकल्प कई मामलों में छवियों का चयन करना आसान बनाता है।
स्लाइडशो वीडियो प्रति सेकंड एक छवि के साथ
ffmpeg -framerate 1 -pattern_type glob -i '*.png' \
-c:v libx264 -r 30 -pix_fmt yuv420p out.mp4
इसमें कुछ संगीत जोड़ें, जब चित्र समाप्त हो जाते हैं तो संभवतः अधिक लंबा ऑडियो कट करें:
ffmpeg -framerate 1 -pattern_type glob -i '*.png' -i audio.ogg \
-c:a copy -shortest -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4
यहां YouTube पर दो डेमो दिए गए हैं:
एक हिप्पी बनें और थियोरा पेटेंट-अनएकेनम्बर वीडियो प्रारूप का उपयोग करें :
ffmpeg -framerate 1 -pattern_type glob -i '*.png' -i audio.ogg \
-c:a copy -shortest -c:v libtheora -r 30 -pix_fmt yuv420p out.ogg
आपकी छवियों को निश्चित रूप से वर्णानुक्रम में क्रमबद्ध किया जाना चाहिए, आमतौर पर निम्नानुसार:
0001-first-thing.jpg
0002-second-thing.jpg
0003-and-third.jpg
और इसी तरह।
मैं पहले यह भी सुनिश्चित करूंगा कि उपयोग की जाने वाली सभी छवियों का एक ही पहलू अनुपात हो, संभवतः उन्हें पहले से imagemagick
या नोमेक के साथ क्रॉप करके , ताकि ffmpeg को कठोर निर्णय नहीं लेने पड़ें । विशेष रूप से, चौड़ाई को 2 से विभाज्य होना चाहिए, अन्यथा रूपांतरण विफल रहता है: "चौड़ाई 2 से विभाज्य नहीं"।
30 एफपीएस पर प्रति फ्रेम एक छवि के साथ सामान्य गति वीडियो
ffmpeg -framerate 30 -pattern_type glob -i '*.png' \
-c:v libx264 -pix_fmt yuv420p out.mp4
यहाँ यह कैसा दिखता है:

जीआईएफ के साथ उत्पन्न: /ubuntu/648603/how-to-create-an-animated-gif-from-mp4-video-via-command-line/837574#837574
इसमें कुछ ऑडियो जोड़ें:
ffmpeg -framerate 30 -pattern_type glob -i '*.png' \
-i audio.ogg -c:a copy -shortest -c:v libx264 -pix_fmt yuv420p out.mp4
परिणाम: https://www.youtube.com/watch?v=HG7c7lldhM4
ये परीक्षण मीडिया हैं जिनका मैंने उपयोग किया है: a
wget -O opengl-rotating-triangle.zip https://github.com/cirosantilli/media/blob/master/opengl-rotating-triangle.zip?raw=true
unzip opengl-rotating-triangle.zip
cd opengl-rotating-triangle
wget -O audio.ogg https://upload.wikimedia.org/wikipedia/commons/7/74/Alnitaque_%26_Moon_Shot_-_EURO_%28Extended_Mix%29.ogg
: चित्रों से बनाए गए का उपयोग कैसे करें भरमार / ओपन एक फाइल करने के लिए प्रस्तुत करने के लिए?
यह देखने के लिए अच्छा है कि वीडियो जीप की तुलना में वीडियो अनुक्रम के तरीके को कितना बेहतर तरीके से संकुचित करता है क्योंकि यह विशेष एल्गोरिदम के साथ फ़्रेम में संपीड़ित करने में सक्षम है:
opengl-rotating-triangle.mp4
: 340 कि
opengl-rotating-triangle.zip
: 7.3M
YouTube अपलोड के लिए एक निश्चित छवि के साथ एक संगीत फ़ाइल को वीडियो में बदलें
उत्तर दिया गया: /superuser/700419/how-to-convert-mp3-to-youtube-allowed-video-format/1472572#1472572
पूर्ण यथार्थवादी स्लाइड शो केस स्टडी सेटअप कदम से कदम
एकल ffmpeg कमांड चलाने की तुलना में स्लाइडशो बनाने के लिए थोड़ा अधिक है, इसलिए यहां इस समयरेखा से प्रेरित एक और दिलचस्प विस्तृत उदाहरण दिया गया है ।
इनपुट मीडिया प्राप्त करें:
mkdir -p orig
cd orig
wget -O 1.png https://upload.wikimedia.org/wikipedia/commons/2/22/Australopithecus_afarensis.png
wget -O 2.jpg https://upload.wikimedia.org/wikipedia/commons/6/61/Homo_habilis-2.JPG
wget -O 3.jpg https://upload.wikimedia.org/wikipedia/commons/c/cb/Homo_erectus_new.JPG
wget -O 4.png https://upload.wikimedia.org/wikipedia/commons/1/1f/Homo_heidelbergensis_-_forensic_facial_reconstruction-crop.png
wget -O 5.jpg https://upload.wikimedia.org/wikipedia/commons/thumb/5/5a/Sabaa_Nissan_Militiaman.jpg/450px-Sabaa_Nissan_Militiaman.jpg
wget -O audio.ogg https://upload.wikimedia.org/wikipedia/commons/7/74/Alnitaque_%26_Moon_Shot_-_EURO_%28Extended_Mix%29.ogg
cd ..
# Convert all to PNG for consistency.
# /unix/29869/converting-multiple-image-files-from-jpeg-to-pdf-format
# Hardlink the ones that are already PNG.
mkdir -p png
mogrify -format png -path png orig/*.jpg
ln -P orig/*.png png
अब हमारे पास अंतिम पहलू अनुपात पर निर्णय लेने के लिए सभी छवि आकारों पर एक त्वरित नज़र है:
identify png/*
कौन से आउटपुट:
png/1.png PNG 557x495 557x495+0+0 8-bit sRGB 653KB 0.000u 0:00.000
png/2.png PNG 664x800 664x800+0+0 8-bit sRGB 853KB 0.000u 0:00.000
png/3.png PNG 544x680 544x680+0+0 8-bit sRGB 442KB 0.000u 0:00.000
png/4.png PNG 207x238 207x238+0+0 8-bit sRGB 76.8KB 0.000u 0:00.000
png/5.png PNG 450x600 450x600+0+0 8-bit sRGB 627KB 0.000u 0:00.000
इसलिए क्लासिक 480p (640x480 == 4/3) पहलू अनुपात उचित लगता है।
यहां तक कि चौड़ाई बनाने के लिए न्यूनतम आकार बदलने के साथ एक रूपांतरण करें (किसी भी चौड़ाई के लिए TODO को स्वचालित करें, यहां मैं सिर्फ identify
आउटपुट पर देखता हूं और एक की चौड़ाई और ऊंचाई कम कर देता हूं ):
mkdir -p raw
convert png/1.png -resize 556x494 raw/1.png
ln -P png/2.png png/3.png png/4.png png/5.png raw
ffmpeg -framerate 1 -pattern_type glob -i 'raw/*.png' -i orig/audio.ogg -c:v libx264 -c:a copy -shortest -r 30 -pix_fmt yuv420p raw.mp4

इससे भयानक उत्पादन होता है, क्योंकि जैसा कि देखा गया है:
ffprobe raw.mp4
ffmpeg सिर्फ पहली छवि का आकार लेता है, 556x494, और फिर अन्य सभी को उस सटीक आकार में परिवर्तित करता है, जिससे उनका पहलू अनुपात टूट जाता है।
अब इमेज को इमेज के अनुसार क्रॉप करके स्वतः ही 480p आस्पेक्ट रेशियो को टारगेट में कन्वर्ट कर दें : इमेज को न्यूनतम पहलू अनुपात में कैसे क्रॉप करें?
mkdir -p auto
mogrify -path auto -geometry 640x480^ -gravity center -crop 640x480+0+0 png/*.png
ffmpeg -framerate 1 -pattern_type glob -i 'auto/*.png' -i orig/audio.ogg -c:v libx264 -c:a copy -shortest -r 30 -pix_fmt yuv420p auto.mp4

तो अब, पहलू अनुपात अच्छा है, लेकिन अनिवार्य रूप से कुछ फ़सल करनी पड़ी, जो छवियों के दिलचस्प हिस्सों को काटती है।
अन्य विकल्प काली पृष्ठभूमि के साथ पैड करना है, जिसमें समान पहलू अनुपात दिखाया गया है: एक बॉक्स में फिट करने के लिए आकार दें और पृष्ठभूमि को "खाली" भाग पर काले रंग में सेट करें
mkdir -p black
ffmpeg -framerate 1 -pattern_type glob -i 'black/*.png' -i orig/audio.ogg -c:v libx264 -c:a copy -shortest -r 30 -pix_fmt yuv420p black.mp4

आम तौर पर हालांकि, आप पहली बार उन समस्याओं से बचने के लिए समान या समान पहलू अनुपात वाली छवियों का चयन करने में सक्षम होंगे।
सीएलआई विकल्पों के बारे में
ध्यान दें कि नाम के बावजूद, -glob
यह शेल ग्लोब पेटेंट के रूप में सामान्य नहीं है, उदाहरण के लिए: -i '*'
विफल रहता है: https://trac.ffmpeg.org/ticket/3620 (जाहिरा तौर पर क्योंकि filetype एक्सटेंशन से घटाया गया है)।
-r 30
-framerate 1
कम फ्रैमरेट्स के लिए वीएलसी जैसे खिलाड़ियों में बग को दूर करने के लिए वीडियो को 30 एफपीएस बनाता है : वीएलसी निम्न 1 एफपीएस वीडियो के लिए एफएफएमपी के साथ छवियों से बनाया गया है इसलिए यह वांछित 1 छवि प्रति सेकंड प्रभाव रखने के लिए प्रत्येक फ्रेम को 30 बार दोहराता है।
अगला कदम
आप यह भी चाहेंगे:
TODO: वीडियो को इंटरमीडिएट फ़ाइलों के बिना कई ऑडियो फ़ाइलों को काटना और समेटना सीखें, मुझे पूरा यकीन है कि यह संभव है:
पर परीक्षण किया गया
ffmpeg 3.4.4, vlc 3.0.3, Ubuntu 18.04।
ग्रन्थसूची