агрессивные настройки сжатия h.264 специально для очень длинных сцен с очень небольшими изменениями сцены - PullRequest
4 голосов
/ 12 декабря 2010

Предполагая, что у меня есть видеопоток, в котором очень мало изменений сцены в течение очень продолжительных периодов времени (от минут до часов), и я использую что-то вроде FFmpeg для перекодирования необработанного видео в h.264, какие настройки можно воспроизвести с тем, чтобы воспользоваться мега избыточностью?

Это так же просто, как установить максимальный интервал ключевого кадра на максимум (что бы это ни было)?

Есть ли место в спецификации h.264 для улучшения FFmpeg, чтобы использовать в дальнейшем очень длительные периоды времени без смены сцены?

1 Ответ

4 голосов
/ 03 марта 2011

Во-первых, обратите внимание, что FFmpeg сам по себе не кодирует h264, а x264 .

Да, определение необычно длинного ключевого кадра должно значительно уменьшить размервидео с длительными периодами практически без движения.Зачем?Потому что «ключевой кадр» - это кадр со всеми видеоданными - снимок, если хотите.Все остальные кадры будут отличаться от ключевого кадра.Одним из предостережений для этого является то, что при наличии какого-либо искажения в промежуточном кадре видео будет повреждено до появления следующего ключевого кадра.

Чтобы явно установить интервал ключевого кадра при кодировании с FFmpeg, используйте -gпереключатель.Если ваше видео составляет 25 кадров в секунду и вы хотите, чтобы ключевой кадр отображался один раз в минуту, добавьте -g 1500 в командную строку FFmpeg.(25 f / sx 60 s = 1500 f)

Существуют и другие интересные аспекты, которые вы можете контролировать относительно ключевых кадров, которые могут вас заинтересовать, многие из которых описаны здесь: x264 ffmpeg mapping ируководство по опциям

...