VLC записывает веб-камеру и транслирует на Chrome Linux - PullRequest
3 голосов
/ 09 июня 2011

В настоящее время я ищу, как выполнить то, что мне сказали, возможно.

Мне сказали, что мы сможем использовать vlc для потоковой передачи веб-камеры в Linux, что позволит:

  • Запись потока на локальный компьютер для последующей загрузки.
  • Воспроизведение потока во время записи с использованием возможностей видео Chrome HTML5.
  • Отправьте команду запуска и остановки из Интернета для записи vlc.

Я изучал это в течение достаточно долгого времени и не смог найти жизнеспособного решения.

Я могу записывать видео с помощью VLC уже со следующим

vlc v4l2:// :v4l2-dev=/dev/video0 :v4l2-width=640 :v4l2-height=480 --sout "#transcode{vcodec=mpeg4,acodec=mpga,vb=800,ab=128}:standard{access=file,dst=capture_4.avi}"

Это действительно возможно?

1 Ответ

16 голосов
/ 14 июня 2011

Чтобы ответить на ваш вопрос, если это возможно ... ДА, НО это сложно. Я не могу ответить на все ваши вопросы, только часть с потоковой передачей в 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 для потоковой передачи

Я знаю, что это не полное решение вашей проблемы, но, возможно, это даст вам хорошие отправные точки для изучения.

...