#ffmpeg #http-live-streaming #live-streaming #aws-media-live #aws-mediapackage
#ffmpeg #http-прямая трансляция #прямая трансляция #aws-media-live #aws-mediapackage
Вопрос:
Я использую конвейер ниже для прямой трансляции, я могу найти сквозную задержку, которая составляет около 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 с. Пожалуйста, проверьте это с помощью некоторых инструментов, приведенных ниже.
Используйте небольшой инструмент online stopwatch или другие подобные, затем используйте OBS window capture для захвата секундомера в прямой трансляции и воспроизведения потока RTMP / HLS из MediaLive и HLS из cloudfront, вы получите задержку каждой системы.
Вы также можете использовать FFmpeg для замены OBS для публикации потока RTMP с фильтром для отображения метки времени, пожалуйста, прочитайте SRS # 2742.
Пожалуйста, используйте ffplay, flv.js , hls.js чтобы воспроизвести поток, НИКОГДА не используйте VLC, который сам по себе имеет огромную задержку.
После определения задержки будет дано несколько советов:
- Для RTMP-сервера отключите кэш gop.
- Для HLS используйте меньшую длительность ts, например, 1-2 секунды.
- Для кодировщика (OBS) используйте Main или Baseline с меньшим gop 1s и настройтесь на нулевую задержку.
- Если возможно, используйте WebRTC для доставки потока, задержка составляет около 200 мс.
Пожалуйста, НИКОГДА не применяйте эти настройки, если вы не укажете, где вводится задержка.