使用FFmpeg叠加视频

5
我试图编写一个脚本,将两个单独的视频文件合并成一个更宽的视频,其中两个视频同时播放。我已经大部分弄清楚了,但是当我查看最终输出时,我覆盖的那个视频非常慢。
我的做法如下:
1. 将左侧视频扩展到最终视频尺寸。 ffmpeg -i left.avi -vf "pad=640:240:0:0:black" left_wide.avi
2. 在左侧视频上叠加右侧视频。 ffmpeg -i left_wide.avi -vf "movie=right.avi [mv]; [in][mv] overlay=320:0" combined_video.avi
在结果视频中,右侧视频的播放速度约为左侧视频的一半。有什么办法可以让这些文件同步起来吗?

左右两个视频的比特率和帧率一样吗?如果不一样,我可能会考虑事先转换它们。 - 65Fbef05
原始文件实际上是从网络摄像头录制的.flv格式,我将其转换为.avi格式,以此为理由。 - elee
那么如果你改变顺序,那么“相反的那个”会以一半的速度播放回来吗?今天的ffmpeg TRUNK版本是否仍然可以重现这个问题? - rogerdpack
1个回答

1

像用户65Fbef05所说,两个视频必须具有相同的帧率。
使用-f帧速率,并且在两个视频中帧速率必须相同。
要查找帧速率,请使用:
ffmpeg -i video1

ffmpeg -i video2

并查找包含“Stream #0.0: Video:”的行
在该行中,您将找到电影中的fps。

此外,我不知道混合2个音轨会遇到什么问题。
就我而言,我将尝试使用将叠加的电影中的音频
并丢弃其余部分。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接