我正在尝试连接几个webm
文件,并在文件之间添加黑框间隙。
大多数文件处理得很好,但我遇到了问题。在输出中的某个时间:
输入流 #1:1 帧从 size:640x480 fmt:yuv420p 更改为 size:480x360 fmt:yuv420p 帧= 8173 fps=109 q=0.0 大小= 29580kB 时间=00:15:44.88 比特率= 256.5kbits/s 速度=12.6x
帧= 8173 fps=108 q=0.0 大小= 29580kB 时间=00:15:44.88 比特率= 256.5kbits/s 速度=12.5x
帧= 8173 fps=107 q=0.0 大小= 29580kB 时间=00:15:44.88 比特率= 256.5kbits/s 速度=12.4x
..它会重复几个小时,直到我关闭 ffmpeg。完整日志https://pastebin.com/e8URCSec。
命令是
/home/vagrant/bin/ffmpeg -y -i file1.webm
-i file2.webm -f lavfi
-i "color=c=black:s=640x480:r=25"
-f lavfi -i anullsrc
-filter_complex "[0:v]scale=640:480[scaled0]; [1:v]scale=640:480[scaled1];
[2]trim=duration=68.579[g0]; [3]atrim=duration=68.579[ga0];
[scaled0][0:a][g0][ga0][scaled1][1:a]concat=n=3:v=1:a=1"
-cpu-used -5 -deadline realtime -threads 4
output.webm 2> output.log
是的,我看到了消息“框架尺寸已改变“,但这就是我添加scale
过滤器的原因。如果没有该过滤器,就会出现错误,并且 ffmpeg 会崩溃。
Ffmpeg 版本是 Ubuntu 16.04 存储库的标准版本。
如果我应该提供输入文件,请添加评论。
答案1
好吧,我想我找到了解决方法。我很确定问题是源文件的音频和视频不同步。我不知道原因,我们从媒体服务器获取了文件。
但有一个解决方法。首先,我们scale
对每个文件使用过滤器。然后才使用concat
。然后 ffmpeg 就可以正常工作了。
我们仍然有不同步的音频/视频,但这不是 ffmpeg 的问题。