是否可以使用WebRTC将视频从服务器流式传输到客户端?

时间:2013-07-09 15:34:07

标签: webrtc

在WebRTC中,我总是看到有关点对点的实现以及如何从一个客户端到另一个客户端的视频流。服务器到客户端怎么样?

WebRTC是否可以从服务器到客户端流式传输视频文件? (我正在考虑使用WebRTC Native C ++ API创建我自己的服务器应用程序,以连接到chrome或firefox浏览器客户端应用程序上的当前实现。)

好的,如果有可能,它会比许多当前的视频流服务更快吗?

6 个答案:

答案 0 :(得分:41)

是的,因为服务器可以是该对等会话中的对等方之一。 如果您尊重协议并使用VP8以SRTP数据包发送视频,浏览器将播放它。为了帮助您在其他应用程序或服务器上构建这些组件,您可以查看this页面和this项目作为指南。

现在,将WebRTC与其他流媒体服务进行比较......它将取决于编解码器或协议等几个变量。但是,例如,将WebRTC(基于UDP的SRTP与VP8编解码器)与Flash(使用H264编解码器的TCP上的RTMP)进行比较,我会说WebRTC获胜。

  • 播放器将针对原始<video>标记成为Flash Player。
  • 传输将是针对UDP的TCP。

但当然,一切都取决于你发送给客户的内容。

答案 1 :(得分:8)

我使用原生WebRTC API编写了一些应用程序和插件,但目前还没有很多信息,但这里有一些有用的资源可以帮助您入门:

QT示例:http://research.edm.uhasselt.be/jori/qtwebrtc
原生到浏览器示例:http://sourcey.com/webrtc-native-to-browser-video-streaming-example/

答案 2 :(得分:3)

我从WebRTC Native C++ to Browser Video Streaming Example开始,但它不再与实际的WebRTC Native Code一起构建。

然后我将修改合并到一个独立的过程中:

  • 管理peerConnection(peerconnection_server
  • 访问Video4Linux捕获(peerconnection_client)。

从浏览器中删除流到WebRTC Native C ++客户端提供了一个简单的解决方案,可以通过WebRTC浏览器访问GitHub webrtc-streamer提供的Video4Linux设备。

Live Demo

答案 3 :(得分:1)

我们正在尝试用Webrtc替换MJPEG用于我们的服务器软件,并且使用与Openwebrtc项目相关的一些组件来实现此目的的原型模块。这是一个绝对的熊,我们经常遇到ICE协商错误(即使是在一个简单的局域网上),但它主要起作用。

我们还使用Google Webrtc模块构建了一个原型,但它有许多依赖项。我发现使用Openwebrtc模块更容易,因为谷歌的东西与浏览器上的一般点对点场景紧密相关。

我从头开始编译以下内容:

libnice 0.1.14 gstreamer-sctp-1.0 usrsctp

然后我必须直接与libnice互动以收集候选人。还必须手动写出SDP文件。但控制量 - 能够控制管道的来源 - 使其值得。生成的管道(两个客户端关闭一个服务器源)位于:

resulting webrtc pipeline

答案 4 :(得分:0)

当然。我正在使用原生WebRTC api编写程序,该程序可以作为对等方加入会议并记录视频和音频。

请参阅:How to stream audio from browser to WebRTC native C++ application

你绝对可以从原生app流媒体播放。

我确信您可以使用dummy_audio_file从本地文件流式传输音频,并且您可以找到一种方法来访问您自己的视频流式传输进度。

答案 5 :(得分:0)

是的。我们已经开发了一种负载测试工具,可以为Ant Media Server发布和播放。该工具可以播放媒体文件。我们使用了Ant Media Server中使用的本机WebRTC库。