Резюме: Как я могу транслировать видео высокого качества с использованием нативного WebRTC?
У меня есть поток h264, 1920x1080 со скоростью около 30 кадров в секунду.В настоящее время я могу передать это с сервера на локальном хосте на собственный клиент на локальном хосте.
Я написал сервер WebRTC с использованием собственной библиотеки Google WebRTC.Я написал VideoEncoder и VideoEncoderFactory, которые принимают кадры, состоящие из уже закодированных данных, и транслируют их по видеодорожке.С его помощью я могу отправить свой поток h264 на сервер WebRTC по каналу и увидеть видеопоток в браузере.
Однако в любое время, когда что-то перемещается, видео повреждается.Он продолжает играть, но полон артефактов.В конце концов я обнаружил, что WebRTC отбрасывает некоторые из моих кадров.Когда я прикрепляю последовательно увеличивающийся идентификатор к каждому кадру, прежде чем передать его в rtc :: AdaptedVideoTrackSource :: OnFrame, и я записываю этот же идентификатор в webrtc :: VideoEncoder :: Encode, я вижу, что некоторые из моих кадров просто исчезают.
Этот вид имеет смысл, я пытаюсь транслировать высококачественное видео поверх чего-то, предназначенного для видеочата, и снижение частоты кадров исправляет повреждение.Однако я не прошу библиотеку WebRTC делать много, она просто пересылает уже закодированные данные клиенту на localhost.У меня есть нативное приложение, которое делает это нормально, и я видел один клиент WebRTC браузера, который может это сделать.Есть ли поле в SDP или какое-то изменение конфигурации, которое позволит мне передавать потоковое видео?