【问题标题】:Streaming webcam and mic inputs through browser通过浏览器流式传输网络摄像头和麦克风输入
【发布时间】:2015-09-28 16:26:22
【问题描述】:

短版:
我需要一个浏览器内的解决方案来将网络摄像头和麦克风流传输到服务器。

加长版:
我正在尝试创建一个实时流媒体应用程序。到目前为止,我只设法弄清楚了这个工作流程:

  1. 客户端创建流(这里可能需要一些转码器)
  2. 客户端发送(发布?)流到服务器(基本上托管一个RTMP/其他应该由我的服务器访问的流)
  3. 服务器进行转码、转码等,并将流发布到 CDN
  4. 观众观看已发布的流

理想情况下,我想要一个基于浏览器的解决方案,该解决方案需要从客户端进行最少的设置(可能可以接受 Flash 插件下载)并将网络摄像头和麦克风输入流式传输到服务器。我要么不知道确切的关键字,要么正在寻找错误的东西,但我找不到合适的解决方案。

涉及使用ffmpegvlc 发布流的解决方案并不是我真正想要的,因为它们需要额外的下载和设置,并且不仅限于网络摄像头和麦克风输入。 WebRTC 可能不会提供相同的质量,但如果一切都失败了,我认为它可以完成工作,至少对于某些浏览器而言。

我正在使用 Ubuntu 进行开发,并且刚刚激活了 Wowza 流媒体服务器和云的试用许可证。

ffmpeg/vlc 等。人。唯一的出路?或者有什么东西可以在单个浏览器选项卡中完成这项工作?

【问题讨论】:

    标签: live-streaming webcam-capture


    【解决方案1】:

    如果你走RTMP的方式,Adobe Flash Player直接支持H.264 encoding。由于您提到了 Wowza,您可以在 examples 目录中找到示例和完整的源代码(包括 fla)。还有一个demo here。还有许多其他开源 Flash 捕获插件。

    您也可以在没有 Wowza 的情况下使用上述闪存记录器。在这种情况下,您需要一个 RTMP 服务器,一个值得注意的例子是 Nginx RTMP module,它支持录制(到 flv),并且还提供允许您在录制完成后启动转码的回调。

    使用WebRTC,您可以记录(getUserMediaMediaStreamRecorder)小媒体块并将它们发送到服务器,在那里它们将被连接或使用WebRTC(@987654336)的点对点通信功能@)。有关详细概述,请参阅my answer here

    在这两种情况下,您都会遇到不支持FlashWebRTC 的设备/浏览器的问题,例如。 iPhone、Safari。此外,getUserMedia 不会在所有浏览器中捕获相同的格式:WebM 中的 Firefox 音频/视频和 wav 中的 Chrome 音频和 WebM 中的视频。

    对于移动设备,您可能必须编写应用程序。

    【讨论】:

    • 感谢您的意见。 Flash 演示或多或少正是我想要的。奇怪的是,包含的示例缺少 Linux 安装脚本(存在 Windows 和 Mac 脚本)。我正在使用 Wowza 流媒体引擎 4.2。知道如何解决这个问题吗?无法在线找到脚本。
    • 你应该在目录中有一个install.sh。它在我的工具包里。这是它的内容:pastebin.com/4nZgdEaE
    • 谢谢。不知道为什么我的安装中没有 Linux 脚本。无论如何,我已经手动完成了脚本所做的事情,但事情没有奏效。我猜可能在某个地方弄乱了权限。所以我有这个例子工作。知道如何流式传输而不是记录客户端吗?我希望将流从远程计算机上传到托管 wowza 媒体引擎的服务器。
    • 错过了这一点我觉得自己像个傻瓜。感谢您的帮助和耐心!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-04
    • 2018-03-12
    • 2018-11-12
    • 1970-01-01
    • 2015-08-08
    • 2015-09-10
    • 1970-01-01
    相关资源
    最近更新 更多