通过浏览器流式摄像头和麦克风输入

通过浏览器流式摄像头和麦克风输入

问题描述:

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

龙版本:
我试图创建直播应用。到目前为止,我只设法弄清楚这个工作流程:

  1. 客户端创建流(一些转码器可能需要在这里)
  2. 客户端发送(?出版)流服务器(基本上承载了RTMP /其他流这应该是由我的服务器)
  3. 服务器转码,transrates等访问和流发布到CDN
  4. 观众观看发布的流

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

涉及使用ffmpegvlc发布流的解决方案实际上并不是我正在寻找的,因为它们需要额外下载和安装,并且不仅限于网络摄像头和麦克风输入。 WebRTC可能无法提供相同的质量,但如果其他所有功能都失败了,我认为它可以完成工作,至少对于某些浏览器而言。

我使用Ubuntu进行开发,并刚刚启动了Wowza流媒体服务器和云的试用许可证。

ffmpeg/vlc et。人。唯一的出路?还是有什么可以在单个浏览器选项卡中完成这项工作?

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

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

随着WebRTC你可以记录(getUserMediaMediaStreamRecorder)小媒体块,并将它们发送到服务器,他们将得到串联或使用的WebRTCRTCPeerConnection)的对等网络通讯功能。有关详细概述,请参阅my answer here

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

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

+0

感谢您的意见。该Flash演示或多或少正是我想要的。奇怪的是,所包含的示例缺少Linux安装脚本(存在Windows和Mac脚本)。我正在使用Wowza Streaming Engine 4.2。任何想法如何解决这个问题?无法在线查找脚本。 – galactocalypse

+0

你应该在目录下有一个'install.sh'。它在我的套件中。这是它的内容:http://pastebin.com/4nZgdEaE – aergistal

+0

谢谢你。不知道为什么我的安装中没有Linux脚本。无论如何,我已经手动完成了脚本的工作,但事情并没有奏效。可能在我猜测的地方搞砸了权限。所以我有这个例子工作。任何想法如何这可以流,而不是记录客户端?我希望将流从远程计算机上传到托管wowza媒体引擎的服务器。 – galactocalypse