Ffmpeg'deki video çıkış akışı ayrıntıları ne anlama geliyor?


10

ffmpeg -iVideo dosyasıyla giriş parametresi olarak çalıştırdığınızda , ffmpeg akış türünün codec, bit hızı ve çözünürlük gibi bazı ayrıntılarını döndürür. Diğer veriler ne anlama geliyor - "tbr", "tbn" ve "tbc"? Aşağıdaki örneklerimden, bunların çok değiştiğini görebilirsiniz.

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

İkincil soru: Neden bit hızı her zaman gösterilmiyor?

Yanıtlar:


6

Gördüğünüz FFmpeg ve en / dekoderlerde kullanılan zaman damgası tabanlarının karşılıklılığıdır. Daha iyi açıklayamam, bu nedenle sadece FFmpeg posta listesini alıntılamak :

tbn , AVStream'de konteynırdan gelen zaman tabanı. Tüm AVStream zaman damgaları için kullanılır.

tbc , AVCodecContext içinde belirli bir akış için kullanılan codec bileşeninin zaman tabanıdır. Tüm AVCodecContext ve ilgili zaman damgaları için kullanılır.

tbr , video akışından tahmin edilir ve kullanıcıların video kare hızını aradıklarında görmek istedikleri değerdir, ancak bazen alan hızı ve kare hızı nedeniyle beklenenin iki katıdır.

Sonunda, tbr değerini çoğunlukla "framerate" olarak adlandırılan değer olarak almak istersiniz .

Video akışları değişken bit hızı içeriği içerebileceğinden bit hızı her zaman gösterilmez - bu durumda bit hızını gerçekten tahmin edemezdiniz. Sabit bit hızı akışları için genellikle bit hızı gösterilir. Değişken bit hızlarının kullanıldığı bazı durumlar vardır ve FFmpeg ortalamayı gösterir - en azından h.264 video ile bu bazen işe yarar.

Video: h264, yuv420p, 640x480, 22050 tbr, 22050 tbn, 44100 tbc açıkçası, bir ses akışı gibi görünüyor.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.