RTCRtpSender: свойство transform
Ограниченная доступность
Эта функция не относится к Baseline, так как она не работает в некоторых из самых широко используемых браузеров.
Свойство transform объекта RTCRtpSender используется для вставки потока преобразований (TransformStream), работающего в потоке рабочего процесса, в конвейер отправителя. Это позволяет применять преобразования потока к закодированным видео- и аудиокадрам после их вывода кодеком и перед отправкой.
Преобразование, которое должно быть добавлено, определяется с помощью RTCRtpScriptTransform и его соответствующего Worker. Если преобразование задается синхронно сразу после создания RTCRtpSender, оно получит первый полный кадр, сгенерированный кодером отправителя.
Значение
A RTCRtpScriptTransform, или null если у отправителя нет связанного потока преобразований.
Пример
Этот пример демонстрирует, как можно транслировать видео с веб-камеры пользователя по протоколу WebRTC, добавляя преобразование WebRTC для изменения исходящих потоков. Обратите внимание, что это часть более крупного примера в разделе руководства Использование преобразований кодированных данных WebRTC.
Код предполагает, что есть соединение RTCPeerConnection с именем peerConnection, которое уже подключено к удалённому узлу. Сначала он получает MediaStreamTrack, используя getUserMedia() для получения видео MediaStream из устройства и затем метод MediaStream.getTracks() для получения первого MediaStreamTrack в потоке.
Трек добавляется к подключению peer connection с помощью addTrack(). Это возвращает новый RTCRtpSender, который будет использован для его отправки.
const mediaStream = await navigator.mediaDevices.getUserMedia({ video: true });
const [track] = mediaStream.getTracks();
const videoSender = peerConnection.addTrack(track, mediaStream);
Код выше настраивает соединение и начинает отправку трека. Для добавления потока преобразований в конвейер необходимо создать RTCRtpScriptTransform и назначить его свойству transform отправителя. Так как преобразование создаётся сразу после создания RTCRtpSender, оно получит первый закодированный кадр, сгенерированный кодером отправителя, прежде чем он будет отправлен.
const worker = new Worker("worker.js");
videoSender.transform = new RTCRtpScriptTransform(worker, {
name: "senderTransform",
});
Обратите внимание, что вы можете добавить преобразование в любое время. Однако добавив его сразу после вызова addTrack(), преобразование получит первый закодированный кадр, который будет отправлен.
Спецификации
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
transform |
Нет | Нет | 117 | Нет | 15.4 | Нет | 117 | Нет | 15.4 | Нет | Нет |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/RTCRtpSender/transform