VLC记录网络摄像头和流到chrome linux

时间:2011-06-09 18:14:24

标签: google-chrome ubuntu html5-video vlc video-recording

我目前正在寻找如何实现我被告知的可能性。

我被告知我们可以使用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 个答案:

答案 0 :(得分:16)

如果可能的话,回答你的问题......是的,但它很棘手。我无法回答你的所有观点,只有在VLC中流式传输并在HTML5中显示的部分

您需要一定的环境设置才能使用(Segmenter并更正服务器上的MIME类型)。我假设你们都在linux上;我不是(Mac OS / unix),但其背后的原则与使其工作的工作流程保持一致。我会试着解释一下 - 希望这会有所帮助。

我成功的设置以下列方式工作:

(1)STREAMING&记录

本地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上工作。现在,您应该可以通过访问SAP公告或直接使用

来使用VLC播放实时流
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)SEGMENTING

mediastreamsegmenter将您的mpegts流细分为可交付的细分市场。我正在使用Apple Server Software。 Apple为您提供了mediastreamsegemnter,它可以采用实时mpegts流并将其转换为添加到播放列表的段。我不知道linux中的live segmenter。也许其他人也这么做。

(3)交付

html 5页链接到包含片段的视频播放列表。 mediastreamsegmenter将生成一个播放列表播放列表.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

我知道这不是你问题的完整解决方案,但这可能会给你一些很好的起点。