Що означають деталі вихідного потоку відео з 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

Вторинне запитання: чому не показується бітрейт завжди?

Відповіді:


6

Те, що ви бачите, - це зворотна основа баз часу, яка використовується у FFmpeg та en / декодерах. Я не можу пояснити це краще, тому просто цитую список розсилки FFmpeg :

tbn - часова база в AVStream, яка прийшла з контейнера, я думаю. Він використовується для всіх часових позначок AVStream.

tbc - часова база в AVCodecContext для кодека, який використовується для певного потоку. Він використовується для всіх AVCodecContext та пов'язаних з ними часових позначок.

tbr здогадується з відеопотоку і це значення, яке користувачі хочуть побачити, коли вони шукають частоту кадрів відео, за винятком випадків, що це вдвічі більше, ніж можна було б очікувати через швидкість поля проти частоти кадрів.

Зрештою, ви хочете прийняти tbr як значення, яке в основному позначається як "framerate".

Бітрейт не завжди відображається, оскільки відеопотоки можуть містити змінний бітрейт-вміст - у цьому випадку ви не могли реально оцінити бітрейт. Для постійних потоків бітрейта зазвичай показано бітрейт. Є деякі випадки, коли використовуються змінні бітрейти, а FFmpeg показує середнє значення - принаймні, з відео h.264 це іноді працює.

Video: h264, yuv420p, 640x480, 22050 tbr, 22050 tbn, 44100 tbc очевидно, схоже на аудіопотік.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.