काला करने के लिए डुबकी / फीका
क्रॉसफ़ेड विधि के लिए नीचे स्क्रॉल करें।
उदाहरण जहां प्रत्येक छवि 5 सेकंड के लिए प्रदर्शित होती है और प्रत्येक में एक फीका होता है जो 1 सेकंड तक रहता है। प्रत्येक छवि इनपुट में समान चौड़ाई, ऊंचाई और नमूना पहलू अनुपात होता है। यदि वे आकार में भिन्न होते हैं, तो उदाहरण # 3 नीचे देखें।
MP4 आउटपुट
ffmpeg \
-loop 1 -t 5 -i input0.png \
-loop 1 -t 5 -i input1.png \
-loop 1 -t 5 -i input2.png \
-loop 1 -t 5 -i input3.png \
-loop 1 -t 5 -i input4.png \
-filter_complex \
"[0:v]fade=t=out:st=4:d=1[v0]; \
[1:v]fade=t=in:st=0:d=1,fade=t=out:st=4:d=1[v1]; \
[2:v]fade=t=in:st=0:d=1,fade=t=out:st=4:d=1[v2]; \
[3:v]fade=t=in:st=0:d=1,fade=t=out:st=4:d=1[v3]; \
[4:v]fade=t=in:st=0:d=1,fade=t=out:st=4:d=1[v4]; \
[v0][v1][v2][v3][v4]concat=n=5:v=1:a=0,format=yuv420p[v]" -map "[v]" out.mp4
ऑडियो के साथ
ऊपर के समान लेकिन ऑडियो के साथ:
ffmpeg \
-loop 1 -t 5 -i input0.png \
-loop 1 -t 5 -i input1.png \
-loop 1 -t 5 -i input2.png \
-loop 1 -t 5 -i input3.png \
-loop 1 -t 5 -i input4.png \
-i audio.m4a \
-filter_complex \
"[0:v]fade=t=out:st=4:d=1[v0]; \
[1:v]fade=t=in:st=0:d=1,fade=t=out:st=4:d=1[v1]; \
[2:v]fade=t=in:st=0:d=1,fade=t=out:st=4:d=1[v2]; \
[3:v]fade=t=in:st=0:d=1,fade=t=out:st=4:d=1[v3]; \
[4:v]fade=t=in:st=0:d=1,fade=t=out:st=4:d=1[v4]; \
[v0][v1][v2][v3][v4]concat=n=5:v=1:a=0,format=yuv420p[v]" -map "[v]" -map 5:a -shortest out.mp4
भिन्न या मनमाने आकार वाली इनपुट छवियों के लिए
पहले उदाहरण की तरह, लेकिन इनपुट छवियों के साथ जो चौड़ाई x ऊंचाई में भिन्न होती है। इन्हें 1280x720 बॉक्स के भीतर फिट करने के लिए रखा जाएगा:
ffmpeg \
-loop 1 -t 5 -i input0.png \
-loop 1 -t 5 -i input1.png \
-loop 1 -t 5 -i input2.png \
-loop 1 -t 5 -i input3.png \
-loop 1 -t 5 -i input4.png \
-filter_complex \
"[0:v]scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2,setsar=1,fade=t=out:st=4:d=1[v0]; \
[1:v]scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2,setsar=1,fade=t=in:st=0:d=1,fade=t=out:st=4:d=1[v1]; \
[2:v]scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2,setsar=1,fade=t=in:st=0:d=1,fade=t=out:st=4:d=1[v2]; \
[3:v]scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2,setsar=1,fade=t=in:st=0:d=1,fade=t=out:st=4:d=1[v3]; \
[4:v]scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2,setsar=1,fade=t=in:st=0:d=1,fade=t=out:st=4:d=1[v4]; \
[v0][v1][v2][v3][v4]concat=n=5:v=1:a=0,format=yuv420p[v]" -map "[v]" out.mp4
यदि आप फ़सल (लेटरबॉक्स / पिलरबॉक्स) के बजाय फ़सल (स्क्रीन को भरना) चाहते हैं, या यदि आप अपसंस्कृति को रोकना चाहते हैं, तो स्थिर आकार के खिलाड़ी में फिट होने के लिए वीडियो को आकार देने में उदाहरण देखें ।
GIF आउटपुट
फ़िल्टर से जोड़ता है कि मैं उचित गुणवत्ता के साथ ffmpeg का उपयोग करके वीडियो को GIF में कैसे परिवर्तित करूं?
ffmpeg \
-framerate 10 -loop 1 -t 5 -i input0.png \
-framerate 10 -loop 1 -t 5 -i input1.png \
-framerate 10 -loop 1 -t 5 -i input2.png \
-framerate 10 -loop 1 -t 5 -i input3.png \
-framerate 10 -loop 1 -t 5 -i input4.png \
-filter_complex \
"[0:v]fade=t=out:st=4:d=1[v0]; \
[1:v]fade=t=in:st=0:d=1,fade=t=out:st=4:d=1[v1]; \
[2:v]fade=t=in:st=0:d=1,fade=t=out:st=4:d=1[v2]; \
[3:v]fade=t=in:st=0:d=1,fade=t=out:st=4:d=1[v3]; \
[4:v]fade=t=in:st=0:d=1,fade=t=out:st=4:d=1[v4]; \
[v0][v1][v2][v3][v4]concat=n=5:v=1:a=0,split[v0][v1]; \
[v0]palettegen[p];[v1][p]paletteuse[v]" -map "[v]" out.gif
-loop
GIF लूप की संख्या को नियंत्रित करने के लिए आउटपुट विकल्प का उपयोग करें । यदि इस विकल्प का उपयोग नहीं किया जाता है तो डिफ़ॉल्ट अनंत लूप है। मान का -1
कोई लूप नहीं है।
उपयोग किए गए विकल्प और फ़िल्टर:
-t
प्रत्येक इनपुट के सेकंड में अवधि निर्धारित करने के लिए।
-loop 1
छवि को लूप करता है अन्यथा इसमें 1 फ्रेम की अवधि होगी।
-framerate
इनपुट छवि फ्रेम दर (डिफ़ॉल्ट जब अघोषित 25 है) सेट करने के लिए। GIF बनाने के लिए उपयोगी।
एक विशिष्ट, समान आकार में इनपुट छवियों को फिट करने के लिए पैड के साथ स्केल (उदाहरण # 3 में प्रयुक्त)।
में और बाहर फीका करने के लिए फीका। d
फीका की अवधि है। st
जब यह शुरू होता है।
concat श्रेणीबद्ध करने के लिए (या "में शामिल होने के") प्रत्येक छवि।
यदि कोई MP4 और आउटपुट libx264 के साथ एन्कोडिंग है (जो आपके बिल्ड द्वारा समर्थित है तो MP4 आउटपुट के लिए डिफ़ॉल्ट एनकोडर) गैर-FFmpeg आधारित खिलाड़ियों के साथ संगत एक क्रोमा सबसम्पलिंग योजना को आउटपुट करने के लिए प्रारूप ।
एक फिल्टर आउटपुट की प्रतियां बनाने के लिए विभाजित । पैलेट द्वारा आवश्यक * एक कमांड में सब कुछ करने के लिए फ़िल्टर।
अच्छा दिखने GIF बनाने के लिए पैलेटजेन और पैलेट्यूज़ ।
क्रॉसफ़ेड
उदाहरण जहां प्रत्येक छवि 5 सेकंड के लिए प्रदर्शित होती है और प्रत्येक में एक क्रॉसफेड होता है जो 1 सेकंड तक रहता है। प्रत्येक छवि इनपुट में समान चौड़ाई, ऊंचाई और नमूना पहलू अनुपात होता है। यदि वे आकार में भिन्न हैं तो ऊपर दिए गए # 3 उदाहरण को अपनाएं।
MP4 आउटपुट
ffmpeg \
-loop 1 -t 5 -i 1.png \
-loop 1 -t 5 -i 2.png \
-loop 1 -t 5 -i 3.png \
-loop 1 -t 5 -i 4.png \
-loop 1 -t 5 -i 5.png \
-filter_complex \
"[1]format=yuva444p,fade=d=1:t=in:alpha=1,setpts=PTS-STARTPTS+4/TB[f0]; \
[2]format=yuva444p,fade=d=1:t=in:alpha=1,setpts=PTS-STARTPTS+8/TB[f1]; \
[3]format=yuva444p,fade=d=1:t=in:alpha=1,setpts=PTS-STARTPTS+12/TB[f2]; \
[4]format=yuva444p,fade=d=1:t=in:alpha=1,setpts=PTS-STARTPTS+16/TB[f3]; \
[0][f0]overlay[bg1];[bg1][f1]overlay[bg2];[bg2][f2]overlay[bg3]; \
[bg3][f3]overlay,format=yuv420p[v]" -map "[v]" -movflags +faststart out.mp4
ऑडियो के साथ
ffmpeg \
-loop 1 -t 5 -i 1.png \
-loop 1 -t 5 -i 2.png \
-loop 1 -t 5 -i 3.png \
-loop 1 -t 5 -i 4.png \
-loop 1 -t 5 -i 5.png \
-i music.mp3 \
-filter_complex \
"[1]format=yuva444p,fade=d=1:t=in:alpha=1,setpts=PTS-STARTPTS+4/TB[f0]; \
[2]format=yuva444p,fade=d=1:t=in:alpha=1,setpts=PTS-STARTPTS+8/TB[f1]; \
[3]format=yuva444p,fade=d=1:t=in:alpha=1,setpts=PTS-STARTPTS+12/TB[f2]; \
[4]format=yuva444p,fade=d=1:t=in:alpha=1,setpts=PTS-STARTPTS+16/TB[f3]; \
[0][f0]overlay[bg1];[bg1][f1]overlay[bg2];[bg2][f2]overlay[bg3]; \
[bg3][f3]overlay,format=yuv420p[v]" -map "[v]" -map 5:a -shortest -movflags +faststart out.mp4
ऑडियो के साथ दो वीडियो के बीच क्रॉसफेड
प्रत्येक इनपुट से 5 सेकंड सेगमेंट चुनें और 1 सेकंड क्रॉसफ़ेड जोड़ें:
ffmpeg -i input0.mp4 -i input1.mp4 -filter_complex \
"[0:v]trim=start=5:end=10,setpts=PTS-STARTPTS[v0];
[1:v]trim=start=12:end=17,setpts=PTS-STARTPTS+4/TB,format=yuva444p,fade=st=4:d=1:t=in:alpha=1[v1];
[v0][v1]overlay,format=yuv420p[v];
[0:a]atrim=start=5:end=10,asetpts=PTS-STARTPTS[a0];
[1:a]atrim=start=12:end=17,asetpts=PTS-STARTPTS[a1];
[a0][a1]acrossfade=d=1[a]" \
-map "[v]" -map "[a]" output.mp4
GIF आउटपुट
ffmpeg \
-framerate 10 -loop 1 -t 5 -i 1.png \
-framerate 10 -loop 1 -t 5 -i 2.png \
-framerate 10 -loop 1 -t 5 -i 3.png \
-framerate 10 -loop 1 -t 5 -i 4.png \
-framerate 10 -loop 1 -t 5 -i 5.png \
-filter_complex \
"[1]format=rgba,fade=d=1:t=in:alpha=1,setpts=PTS-STARTPTS+4/TB[f0]; \
[2]format=rgba,fade=d=1:t=in:alpha=1,setpts=PTS-STARTPTS+8/TB[f1]; \
[3]format=rgba,fade=d=1:t=in:alpha=1,setpts=PTS-STARTPTS+12/TB[f2]; \
[4]format=rgba,fade=d=1:t=in:alpha=1,setpts=PTS-STARTPTS+16/TB[f3]; \
[0][f0]overlay[bg1];[bg1][f1]overlay[bg2];[bg2][f2]overlay[bg3];[bg3][f3]overlay,split[v0][v1]; \
[v0]palettegen[p];[v1][p]paletteuse[v]" -map "[v]" out.gif
-loop
GIF लूप की संख्या को नियंत्रित करने के लिए आउटपुट विकल्प का उपयोग करें । यदि इस विकल्प का उपयोग नहीं किया जाता है तो डिफ़ॉल्ट अनंत लूप है। मान का -1
कोई लूप नहीं है।