В настоящее время я использую команду из этого вопроса, чтобы смешать два видео:
переход между двумя видео с помощью ffmpeg
Моя команда:
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
Эта анимация с плавным переходом работает нормально, за исключением того, что она сжимает видео до 480x360 вместо желаемого 640x360. Мета-информация будет ложно показывать, что размеры 640x360, но я уверен, что это не так.
Я также уверен, что оба входных видео являются точно 640x360.
Я предполагаю, что сжатие происходит из-за формата пикселя yuva420p
, но я не уверен, какие другие варианты у меня есть. Я пытался изменить формат пикселя, но пока ничего не получалось.
Приведенная выше команда выполняется без ошибок.