Задержка идентификации по компонентам в сервисах прямой трансляции
Я использую приведенный ниже конвейер для прямой трансляции, я могу найти сквозную задержку, которая составляет около 30-35 секунд, есть ли способ определить задержки для каждого компонента, такие как задержка в MediaLive и задержка в MediaPackage?
OBS (Open broadcast) --RTMP--> MediaLive --HLS-> MediaPackage --HLS--> Cloudfront -> video.js player
1 ответ
Задержка есть везде, поэтому важно выяснить, какие компоненты внесли задержку. Однако каждый компонент будет вносить часть задержки:
- RTMP: задержка составляет около 1 с, если сеть в порядке.
- HLS: задержка составляет около 3 ~ 5 с, зависит от продолжительности ts.
Я предполагаю, что минимальная задержка вашей системы составляет около 5~10 секунд. Где кодер занимает 0,8 с, RTMP — 1 с, HLS — 1–3 с, CDN — около 1–3 с, плеер — 1–3 с. Пожалуйста, проверьте это с помощью некоторых инструментов ниже.
Используйте небольшой онлайн-инструмент секундомер или аналогичный, затем используйте захват окна OBS, чтобы захватить секундомер в прямом эфире, и воспроизведите поток RTMP/HLS из MediaLive и HLS из облака, вы получите задержку каждой системы.
Вы также можете использовать FFmpeg для замены OBS для публикации RTMP-потока с фильтром для отображения временной метки, пожалуйста, прочитайте SRS#2742.
Пожалуйста, используйте ffplay, flv.js, hls.js для воспроизведения потока, НИКОГДА не используйте VLC , который сам по себе имеет огромную задержку.
Вот несколько советов после того, как вы найдете задержку:
- Для RTMP-сервера отключите кеш gop.
- Для HLS используйте меньшую длительность ts, например 1~2 с.
- Для кодировщика (OBS) используйте Main или Baseline с меньшими единицами группы и настройте с нулевой задержкой.
- Если возможно, используйте WebRTC для доставки потока, задержка составляет около 200 мс.
Пожалуйста , НИКОГДА не применяйте эти настройки, если вы не указали, где возникает задержка.