#javascript #webrtc #html5-video
#javascript #webrtc #html5-видео #capturestream
Вопрос:
Пример WebRTC (https://webrtc.github.io/samples/src/content/capture/video-video ) демонстрирует, что вы можете передавать содержимое одного видео в другое видео с помощью video.captureStream()
. Однако у меня возникли некоторые проблемы с выполнением этого в источниках. Это ошибка:
Не обнаруженная ошибка безопасности: не удалось выполнить ‘captureStream’ для ‘HTMLMediaElement’: не удается выполнить захват из элемента с данными из разных источников
Вот мой код:
const leftVideo = document.getElementById('leftVideo');
const rightVideo = document.getElementById('rightVideo');
leftVideo.addEventListener('canplay', () => {
let stream;
const fps = 0;
if (leftVideo.captureStream) {
stream = leftVideo.captureStream(fps);
} else if (leftVideo.mozCaptureStream) {
stream = leftVideo.mozCaptureStream(fps);
} else {
console.error('Stream capture is not supported');
stream = null;
}
rightVideo.srcObject = stream;
});
<video id="leftVideo" playsinline controls loop muted>
<source src="https://webrtc.github.io/samples/src/video/chrome.webm" type="video/webm"/>
<source src="https://webrtc.github.io/samples/src/video/chrome.mp4" type="video/mp4"/>
<p>This browser does not support the video element.</p>
</video>
<video id="rightVideo" playsinline autoplay></video>
Ответ №1:
Как говорится в сообщении, один
Не удается выполнить захват из элемента с данными из разных источников
Добавить к этому особо нечего, нет обходного пути, нет решения, ничего, вы просто не можете этого сделать.
Если вы хотите создать медиапоток с любого носителя, он должен обслуживаться с тем же источником (либо с тем же источником, либо с соответствующими заголовками Access-Control-Allow-Origin)