У меня есть видео, которое транслируется через WebRTC. Я хочу извлечь видеоданные сырой, доставленные сервером (байт за байтом)
Причина этого в том, что я хочу прочитать временные метки PTS из видео, чтобы определить, как долго воспроизводится прямой эфир.
Я могу использовать API MediaRecorder и записывать MediaStream, который я получаю с RTCPeerConnection, но при этом перекодирует видео. Когда я это делаю, я получаю файл WEBM, который после анализа имеет значения PTS, начинающиеся с 0.
Есть ли способ получить необработанные данные, доставляемые через RTCPeerConnection, без использования MediaRecorder?
Вы нашли решение?
@Jacob Ради своей работы я использовал уродливое полурешение, описанное в моем комментарии: вместо отправки видео через WebRTC PeerConnection я создал RTCDataChannel и таким образом отправил видео в пакетном формате. На самом деле мы использовали сервер RTMP-to-WebRTC для потоковой передачи видео изначально, поэтому этот сервер был упрощен, чтобы просто отправлять необработанные пакеты RTMP через RTCDataChannel, и я написал преобразователь RTMP на JavaScript для преобразования видео в ISO-BMFF на лету. для воспроизведения.
Хорошо, настройка RCTDataChannel аналогична настройке однорангового соединения?
@Jacob очень похожий, хотя, как ни странно, для этого требуется настроить PeerConnection (хотя это PeerConnection не должно отправлять какие-либо аудио- или видеоданные): developer.mozilla.org/en-US/docs/Web/API/RTCDataChannel






Я не буду публиковать «ответ» (так как у меня его нет) и не закрою этот вопрос (на случай, если что-то изменится в спецификации в будущем), но пока что в меру моих экспериментов и исследований похоже, что единственный способ сделать то, что я хочу, - это использовать
RTCDataChannelдля отправки необработанных видеоданных, а затем использовать Media Source Extensions для отображения их на другом конце. Если вы напрямую подключаете видео кRTCPeerConnection, я не вижу способа получить доступ к необработанным данным.