Я пытаюсь извлечь преобладающий битрейт видеофайла (например, .mkv файл, содержащий фильм) с регулярным интервалом выборки от 1 до 10 секунд в условиях нормального воспроизведения. Вроде как вы можете увидеть в vlc , во время воспроизведения файла в окне статистики.
Может ли кто-нибудь предложить лучший способ загрузить код такого анализатора? Есть ли библиотека, которая предоставляет API для такой информации, о которой знают люди? Возможно, оболочка Python для ffmpeg или аналогичный инструмент, который обрабатывает видеофайлы и, таким образом, может извлекать такую статистику.
То, к чему я действительно стремлюсь, это файл формата CSV , содержащий смещение секунд и среднюю или фактическую скорость передачи битов в КиБ / с при этом смещении в актив.
Обновление:
Я собрал pyffmpeg и написал следующий спайк:
import pyffmpeg
reader = pyffmpeg.FFMpegReader(False)
reader.open("/home/mark/Videos/BBB.m2ts", pyffmpeg.TS_VIDEO)
tracks=reader.get_tracks()
# Called for each frame
def obs(f):
pass
tracks[0].set_observer(obs)
reader.run()
Но наблюдение информации о кадре (f) в обратном вызове не дает мне возможности подсчитывать битрейт в секунду. На самом деле вычисления битрейта в pyffmpeg измеряются по всему файлу (размер файла / длительность), поэтому обработка в библиотеке очень поверхностная. Очевидно, что он сосредоточен на извлечении i-кадров и другой работе с кадрами / GOP.