2017-01-07 11 views
2

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

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

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

ответ

2

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

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^