我和我的朋友各自拍摄了一段我们在线玩游戏的视频,现在我想制作一段视频来并排比较它们。
我以前做过这个,但从不需要处理音频。我想要做的是从一个剪辑中获取音频流,从另一个剪辑中获取音频流,然后将它们放在新剪辑中的单独流中,类似于 DVD 视频为每种语言提供两个单独流的方式。
这是我使用 ffmpeg 尝试做的:
ffmpeg -i "Fraps 2014-11-14 07-51-04-70_cut.mp4" -vf "movie='FFsplit-141106-222552_cut.mp4' [in1]; [in]fps=fps=30, setpts=PTS-STARTPTS, scale=1680:1040, pad=iw*2:ih:iw:0[in0]; [in0][in1] overlay=0:0 [out]" input_sidebyside.mp4
就视频而言,一切正常,视频同步。但只复制了左侧的音频流。它-map
似乎根本无法识别电影滤镜的音频。我试过了-map 1:a:0
,但它告诉我该流不存在。
是否可以从 ffmpeg 中的覆盖过滤器映射音频?
答案1
的确,overlay
仅适用于视频。您需要amix
两个音频源。-map 1
由于第二部电影由过滤器加载,因此无法工作。您可能需要使用两个-i
输入和amix
他们的音频:
ffmpeg \
-i "Fraps 2014-11-14 07-51-04-70_cut.mp4" \
-i "FFsplit-141106-222552_cut.mp4" \
-filter_complex "[0:v]fps=fps=30, setpts=PTS-STARTPTS, scale=1680:1040, \
pad=iw*2:ih:iw:0[in0]; [in0][1:v] overlay=0:0 [outv]; \
[0:a][1:a] amix [outa]" -map "[outv]" -map "[outa]" input_sidebyside.mp4
类似上述内容。不要忘记指定编码器和质量设置。例如,您可能希望明确指定-c:v libx264 -crf 22
设置 x264 质量。