Размер GOP не коррелирует с фактической задержкой
Насколько я знаю, размер GOP должен коррелировать с наблюдаемой задержкой видео (задержка). Например, если размер GOP равен 2, то задержка видео должна быть около двух секунд и так далее, по крайней мере, с CBR. Но когда я установил размер GOP равным 2, опубликовал поток для загрузки на сервер, использовал этот поток и измерил задержку, он составлял 0,8-1,2 секунды, а не 2+ секунды, как исключение. Увеличение размера GOP приводит к тем же результатам: задержка GOP 4 составляет около 2,5 секунд, а не 4 секунд.
Как я измеряю эту задержку: потоковый рабочий секундомер с веб-камеры использует OBS для загрузки сервера и вычисления разницы между значением секундомера и значением, отображаемым в потоке, потребляемом из загрузки. Для большей точности измерений я делаю фотографию с секундомером и фактическим изображением от заглатывания в одном поле зрения.
Мои настройки OBS здесь:
Можете ли вы предложить, почему я получаю такие результаты и насколько уместно мое утверждение о корреляции между размером GOP и задержкой видео? Может быть, настройки H264, такие как "zerolatency", делают немного волшебства?
Благодарю.
1 ответ
Для потоковой передачи каждая группа изображений состоит из IPPPPPP
- ключевой кадр, за которым следует P-кадр за несколько секунд. В принципе, кодер не должен подвергаться задержке любой заданной длины. При отправке потоков с постоянной скоростью передачи происходит задержка, потому что кодер иногда должен перекодировать некоторые кадры с более низкой или высокой скоростью передачи.