Как аудио и видео в одноранговом соединении webrtc остаются синхронизированными?

Как аудио и видео в одноранговом соединении webrtc остаются синхронизированными? Я использую API, который публикует аудио и видео (я предполагаю, что это одноранговое соединение) на медиа-сервере. Время от времени звук может рассинхронизироваться до 200 мс. Я связываю это с возможностью того, что аудио и видео являются отдельными потоками, и это объясняет, почему синхронизация может отсутствовать.


person blackirishman    schedule 04.03.2021    source источник


Ответы (2)


RTP / RTCP (который использует WebRTC) традиционно использует отчет отправителя RTCP. . Это позволяет синхронизировать каждый поток SSRC по метке времени NTP. Браузеры используют их сегодня, так что все должно работать.

Вы выполняете какой-либо мостовой протокол или что-то еще, что может быть только RTP? Какой медиа-сервер вы используете?

person Sean DuBois    schedule 04.03.2021
comment
Нет протокола моста. Я использую LiveSwitch. Я публикую видео и получаю рассинхронизацию, когда моя программа переходит в черный цвет и снова в программу. Это проблема с кодировщиком, просто интересно, почему аудио и видео не синхронизируются. - person blackirishman; 05.03.2021

В дополнение к ответу Шона:

У WebRTC-плеера в браузерах очень низкая устойчивость к разнице в отметках времени между поступающими аудио и видео сэмплами. Ваши аудио- и видеопотоки должны быть точно выровнены (чередованы), то есть отметка времени последнего аудиосэмпла, полученного из сети, должна быть + - 200 мс или около того по сравнению с отметкой времени последнего видеокадра, полученного из сети. В противном случае проигрыватель WebRTC перестанет использовать метки времени NTP и будет воспроизводить потоки индивидуально. Это связано с тем, что проигрыватель WebRTC пытается минимизировать задержку. Не уверен, что это хорошее решение от команды WebRTC. Если вашей полосы пропускания недостаточно или если кодировщик реального времени предоставляет потоки, не выровненные по временным меткам, тогда у вас будет рассинхронизированное воспроизведение. На мой взгляд, проигрыватель WebRTC может иметь настройку - использовать ли это значение допуска или всегда воспроизводить синхронно, используя временные метки NTP, за счет задержки.

person user1390208    schedule 04.03.2021