我正在使用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团队寻求帮助。
答案 0 :(得分:1)
Safari和IE不支持RTP / H.264。从您的代码中,我了解到您正在尝试创建WebRTC来标记网桥。在这种情况下,HttpGetEndpoint将通过HTTP伪流程提供媒体。但是,Kurento仅以WebM格式提供该类型的实时HTTP伪流。据我所知,Safari和IE都不支持WebM,因此您想要做的事情将无法独立于您强制使用HttpGetEndpoint的上限。您只能在Chrome,Fireforx或其他支持WebM的浏览器上看到它。
唯一的解决方案可能是提供MP4格式的媒体的HttpGetEndpoint(或IE和Safari支持的任何其他格式),但以这种格式创建直播流非常棘手,我们(Kurento团队)没有实施该功能的时间和此功能不在我们的短期路线图中。
但是,我们有许多用户使用RTMP将WebRTC与IE和Safari集成。在这种情况下,您需要将Kurento与支持RTMP的媒体服务器集成(这可以通过不同方式完成),然后让RTMP媒体服务器向浏览器提供媒体。