Термин
Closed GOP
GOP, полностью декодируемый сам по себе, без ссылок за пределы своих границ. Обязателен для чистой ABR-сегментации.
Closed GOP – Group of Pictures, в которой кадры ссылаются только на кадры внутри неё самой – ни один кадр GOP не зависит от кадра предыдущей или следующей GOP. Противоположность – «open GOP», где финальные B-кадры могут ссылаться на I-кадр следующей GOP ради более плотного сжатия. Closed GOP чуть больше, но самодостаточен, что и нужно современному стримингу.
Зачем нужен closed GOP: adaptive bitrate streaming (HLS, DASH) режет видео на сегменты, и каждый сегмент должен быть независимо воспроизводимым, чтобы плеер мог переключаться между bitrate-rendition на лету. Если сегмент опирается на кадры за своими пределами, переключение даёт видимый сбой – поломанное движение, неправильные цвета, потеря деталей – пока плеер не пересинхронизируется на следующей чистой точке. Closed GOP гарантирует отсутствие таких межсегментных зависимостей. Каждый HLS- или DASH-сегмент стартует с `idr` (строгий I-кадр, сбрасывающий все references) и содержит только кадры, зависящие от кадров внутри той же GOP.
Для продуктовой команды «closed GOP на границе сегмента» – настройка, которая должна быть всегда включена в adaptive-streaming-пайплайнах. В FFmpeg это делается флагами `-g` (интервал keyframe) и `-force_key_frames`; на уровне энкодера опции `keyint`/`min-keyint` в x264/x265 это форсируют. Цена – примерно 2–5 % bitrate по сравнению с open GOP, и это принимается как плата за чистое переключение rendition. Open GOP выживает только в несегментированных сценариях: progressive download, архивные мастера, contribution-фиды, где каждый кадр всё равно будет перекодирован дальше.
Считаете параметры для своего продукта?
Поможем собрать энкодер-леддер и посчитать стоимость доставки – до старта разработки.