задержка h.264 более 800 мс, однако задержка vp9 почти 500 мс - PullRequest
0 голосов
/ 19 июня 2020

Я недавно добавил x264 для кодирования и ffmepg для декодирования на webrt c, я тестировал, что задержка h.264 составляет более 800 мс, однако задержка vp9 почти 500 мс. в начале отправки и получения видео задержка составляет около 300 мс. но через несколько секунд задержка составляет до 800 ~ 900 мс. Я понятия не имею, чем это вызвано. заранее спасибо!
настройка x264 ниже: (ширина x высота: 320 x 240)

x264_param_default_preset(&encoder_params, "veryfast", "zerolatency")
x264_param_apply_profile(&encoder_params, "baseline")
encoder_params.rc.i_lookahead = 0;
encoder_params.i_sync_lookahead = 0;
encoder_params.i_bframe = 0;
encoder_params.b_sliced_threads = 1;
encoder_params.b_vfr_input = 0;
encoder_params.rc.b_mb_tree = 0;
encoder_params.i_fps_num = 8;
encoder_params.i_fps_den = 1;
encoder_params.i_keyint_max = 8 * 5;
encoder_params.rc.f_rf_constant = 30;
encoder_params.rc.f_rf_constant_max = 45;
encoder_params.i_level_idc = 11;

Ответы [ 2 ]

1 голос
/ 20 июня 2020

У вас определенно должна быть большая задержка, я получаю <200 мс на Raspberry Pi с gstreamer. </p>

2 возможных варианта, на которые я бы посмотрел:

  1. у кодировщика не хватает ЦП? Если да, можете ли вы выделить больше потоков / процессоров?

  2. есть ли где-нибудь буфер? (Я обнаружил, что gstreamer любит буферизовать примерно секунду данных, если вы не говорите ему этого не делать).

0 голосов
/ 19 июня 2020
  • Что произойдет, если вы сделаете veryfast -> ultrafast
  • Можете ли вы попробовать уменьшить интервал ключевого кадра? Сейчас я бы попробовал сделать 8.

Я использую аналогичную конфигурацию для приложения здесь и очень доволен задержкой. Сам не мерил, но вроде лучше 1 секунды!

...