是否有可能使用WebRTC将video从服务器传输到客户端?

在WebRTC中,我总是看到点对点的实现以及如何从一个客户端向另一个客户端传输videostream。 服务器到客户端怎么样?

WebRTC可以将video文件从服务器端传输到客户端吗? (我正在考虑使用WebRTC Native C ++ API来创build我自己的服务器应用程序,以连接到Chrome或Firefox浏览器客户端应用程序上的当前实现。)

好的,如果可能的话,它会比许多现有的videostream服务更快吗?

是的,这是可能的,因为服务器可以是该对等会话中的一个对等体。 如果您尊重协议并使用VP8以SRTP包的forms发送video,浏览器将播放它。 为了帮助您在其他应用程序或服务器上构build这些组件,可以查看本页面和此项目作为指导。

现在,比较WebRTC和其他stream媒体服务……它将取决于编解码器或协议等几个variables。 但是,比如,比较WebRTC(SRTP over UDP和VP8编解码器)和Flash(使用H264 Codec的TCP RTMP),我会说WebRTC获胜。

  • 播放器将是针对本地<video>标记的Flash Player。
  • 传输将是针对UDP的TCP。

但是,当然,一切都取决于你发送给客户的东西。

我已经使用本机WebRTC API编写了一些应用程序和插件,但是目前还没有很多信息,但是这里有一些有用的资源可以帮助您开始:

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

我开始使用WebRTC本地C ++到浏览器videostream示例,但它不再与实际的WebRTC本机代码一起构build。

然后我把修改合并成一个独立的过程:

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

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

现场演示

我们正试图用WebrtcreplaceMJPEG用于我们的服务器软件,并且有一个原型模块,它使用一系列与Openwebrtc项目相关的组件。 这是一个绝对的熊,我们经常ICE谈判错误(即使在一个简单的局域网),但它主要是工作。

我们还用Google Webrtc模块构build了一个原型,但是它有很多依赖关系。 我发现使用Openwebrtc模块更容易,因为Google的东西与浏览器上的一般对等情况紧密相关。

我从头编译了以下内容:

libnice 0.1.14 gstreamer-sctp-1.0 usrsctp

然后,我必须直接与libnice交互来收集候选人。 还必须手工写出SDP文件。 但是,控制量 – 能够控制pipe道的来源 – 使得它值得。 生成的pipe道(有两个客户端closures一个服务器源)如下:

导致webrtc管道

当然。 我正在写一个使用本地WebRTC api的程序,它可以作为一个同伴参加会议并录制video和audio。

请参阅: 如何将audio从浏览器传输到WebRTC本机C ++应用程序

你可以肯定从原生应用程序stream媒体。

我相信你可以使用dummy_audio_file从本地文件stream式传输audio,你可以find一种方法来访问你自己的videostream进度。