1

我正在使用 kurento 的主 git 来制作 WebRTC 到 RTP 的桥接器。

MediaPipeline pipeline = kurento.createMediaPipeline();
WebRtcEndpoint webRtcEndpoint = new WebRtcEndpoint.Builder(pipeline).build();
HttpGetEndpoint httpEndpoint=new HttpGetEndpoint.Builder(pipeline).build();

org.kurento.client.Fraction fr= new org.kurento.client.Fraction(1, 30);         
VideoCaps vc= new VideoCaps(VideoCodec.H264,fr);
httpEndpoint.setVideoFormat(vc);

AudioCaps ac= new AudioCaps(AudioCodec.PCMU, 65536);
httpEndpoint.setAudioFormat(ac);

webRtcEndpoint.connect(httpEndpoint);

然而,尽管如此,输出视频播放被编码为 webm 。我也尝试了各种其他方法(使用 RTP ENdpoint、使用 Gstream 过滤器、使用 VLC HTTP 到 RTP 流媒体)。但是没有任何方法可以让我在 safari 和 IE 上播放视频,即 H264 编码。请求媒体开发人员和 kurento 团队的帮助。

4

1 回答 1

1

Safari 和 IE 不支持 RTP/H.264。从您的代码中,我了解到您正在尝试创建一个 WebRTC 来标记桥。在这种情况下,HttpGetEndpoint 将通过 HTTP 伪流提供媒体。但是,Kurento 仅以 WebM 格式提供这种类型的实时 HTTP 伪流。据我所知,Safari 和 IE 都不支持 WebM,因此您想要做的事情不会独立于您强制到 HttpGetEndpoint 的上限。您将只能在 Chrome、Fireforx 或其他支持 WebM 的浏览器上看到它。

您唯一的解决方案可能是 HttpGetEndpoint 以 MP4 格式(或 IE 和 Safari 支持的任何其他格式)提供媒体,但是以该格式创建实时流非常棘手,我们(Kurento 团队)没有时间实现该功能和此功能不在我们的短期路线图中。

但是,我们有很多用户使用 RTMP 将 WebRTC 与 IE 和 Safari 集成。在这种情况下,您需要将 Kurento 与支持 RTMP 的媒体服务器集成(这可以通过不同的方式完成),然后让 RTMP 媒体服务器为浏览器提供媒体服务。

于 2015-02-03T18:05:39.310 回答