Учитывая закодированный видеофайл с непостоянным битрейтом, как можно анализировать битрейт с течением времени? Пока что я нашел одну старую программу, которая создает график битрейта, но ни одна из них не может предоставить необработанные данные закодированных кадров.
Я думаю, что данные битрейта должны генерироваться путем усреднения размера набора кадров, охватывающих 1 секунду, т. е. кадров с DTS, принадлежащих этому интервалу. Таким образом, 10-секундное видео будет иметь 10 точек данных, описывающих входной битрейт кодировщика. Хотя мне любопытно услышать альтернативные способы расчета битрейта.
Есть ли способ получить размер каждого (закодированного) кадра? желательно с программным обеспечением Windows. Я знаю, что это тривиально просто для несжатого источника (разрешение * битовая глубина * время).
Говорить о размере кодированного кадра в интеркодированном видеопотоке, характерном для MPEG- X
видео, не имеет смысла. I-кадры являются автономными, но P- и B-кадры являются предсказанными кадрами, и окончательный результат декодирования использует данные из различных входных данных. С другой стороны, размер одной группы изображений (GOP) может быть значимой мерой.
Сегментатор FFmpeg в сочетании с совместимым демультиплексором может разбивать видеопоток на границы GOP. Указав сверхмалое время для размера сегмента, вы можете гарантировать, что каждый сегмент будет содержать 1 GOP. Затем запуск ffprobe для каждого сегмента предоставит битрейт для этой GOP.
Я протестировал приведенную ниже команду на MP4, которые имели 1) GOP переменного размера, 2) схему с внутренним кодированием и 3) фиксированную GOP необычной длины (11 кадров), и каждый вывод имел ожидаемый результат.
ffmpeg -i input.mp4 -an -c:v copy -segment_time 0.00001 -f segment i%0d.mp4
Каждый сегмент содержал ровно 1 I-кадр (всего каждый сегмент интра-входа содержал ровно 1 кадр).
Запуск ffprobe для каждого сегмента дает показания битрейта:
Duration: 00:00:00.37, start: 4.466016, bitrate: 1539 kb/s
Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p,
1280x720 [SAR 1:1 DAR 16:9], 1520 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)
Приведенный выше снимок взят из 11-кадровой GOP и имеет битрейт 1520 кбит/с.
Гьян
джигганджер
джигганджер
Гьян