2010-07-07 3 views
111

Używam ffmpeg, aby przekazać mi informacje o filmie. Konkretnie:Znaczenie wyników ffmpeg (tbc, tbn, tbr)

ffmpeg -i video.ext 

mam wyjścia:

Stream #0.0[0x1e0]: Video: mpeg2video, yuv420p, 704x576 [PAR 12:11 DAR 4:3], 9578 kb/s, 25 tbr, 90k tbn, 50 tbc 

Czy ktoś wie co TBR, tbn i potwierdzenia są dokładnie? Widziałem spekulacje w sieci, ale nic ostatecznego?

Z góry dziękuję.

+5

ta powinna zostać przeniesiona do video.se jeśli to możliwe – v010dya

Odpowiedz

144

Cóż, wszystko zależy od czasu. FFMpeg używa w rzeczywistości trzech różnych znaczników czasu w różnych bazach do działania.

  • TBN = podstawa czasu w AVStream które pochodzą z pojemnika
  • potwierdzenia = podstawy czasu AVCodecContext dla kodeków używanych dla danego strumienia
  • TBR = TBR jest zgadywano ze strumienia wideo i jest to wartość, którą użytkownicy chcą zobaczyć , gdy szukają szybkości klatek wideo:

ten został również poproszony o listach dyskusyjnych FFmpega: What does the output of ffmpeg mean? tbr tbn tbc etc?

+3

Dzięki za to - sposób „myślę” została użyta w tych stanowisk - Nie byłem pewien, czy to był "faktem" lub "opinią". Jak TBR odnosi się do klatki na sekundę dokładnie i pod jakimi warunkami się różnią i dlaczego? – user7289

+1

tbr to liczba klatek na sekundę, z której powinien korzystać demuxer. w nowszych wersjach ffmepg/avlib nazywałoby to nawet "fps". tutaj jest nowsza wersja wyjściowa: 'Strumień # 0.0 [0x1011]: Wideo: h264 (Wysoki), yuv420p, 1920x1080 [PAR 1: 1 DAR 16: 9], 23,98 fps, 90 000 tbn, 47,95 tbc' – gcb

+1

Zobacz także [to odpowiedź] (https://stackoverflow.com/a/9400527/4720018) i ffmpeg [źródło] (https://github.com/FFmpeg/FFmpeg/blob/e5c11ab9cef60a6c9141d7a60145ea833dd88485/libavformat/dump.c#L509) – Dennis