Собственный WebRTC сбросив фреймы - PullRequest
0 голосов
/ 04 июня 2018

Резюме: Как я могу транслировать видео высокого качества с использованием нативного WebRTC?

У меня есть поток h264, 1920x1080 со скоростью около 30 кадров в секунду.В настоящее время я могу передать это с сервера на локальном хосте на собственный клиент на локальном хосте.

Я написал сервер WebRTC с использованием собственной библиотеки Google WebRTC.Я написал VideoEncoder и VideoEncoderFactory, которые принимают кадры, состоящие из уже закодированных данных, и транслируют их по видеодорожке.С его помощью я могу отправить свой поток h264 на сервер WebRTC по каналу и увидеть видеопоток в браузере.

Однако в любое время, когда что-то перемещается, видео повреждается.Он продолжает играть, но полон артефактов.В конце концов я обнаружил, что WebRTC отбрасывает некоторые из моих кадров.Когда я прикрепляю последовательно увеличивающийся идентификатор к каждому кадру, прежде чем передать его в rtc :: AdaptedVideoTrackSource :: OnFrame, и я записываю этот же идентификатор в webrtc :: VideoEncoder :: Encode, я вижу, что некоторые из моих кадров просто исчезают.

Этот вид имеет смысл, я пытаюсь транслировать высококачественное видео поверх чего-то, предназначенного для видеочата, и снижение частоты кадров исправляет повреждение.Однако я не прошу библиотеку WebRTC делать много, она просто пересылает уже закодированные данные клиенту на localhost.У меня есть нативное приложение, которое делает это нормально, и я видел один клиент WebRTC браузера, который может это сделать.Есть ли поле в SDP или какое-то изменение конфигурации, которое позволит мне передавать потоковое видео?

1 Ответ

0 голосов
/ 04 июня 2018

Это было решение Как контролировать пропускную способность в видеовызове WebRTC? .

Я слышал об изменении предложения sdp, но отклонил его, потому что мне сказали, что браузер будет принимать неограниченное количествопропускная способность по умолчанию, и вам нужно только это, если вы хотите ограничить пропускную способность.Однако добавление «b = AS: большое число» устранило все мои проблемы.

...