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

有人告诉我,我们可以使用 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}"
    

    这真的可能吗?

    最佳答案

    如果可能的话,回答你的问题......是的,但它很棘手。我不能回答你所有的观点,只有在 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

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

    关于google-chrome - VLC 记录网络摄像头并流式传输到 chrome linux,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6297348/

    10-13 06:55