Термин
GOP
Повторяющийся блок кадров, начинающийся с I- (или IDR-) кадра и за которым идут P/B. Определяет шаг seek и устойчивость к ошибкам.
GOP – Group of Pictures – это кусок видео, начинающийся с полнокачественного keyframe (`i-frame`) и заканчивающийся прямо перед следующим. Внутри каждый кадр описан как маленькая разница относительно соседей, а не закодирован с нуля. Типичный стриминговый GOP – 1–4 секунды; типичный фильм 24 fps с GOP 2 секунды имеет 48 кадров на группу.
Зачем нужен GOP: он обеспечивает random access. Когда зритель промотал на отметку 14:23 фильма, плеер не может начать декодирование с произвольного кадра – большинство кадров зависит от предыдущих. Вместо этого плеер прыгает на ближайшую границу GOP (последний I-кадр) и стартует оттуда. Чем короче GOP, тем быстрее seek и чище переключение канала в live-ТВ. Чем длиннее GOP, тем лучше сжатие – I-кадры большие, и ставить такой каждую секунду – большая трата бит.
На практике длина GOP – самая важная настройка энкодера после bitrate, и она жёстко связана со стратегией доставки. Сегменты HLS и DASH должны начинаться на границе GOP, поэтому длина GOP напрямую определяет минимально возможный размер сегмента (обычно 2–6 секунд). Live broadcast и IPTV хотят коротких GOP (0.5–1 с), чтобы зритель, подключившийся посреди стрима, не видел длинного чёрного провала. VOD на Netflix или YouTube могут использовать длинные GOP (4–6 с) ради экономии полосы – зрители обычно стартуют сначала. Выбирайте GOP под то, как зрители реально будут потреблять контент.
Считаете параметры для своего продукта?
Поможем собрать энкодер-леддер и посчитать стоимость доставки – до старта разработки.