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

9

Quando você executa ffmpeg -i com o arquivo de vídeo como parâmetro de entrada, o ffmpeg retorna alguns detalhes do tipo de fluxo, como codec, bitrate e resolução. O que significam os outros dados - "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 não é sempre exibida?

    
por Nilzor 10.04.2012 / 14:20

1 resposta

6

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

tbn is the time base in AVStream that has come from the container, I think. It is used for all AVStream time stamps.

tbc is the time base in AVCodecContext for the codec used for a particular stream. It is used for all AVCodecContext and related time stamps.

tbr is guessed from the video stream and is the value users want to see when they look for the video frame rate, except sometimes it is twice what one would expect because of field rate versus frame rate.

No final, você quer usar tbr como o valor que mais se refere como "framerate".

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 poderia estimar realmente a taxa de bits. Para fluxos constantes de taxa de bits, 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 que isso às vezes funciona.

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

    
por 10.04.2012 / 14:26

Tags