ffmpeg的视频输出流详细信息是什么意思?


10

ffmpeg -i使用视频文件作为输入参数运行时,ffmpeg返回有关流类型的一些详细信息,例如编解码器,比特率和分辨率。其他数据是什么意思-“ tbr”,“ tbn”和“ tbc”?从下面的示例中,您可以看到它们相差很大。

Stream #0.0(und): Video: h264, yuv420p, 1280x720, 25 tbr, 25 tbn, 50 tbc

Stream #0.0(eng): Video: h264, yuv420p, 640x480, 22050 tbr, 22050 tbn, 44100 tbc

Stream #0.1: Video: wmv3, yuv420p, 1280x720, 4000 kb/s, 29.97 tbr, 1k tbn, 1k tbc

第二个问题:为什么不总是显示比特率?

Answers:


6

您将看到FFmpeg和en / decoder中使用的时间戳记的倒数。我无法更好地解释它,因此只引用FFmpeg邮件列表

我认为tbn是AVStream中来自容器的时基。它用于所有AVStream时间戳。

tbc是AVCodecContext中用于特定流的编解码器的时基。它用于所有AVCodecContext和相关时间戳。

tbr是从视频流中推测出来的,它是用户在寻找视频帧速率时希望看到的值,但有时由于场速率与帧速率的关系,它是预期值的两倍。

最后,您希望将tbr设为1,通常将其称为“帧速率”。

由于视频流可能包含可变的比特率内容,因此并不总是显示比特率–在这种情况下,您无法真正估计比特率。对于恒定比特率流,通常显示比特率。在某些情况下,使用可变比特率并且FFmpeg会显示平均值-至少对于h.264视频而言,这有时是可行的。

Video: h264, yuv420p, 640x480, 22050 tbr, 22050 tbn, 44100 tbc 似乎更像是音频流。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.