FFMPEG Crossfade videoları video çözünürlüğünü değiştiriyor


1

Şu anda bu sorudan iki videoyu çaprazlamak için komutu kullanıyorum:

ffmpeg kullanarak 2 video arasındaki geçiş

Benim emrim:

ffmpeg -i firstVideo.mp4 -i secondVideo.mp4 -f lavfi -i color=black -    filter_complex \
"[0:v]format=pix_fmts=yuva420p,fade=t=out:st=4:d=1:alpha=1,setpts=PTS-STARTPTS[va0];\
[1:v]format=pix_fmts=yuva420p,fade=t=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+4/TB[va1];\
[2:v]scale=640x360,trim=duration=9[over];\
[over][va0]overlay[over1];\
[over1][va1]overlay=format=yuv420[outv]" \
 -vcodec libx264 -map [outv] output.mp4

Bu crossfade animasyonu iyi çalışıyor, çünkü videoyu istenen 640x360 yerine 480x360'a daraltıyor. Meta bilgi yanlış bir şekilde boyutların 640x360 olduğunu gösterecektir, ancak olmadıklarından eminim.

Her iki giriş videosunun da tam olarak 640x360 olduğundan eminim.

Küçülmenin piksel biçiminden kaynaklandığını tahmin ediyorum yuva420p, ama başka hangi seçeneklere sahip olduğumdan emin değilim. Piksel biçimini değiştirmeyi denedim ama şu ana kadar hiçbir şey işe yaramadı.

Yukarıda verilen komut hatasız çalışır.

Yanıtlar:


1

kullanım

ffmpeg -i firstVideo.mp4 -i secondVideo.mp4 -f lavfi -i "color=black:s=640x360:d=9" 
-filter_complex \
"[0:v]format=pix_fmts=yuva420p,fade=t=out:st=4:d=1:alpha=1,setpts=PTS-STARTPTS[va0];\
[1:v]format=pix_fmts=yuva420p,fade=t=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+4/TB[va1];\
[2:v][va0]overlay[over1];\
[over1][va1]overlay=format=yuv420[outv]" \
 -vcodec libx264 -map [outv] output.mp4

Renk filtresi aksi belirtilmediği sürece 320x240 video verir. Ölçek filtresi bu durumda kaynak en boy oranını - 4: 3 korumaya çalışır, böylece video 640x360 olarak kodlanır, ancak 4: 3 ekran boy oranıyla 480x360 olarak gösterilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.