FFMPEG 2视频转码并在1帧中并排?

dco*_*296 24 video transcode ffmpeg

我有2个视频:HEADSHOT.MOV和SCREEN.MOV.它们都是大文件,我希望缩小(大小,比特率​​等)并将这两个并排放置在同一个非常宽的视频帧中.最终的结果是,当您播放output_video.mp4时,您将拥有一个非常宽的帧,两个视频同步并以相同的速率播放.

这是我想要做的合成不正确的版本:

ffmpeg -i HEADSHOT.MOV -t 00:02:00 -acodec libfaac -ab 64k -vcodec libx264 -r 30 -pass 1 -s 374x210 -vf "movie=SCREEN.MOV [small]; [in][small] -an -r 30 -pass 1 -s 374x210 overlay=10:10 -t 00:02:00 [out]" -threads 0 output_movie.mp4
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,我也尝试将测试电影的持续时间设置为2分钟,这引出了另一个问题:处理2部不同长度的电影的最佳方式是什么(如果它们很接近)?

到目前为止我发现有用的资源是:

多个视频源合并为一个

http://ffmpeg.org/ffmpeg.html#overlay-1

非常感谢任何帮助/建议.我在使用FFMPEG语法时遇到问题!谢谢!

Dmi*_*sky 33

结果可以通过缩放,填充和叠加滤镜的组合实现,如下所示:

ffmpeg.exe -i LeftInput.mp4 -vf "[in] scale=iw/2:ih/2, pad=2*iw:ih [left]; 
    movie=RightInput.mp4, scale=iw/3:ih/3, fade=out:300:30:alpha=1 [right]; 
    [left][right] overlay=main_w/2:0 [out]" -b:v 768k Output.mp4
Run Code Online (Sandbox Code Playgroud)

这里第一个视频缩小了一半,并填充到原来的大小.第二个视频缩小了三分之二,并叠加在第一个视频的右半部分(填充区域)上.

较短的视频可以淡出; 否则,最后一帧将显示直到合并视频结束.

可以使用-b:v选项设置结果比特率.此外,视频大小和位置可以按像素指定,用于打击垫,缩放和叠加滤镜.

  • 要传递除影片过滤器允许的输入参数,请改用-filter_complex.它比-vf更灵活.例如,使用以下命令可以实现相同的输出:`ffmpeg.exe -i LeftInput.mp4 -i RightInput.mp4 -filter_complex"[0:v] scale = iw/2:ih/2,pad = 2*iw: ih [left]; [1:v] scale = iw/3:ih/3,fade = out:300:30:alpha = 1 [right]; [left] [right] overlay = main_w/2:0 [out ]"-b:v 768k Output.mp4` (7认同)
  • 如果一部电影在几秒钟后开始,是否有可能以某种方式同步时间? (5认同)