<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Объединение потоков</title>
</head>
<body>
<h1>Потоковое видео с объединенным аудио</h1>
<video id="player" autoplay controls width="800"></video>
<script>
async function mergeStreams(videoUrl, audioUrl) {
try {
// Получаем поток видео
const videoResponse = await fetch(videoUrl);
const videoStream = videoResponse.body;
// Получаем поток аудио
const audioResponse = await fetch(audioUrl);
const audioStream = audioResponse.body;
// Создаем MediaStream с видеодорожкой
const videoMediaStream = new MediaStream();
const videoTrack = new MediaStreamTrack(videoStream);
videoMediaStream.addTrack(videoTrack);
// Создаем MediaStream с аудиодорожкой
const audioMediaStream = new MediaStream();
const audioTrack = new MediaStreamTrack(audioStream);
audioMediaStream.addTrack(audioTrack);
// Объединяем видео и аудио в один поток
const combinedStream = new MediaStream([
...videoMediaStream.getVideoTracks(),
...audioMediaStream.getAudioTracks()
]);
// Устанавливаем объединенный поток в элемент <video>
const videoElement = document.getElementById('player');
videoElement.srcObject = combinedStream;
} catch (error) {
console.error("Ошибка при объединении потоков:", error);
}
}
// Замените на ваши ссылки
const videoLink = 'ВАША_ССЫЛКА_НА_ВИДЕО';
const audioLink = 'ВАША_ССЫЛКА_НА_АУДИО';
mergeStreams(videoLink, audioLink);
</script>
</body>
</html>