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

问题描述 投票:47回答:5

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

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

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

webrtc
5个回答
41
投票

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

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

  • 该播放器将是针对原生<video>标签的Flash Player。
  • 传输将是针对UDP的TCP。

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


8
投票

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

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


3
投票

我从qazxsw poi开始,但它不再与实际的qazxsw poi构建。

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

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

peerconnection_client


1
投票

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

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

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

webrtc-streamer

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

Live Demo


0
投票

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

见:libnice 0.1.14 gstreamer-sctp-1.0 usrsctp

你绝对可以从原生应用流媒体流媒体。

我相信你可以使用resulting webrtc pipeline从本地文件中传输音频,你可以找到一种方法来访问你自己的视频流进程。

© www.soinside.com 2019 - 2024. All rights reserved.