2011-06-09 72 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