Размер GOP для видеопотока в реальном времени

Я работаю над многофункциональной системой удаленного рабочего стола с видеопотоком рабочего стола, закодированным с использованием avcodec/x264. Мне приходится вручную устанавливать размер GOP для потока, и до сих пор я использовал размер fps/2. Но я только что прочитал следующее в Википедии:

Эта структура [Group Of Picture@ предлагает проблему, поскольку четвертый кадр (P-кадр) необходим для предсказания второго и третьего (B-кадров). Поэтому нам нужно передать P-кадр перед B-кадрами, и это задержит передачу (необходимо будет сохранить P-кадр).

Это означает, что я создаю большую задержку, поскольку клиенту необходимо получить как минимум половину GOP для вывода первого кадра, следующего за I-кадром. Какова наилучшая стратегия для размера GOP, если мне нужна наименьшая возможная задержка? Гоп из 1 картинки?


person MadMass    schedule 07.01.2017    source источник


Ответы (1)


Если вы хотите свести к минимуму задержку с помощью h264, вам обычно следует избегать b-кадров. Таким образом, декодер имеет, по крайней мере, шанс выдать декодированные кадры раньше. Это предотвращает задержку, вызванную декодером.

Вы также можете настроить кодировщик на задержку, уменьшив/отключив просмотр вперед. x264 имеет настройку «нулевой задержки», которая должна стать хорошей отправной точкой для поиска оптимальных настроек.

Размер «GOP» (который на самом деле не определен для h264; я просто предполагаю, что вы имеете в виду интервал I (DR)-кадров) не обязательно влияет на задержку. Этот параметр влияет только на то, как долго клиенту придется ждать, пока он не сможет «синхронизироваться» в потоке (время до первого изображения).

person Waldheinz    schedule 07.01.2017