В общем, ffmpeg
использует заголовки файлов для информации, где это возможно (когда он распознает форматы заголовков), и в противном случае возвращается к вычислению его по продолжительности и размеру файла.
Форматы обертки (например, mov, mp4) не имеют собственной битрейт - битрейт является характеристикой отдельных потоков - но он будет иметь продолжительность. Затем ffmpeg
может рассчитать битрейт по размеру файла и продолжительности.
Сами потоки, однако, будут иметь битрейт, указанный в заголовках потока, поэтому его можно читать прямо из метаданных. Это означает, что битрейт может быть неверно указан в заголовке, или он может быть 9000kb/s в начале, и уменьшаться до более низкой битрейта, или поток может быть обрезан так, что файл не завершен, следовательно, математика не работает как ожидается.
Если вы извлекаете видеокомпонент (например: ffmpeg -i myfile.mov -vcodec copy -an testfile.m2v
, использование зависит от версии программного обеспечения), вы сможете продолжить исследование и выяснить, откуда берется указанный битрейт.