Я пытаюсь извлечь преобладающий битрейт видеофайла (например, файл .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.