क्रॉसफेडिंग वीडियो और ऑडियो ffmpeg के साथ


3

Ffmpeg का उपयोग करके 2 वीडियो के बीच के इस सुपर यूजर उत्तर को अभी तक मुझे मिला है, लेकिन अब जब मैंने कई समाधानों की कोशिश की है और हर SO लिंक को देखा है, तो यह आप सभी से मदद मांगने का समय है।

मैं 2 वीडियो पार करने की कोशिश कर रहा हूं जो एक ही समय में ऑडियो और वीडियो के साथ ts प्रारूप में प्रत्येक 10 सेकंड हैं।

कदम हैं:

  1. जटिल फ़िल्टर काली स्क्रीन जोड़ें
  2. वीडियो 1 सेकंड के बाद, 1 सेकंड फीका अवधि के साथ फीका करें
  3. वीडियो सेकंड में 9 सेकंड में फीका, 1 सेकंड फीका अवधि के साथ
  4. 19 सेकंड के लिए ब्लैक फिल्टर आउटपुट ट्रिम करें

यह केवल अकेले वीडियो के लिए ठीक काम करता है, लेकिन जब मैं ऑडियो जोड़ने का प्रयास करता हूं, तो मुझे यह त्रुटि संदेश नहीं मिल सकता है:

आउटपुट पैड "डिफ़ॉल्ट" फिल्टर उदाहरण के प्रकार ऑडियो के साथ "पार्सड_सेटसेट_4" किसी भी गंतव्य से जुड़ा नहीं है।

ऐसा प्रतीत होता है कि मैं ऑडियो आउटपुट को ठीक से कनेक्ट नहीं कर रहा हूं। मुझे लगता है कि ऑडियो को शामिल करने के लिए मुझे [ओवर] लाइनों को बदलना होगा। लेकिन मैं यह कैसे करूँ?

`ffmpeg -i vid1.ts -i vid2.ts -f lavfi -i color=black -filter_complex \
"[0:v]format=pix_fmts=yuva420p,\
fade=t=out:st=9:d=1:alpha=1,setpts=PTS-STARTPTS[v0];\
[0:a]\
afade=t=out:st=9:d=1,asetpts=PTS-STARTPTS[a0];\
[1:v]format=pix_fmts=yuva420p,\
fade=t=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+9/TB[v1];\
[1:a]\
afade=t=in:st=0:d=1,asetpts=PTS-STARTPTS+9/TB[a1];\
[a0][a1]amix=inputs=2;\ 
[2:v]scale=720x406,trim=duration=19[over];\
[over][v0]overlay[over1];\
[over1][v1]overlay=format=yuv420[outv]" -vcodec libx264 -y -map [outv] final.ts`

आपको पूरा कंसोल आउटपुट शामिल करना चाहिए जो आपके कमांड के पूरा होने के बाद दिखाई देता है।
11

यह यहाँ ठीक काम करता है।
टिमोथी गुजरात

जवाबों:


6

यह ऑडियो और वीडियो दोनों करेगा:

ffmpeg -i segment1.mp4 -i segment2.mp4 -an \
-filter_complex \
"   [0:v]trim=start=0:end=9,setpts=PTS-STARTPTS[firstclip];
    [1:v]trim=start=1,setpts=PTS-STARTPTS[secondclip];
    [0:v]trim=start=9:end=10,setpts=PTS-STARTPTS[fadeoutsrc];
    [1:v]trim=start=0:end=1,setpts=PTS-STARTPTS[fadeinsrc];
    [fadeinsrc]format=pix_fmts=yuva420p,      
                fade=t=in:st=0:d=1:alpha=1[fadein];
    [fadeoutsrc]format=pix_fmts=yuva420p,
                fade=t=out:st=0:d=1:alpha=1[fadeout];
    [fadein]fifo[fadeinfifo];
    [fadeout]fifo[fadeoutfifo];
    [fadeoutfifo][fadeinfifo]overlay[crossfade];
    [firstclip][crossfade][secondclip]concat=n=3[output];
    [0:a][1:a] acrossfade=d=1 [audio]
" \
-map "[output]" -map "[audio]" result.mp4

यह मूल रूप से इस उत्तर के समान है , जो हालांकि केवल वीडियो को कवर करता है। उत्तर को चेकआउट करें, क्योंकि यह काल्पनिक रूप से समझाया गया है

उम्मीद है कि वे vcrossfadeभविष्य में एक फिल्टर जोड़ देंगे ...!


2
(शायद बहुत देर हो गई, लेकिन बाद के लिए अच्छा है ...)
Merc

1

यह करें: यह दो वीडियो के साथ क्रॉस फीका करने के लिए है

ffmpeg -i big_buck.mp4 -i big_buck.mp4 -an -filter_complex "
[0:v]trim=start=0:end=4,setpts=PTS-STARTPTS[firstclip];  
[1:v]trim=start=1,setpts=PTS-STARTPTS[secondclip]; 
[0:v]trim=start=4:end=5,setpts=PTS-STARTPTS[fadeoutsrc]; 
[1:v]trim=start=0:end=1,setpts=PTS-STARTPTS[fadeinsrc]; 
[fadeinsrc]format=pix_fmts=yuva420p, fade=t=in:st=0:d=1:alpha=1[fadein]; 
[fadeoutsrc]format=pix_fmts=yuva420p,fade=t=out:st=0:d=1:alpha=1[fadeout]; 
[fadein]fifo[fadeinfifo]; [fadeout]fifo[fadeoutfifo]; [fadeoutfifo]
[fadeinfifo]overlay[crossfade]; [firstclip][crossfade]
[secondclip]concat=n=3[output]; [0:a][1:a] acrossfade=d=1 [audio]" -map "
[output]" -map "[audio]" result.mp4 -y

यह केवल दो वीडियो के लिए काम करता है


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.