Есть устройство, к нему подключаем карту видео захвата (пока с ней, но в идеале напрямую через vga
). Устройство и карта на стороне клиента. Как мне вывести видео в тег <video>
?
Правильно ли я себе представляю работу такого ресурса:
html
элемент для проигрывания онлайн видеоhtml страницу
)127.0.0.1:3333
) при помощи библиотеки hls.js
.m3u8
, предварительно закодировав их.В итоге видео идущее с карты захвата можно просматривать в режиме онлайн.
UPD Накидал скриптик
с html
:
Выводит видео с карты видео захвата AverMedia DVD EZMaker 7 C039. Операционная система Ubuntu 18.04. Работает только в Chrome. В FF выдаёт ошибку:
MediaStreamError { name: "AbortError", message: "Starting video failed", constraint: "", stack: "" }
const video = document.querySelector('#videoElement');
navigator.mediaDevices.getUserMedia({
audio: false,
video: true,
}).then(stream => {
video.srcObject = stream;
}).catch( error => {
console.error(error);
});
#container {
padding: 10px;
border: 1px solid grey;
}
video{
border: 1px solid grey;
}
<div id="container">
<video autoplay="true" id="videoElement">
</video>
</div>
Ffmpeg стрим в hls в папку www. Создается плэйлист и фрагменты видео рядом. Ссылку на плейлист в тег видео.
Так как карта захвата на клиенте, то надо запустить ffmpeg в hls на клиенте. Заклинание это в одну строку, но есть пара вариантов. Дальше нужен на клиенте вэб сервер, чтоб это видео отдать в браузер. Если сайта не будет, то можно попробовать через file://
Средствами php только если снимать jpeg и слать в mjpeg.
Вам нужно организовать потоковую трансляцию на стороне web сервера.
Получаете с видеопоток с карты видеозахвата и отправляете его в сеть через web сервер. По другому в Вашем случае никак.
К сожалению, лично я не знаю готовых продуктов, которые поддерживали бы потоковую передачу с карт видеозахвата. Вполне вероятно, что всё необходимое ПО Вам придётся написать самостоятельно.
Это если плата на стороне сервера.
Если устройство на клиенте, ищите как "поженить" "видеозахват" с WebRTC. Или развернуть на клиенте ПО с web интерфейсом (дальше см. написанное про сервер).
Виртуальный выделенный сервер (VDS) становится отличным выбором
Начал учить JS и возникло желание написать небольшую игру, по типу "показывается цифра в блоке и вам нужно ее ввести за определенное время"Так...