Как его определить индивидуальные битрейт потока?

например, у меня есть видео, для которого ffmpeg показывает

  Duration: 00:46:43.72, start: 0.540000, bitrate: 2593 kb/s
    Stream #0.0[0x1e0]: Video: mpeg2video (Main), yuv420p, 720x576 [PAR 16:15 DAR 4:3], 9000 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0.1[0x80]: Audio: ac3, 48000 Hz, stereo, s16, 448 kb/s

размер файла 908843008 байт, поэтому 2593 кб/с правильно. Но почему говорят, что битрейт видеопотока составляет 9000 кб / с?

5
задан Prateek
источник

2 ответов

MPEG потоки обычно используют переменный битрейт кодирования для того, чтобы сэкономить место в разделах видео, которые легко кодировать, таким образом, позволяют повысить качество. Ffmpeg-это отчетность битрейт хранится в видео последовательности заголовка, что является максимальным битрейтом в файл целиком (или, во многих случаях максимальный битрейт кодер настроен на разрешение -- сам файл не может иметь каких-либо разделов, которые используют как высокий битрейт, как это). Значение 9000kbps типично для потоков MPEG2 от (или предназначенный для) DVD: DVD имеют максимальный комбинированный битрейт видео и аудио 9800kbps, так что это позволяет ~500kbps для аудио и некоторые запасные для навигационных пакетов и других накладных расходов.

3
отвечен Jules 2013-12-28 10:14:25
источник

В общем, ffmpeg использует заголовки файлов для информации, где это возможно (когда он распознает форматы заголовков), И в противном случае возвращается к вычислению его от продолжительности и размера файла.

форматы обертки (например. mov, mp4) не имеют собственного битрейта - битрейт является характеристикой отдельных потоков - но он будет иметь длительность. ffmpeg затем можно вычислить битрейт из размера файла и продолжительности.

сами потоки, однако, будут иметь битрейт указывается в заголовках потока, поэтому его можно читать прямо из метаданных. Это означает, что битрейт может быть указан неправильно в заголовке, или он может быть 9000kb/s в начале, и уменьшить до более низкого битрейта, или поток может быть усечен так, что файл не является полным, следовательно математика не работает, как ожидалось.

Если вы извлекаете видео компонент (например:ffmpeg -i myfile.mov -vcodec copy -an testfile.m2v, использование зависит от версии программного обеспечения), вы можете быть в состоянии исследовать дальше и выяснить, где битрейт показано исходит из.

1
отвечен tenorkev 2013-12-28 09:03:21
источник

Другие вопросы bitrate ffmpeg video