“video:24803kB audio:945kB...” 是否表示转换成功?

“video:24803kB audio:945kB...” 是否表示转换成功?

我将 ffmpeg 转换过程中的输出重定向到 txt 文件,并注意到在多行之后,它会显示进度。例如:

frame= 867 fps= 18 q=29.0 q=31.0 size= 17846kB time=00:00:28.96 bitrate=5047.6kbits/s
frame= 879 fps= 18 q=29.0 q=31.0 size= 18012kB time=00:00:29.36 bitrate=5025.3kbits/s
frame= 890 fps= 18 q=29.0 q=31.0 size= 18175kB time=00:00:29.72 bitrate=5008.0kbits/s
frame= 900 fps= 18 q=29.0 q=31.0 size= 18429kB time=00:00:30.06 bitrate=5021.8kbits/s
frame= 901 fps= 17 q=-1.0 Lq=31.0 size= 20219kB time=00:00:30.14 bitrate=5494.6kbits/s

每次它都会输出一行这样的内容:

video:24803kB audio:945kB subtitle:0 global headers:0kB muxing overhead 21.473556%

这是了解转换是否成功完成的安全线索吗?或者在转换失败的情况下是否也会出现上述行?

答案1

是的,仅当视频和音频的编码完成并且比特流已合并(“多路复用”)到容器格式时才会显示该行。

当然,转换过程中可能会出现小错误,例如时间戳不正确、在输入 RTP 流的情况下丢失数据包等。但一般来说,当出现此行时,可以肯定地说转换已停止。

您还可以检查

frame=   50 fps=0.0 q=-1.0 Lsize=      12kB time=00:00:02.00 bitrate=  50.9kbits/s dup=1 drop=0

行表示帧数或时间戳,因为您可能知道输出视频应该有多少帧或什么时间。

相关内容