Ffmpeg 尝试处理同一帧数小时。如何跳过该帧?

Ffmpeg 尝试处理同一帧数小时。如何跳过该帧?

我正在尝试连接几个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 的问题。

相关内容