在WebRTC中,我总是看到关于点对点的实现以及如何从一个客户端到另一个客户端的视频流。服务器到客户端怎么样?
WebRTC是否可以从服务器到客户端流式传输视频文件? (我正在考虑使用WebRTC Native C ++ API创建我自己的服务器应用程序,以连接到chrome或firefox浏览器客户端应用程序上的当前实现。)
好吧,如果有可能,它会比许多当前的视频流服务更快吗?
是的,因为服务器可以是该对等会话中的对等方之一。如果您尊重协议并使用VP8以SRTP数据包发送视频,浏览器将播放它。为了帮助您在其他应用程序或服务器上构建这些组件,您可以查看this页面和this项目作为指南。
现在,将WebRTC与其他流媒体服务进行比较......它将取决于几个变量,如编解码器或协议。但是,例如,将WebRTC(基于UDP的SRTP与VP8编解码器)与Flash(使用H264编解码器的TCP上的RTMP)进行比较,我会说WebRTC获胜。
<video>
标签的Flash Player。但当然,一切都取决于您发送给客户的内容。
我已经使用原生WebRTC API编写了一些应用程序和插件,但目前还没有很多信息,但这里有一些有用的资源可以帮助您入门:
QT示例:http://research.edm.uhasselt.be/jori/qtwebrtc 原生到浏览器示例:http://sourcey.com/webrtc-native-to-browser-video-streaming-example/
我从qazxsw poi开始,但它不再与实际的qazxsw poi构建。
然后我将修改合并到一个独立的进程中:
将流从浏览器移除到WebRTC Native C ++客户端提供了一个简单的解决方案,可以通过WebRTC浏览器访问GitHub peerconnection_server
提供的Video4Linux设备。
peerconnection_client
我们正在尝试用Webrtc替换MJPEG用于我们的服务器软件,并使用一些原型模块来使用与Openwebrtc项目相关的一些组件。这是一个绝对的熊,我们经常有ICE协商错误(即使是在一个简单的局域网上),但它主要起作用。
我们还使用Google Webrtc模块构建了一个原型,但它有许多依赖项。我发现使用Openwebrtc模块更容易,因为谷歌的东西与浏览器上的一般点对点场景紧密相关。
我从头开始编译以下内容:
然后我必须直接与libnice互动以收集候选人。还必须手动写出SDP文件。但控制量 - 能够控制管道的来源 - 使其值得。生成的管道(两个客户端关闭一个服务器源)如下所示: