【问题标题】:VLC record webcam and stream to chrome linuxVLC 录制网络摄像头并流式传输到 chrome linux
【发布时间】:2011-09-11 22:41:23
【问题描述】:

我目前正在寻找如何完成我被告知的可能。

有人告诉我,我们可以使用 vlc 在 linux 中流式传输网络摄像头,这将允许以下操作:

  • 将流录制到本地计算机以供以后上传。
  • 使用 Chrome 的 HTML5 视频功能在录制时播放流。
  • 从 Web 发送启动和停止命令以进行 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}"

这真的可能吗?

【问题讨论】:

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


    【解决方案1】:

    如果可能的话,回答你的问题......是的,但它很棘手。我不能回答你的所有观点,只有在 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上工作。现在您应该可以通过访问 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) 分段

    mediastreamsegmenter 将您的 mpegts 流分割成可交付的片段。我正在使用 Apple 服务器软件。 Apple 为您提供了一个 mediastreamsegemnter,它可以获取实时 mpegts 流并将其转换为添加到播放列表的片段。我不知道linux中的实时分段器。也许其他人会这样做。

    (3) 交付

    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

    我知道这不是您问题的完整解决方案,但这可能会给您一些不错的起点来研究。

    【讨论】:

    • 感谢您的反馈……我们最终采用了 Flash 方法来解决这个问题
    • 我可以问一个小问题吗? Ip dst=224.0.0.1 代表什么?我尝试了不同的数字,但它对我不起作用?
    • @user573014 看这里:iana.org/assignments/multicast-addresses/… 它代表一个多播地址。小心使用 224.0.0.1,切勿在生产设置中使用。宁愿玩弄 239.0.0.1 左右...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-14
    • 2014-06-18
    相关资源
    最近更新 更多