2011-06-09 77 views
2

我目前正在尋找如何完成我已被告知是可能的。VLC記錄網絡攝像頭和流到鉻linux

我被告知,我們將能夠使用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}" 

錄製視頻,這真的可能嗎?

回答

14

要回答你的問題,如果這是可能的話......是的,但它是棘手的。我不能回答你所有的點,只有在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 -vvv udp://@224.0.0.1:1234 

訪問SAP公告或直接然後,您可以使用另一種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直播流有一個重複的命令在VLC中我一直在玩,但沒有成功。這樣你就可以用一個實例進行流式處理和記錄。也許這在linux上工作。

(2)分割

mediastreamsegmenter區隔MPEGTS流分成交付段。我正在使用Apple服務器軟件。蘋果提供了一個mediastreamsegemnter可以採取現場MPEGTS流,並將其轉換成被添加到播放列表段。我不知道在Linux中的實時分段器。也許別人會這樣做。

(3)DELIVERY

HTML 5頁鏈接到包含段的視頻播放列表。該mediastreamsegmenter會產生一個播放列表playlist.m3u8,然後可以用HTML訪問5

<video width="640" height="480"> 
<source src="YOUR_PATH/playlist.m3u8" /> 
</video> 

關於這個話題了一些有用的教程:

Info on the setup and basic commands

VLC examples in order to stream

我知道這不是一個完整的解決方案,但這可能會給你一些不錯的出發點進行調查。

+1

非常好的帖子,太糟糕了,沒有反饋。 +1 – 2011-10-29 15:20:34

+1

上述命令在Ubuntu 12.04 LTS中可以使用。 – Abboq 2012-05-19 00:05:30

+1

感謝您的好評...我們最終以閃光的方式解決了這個問題 – Nick 2012-05-23 15:42:09