Собственный WebRTC пропускает кадры

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

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

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

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

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


person user2690730    schedule 04.06.2018    source источник


Ответы (1)


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

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

person user2690730    schedule 04.06.2018