O que os detalhes do fluxo de saída de vídeo do ffmpeg significam?

10

Quando você executa ffmpeg -io arquivo de vídeo como parâmetro de entrada, o ffmpeg retorna alguns detalhes do tipo de fluxo, como codec, taxa de bits e resolução. O que os outros dados significam - "tbr", "tbn" e "tbc"? Dos meus exemplos abaixo, você pode ver que eles variam muito.

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

Pergunta secundária: por que a taxa de bits nem sempre é mostrada?

Nilzor
fonte

Respostas:

6

O que você vê é o recíproco das bases de carimbo de data / hora usadas no FFmpeg e nos en / decodificadores. Eu não posso explicar melhor, portanto, apenas citando a lista de discussão FFmpeg :

tbn é a base de tempo no AVStream que veio do contêiner, eu acho. É usado para todos os carimbos de data / hora do AVStream.

tbc é a base de tempo no AVCodecContext para o codec usado para um fluxo específico. É usado para todos os AVCodecContext e carimbos de data e hora relacionados.

O tbr é calculado a partir do fluxo de vídeo e é o valor que os usuários desejam ver quando procuram a taxa de quadros de vídeo, exceto que, às vezes, é o dobro do que se esperaria devido à taxa de campo versus taxa de quadros.

No final, você deseja considerar tbr como o valor ao qual a maioria se refere como "taxa de quadros".

A taxa de bits nem sempre é mostrada, pois os fluxos de vídeo podem conter conteúdo de taxa de bits variável - nesse caso, você não pode realmente estimar a taxa de bits. Para fluxos de taxa de bits constantes, a taxa de bits geralmente é mostrada. Existem alguns casos em que taxas de bits variáveis ​​são usadas e o FFmpeg mostra a média - pelo menos com o vídeo h.264, às vezes isso funciona.

Video: h264, yuv420p, 640x480, 22050 tbr, 22050 tbn, 44100 tbc parece mais um fluxo de áudio, obviamente.

slhck
fonte