Чтобы ответить на ваш вопрос, если это возможно ... ДА, НО это сложно. Я не могу ответить на все ваши вопросы, только часть с потоковой передачей в VLC и отображением в HTML5
Для работы вам потребуется определенная настройка среды (Сегментер и правильный MIME-тип на сервере). Я предполагаю, что вы все на Linux; что я не (Mac OS / Unix), но принципы, лежащие в основе этого остаются теми же, касающимися рабочего процесса, чтобы заставить это работать. Я постараюсь объяснить - надеюсь, это поможет в любом случае.
Установка, с которой я успешно справился, работает следующим образом:
(1) ПОТОК И ЗАПИСЬ
локальный экземпляр потоковой передачи vlc, потоковое аудио и видео -> создание потока mpegts. Попробуйте изменить свою команду на что-то вроде
vlc v4l2:// :v4l2-dev=/dev/video0 :v4l2-width=640 :v4l2-height=480 --sout "#transcode{vcodec=mpeg4,acodec=mpga,vb=800,ab=128}:standard{access=udp, mux=ts, sap, name=live-video, dst=224.0.0.1, port=1234}"
или
vlc v4l2:// :v4l2-dev=/dev/video0 :v4l2-width=640 :v4l2-height=480 --sout "#transcode{vcodec=mpeg4,acodec=mpga,vb=800,ab=128}:udp{dst=224.0.0.1,port=1234,mux=ts}"
Я просто даю вам перенесенные команды, которые работают на Mac. Я не знаю, работают ли они на Linux. Теперь вы сможете воспроизводить прямой эфир с VLC, используя объявление SAP или непосредственно с помощью
.
vlc -vvv udp://@224.0.0.1:1234
Затем вы можете использовать другой экземпляр vlc для записи потока
vlc udp://@224.0.0.1:1234 --sout "#transcode{vcodec=mpeg4,acodec=mpga,vb=800,ab=128}:standard{access=file,dst=capture_4.avi}"
В VLC есть дублирующаяся команда, с которой я играл, но безуспешно. Таким образом, вы можете транслировать и записывать с одним экземпляром. Может быть, это работает на Linux.
(2) СЕГМЕНТАЦИЯ
mediastreamsegmenter для сегментирования вашего потока mpegts на поставляемые сегменты. Я использую Apple Server Software. Apple предоставляет вам mediastreamsegemnter, который может принимать живой поток mpegts и преобразовывать его в сегменты, которые добавляются в список воспроизведения. Я не знаю живого сегментера в Linux. Может быть, кто-то еще.
(3) ДОСТАВКА
HTML 5-страничная ссылка на список воспроизведения видео, содержащий сегменты. Mediastreamsegmenter создаст список воспроизведения playlist.m3u8, к которому затем можно получить доступ с помощью HTML 5
<video width="640" height="480">
<source src="YOUR_PATH/playlist.m3u8" />
</video>
Некоторые полезные руководства по этой теме:
Информация о настройке и основных командах
Примеры VLC для потоковой передачи
Я знаю, что это не полное решение вашей проблемы, но, возможно, это даст вам хорошие отправные точки для изучения.