Video streaming 流媒体播放

Video streaming 流媒体播放,video-streaming,mediaelement.js,rtmp,Video Streaming,Mediaelement.js,Rtmp,我正在尝试让rtmp流媒体工作。我有几乎相同的代码建议 $('video').mediaelementplayer({flashStreamer:rtmp://thinkbuntu:1935/flvplayback/000109f6004b00a6004af03676235daa"}); 鉴于rtmp://thinkbuntu:1935/flvplayback是本地rtmpserver的URL,“000109f6004b00a6004af03676235daa”是mp4视频。我知道本地服务

我正在尝试让rtmp流媒体工作。我有几乎相同的代码建议


$('video').mediaelementplayer({flashStreamer:rtmp://thinkbuntu:1935/flvplayback/000109f6004b00a6004af03676235daa"}); 鉴于
rtmp://thinkbuntu:1935/flvplayback
是本地rtmpserver的URL,“000109f6004b00a6004af03676235daa”是mp4视频。我知道本地服务器正在工作,因为我可以通过rtmpdump转储它,也可以使用jwplayer正确播放视频。 使用flv、webm和ogv的MediaElement也不起作用

我在Firefox中遇到这个错误(在Chrome中根本没有错误):

不支持“视频/rtmp”的指定“类型”属性。加载媒体资源000109f6004b00a6004af03676235daa失败。

通过json属性配置它也会以同样的方式失败

我也尝试过这种方法,但也失败了


我做错什么了吗?

我有几乎相同的设置,我的工作正常。不确定是否需要任何属性,但我在视频标签上有一些属性

(仅供参考,我猜额外的
标记只是您粘贴到SO中的结果?)


$(“#流”).mediaelementplayer({
闪光流光:rtmp://170.93.143.150/rtplive/000109f6004b00a6004af03676235daa",
插件:['flash','silverlight'],
alwaysShowControls:错误,
成功:函数(mediaElement、domObject){
如果(mediaElement.pluginType=='flash'){
mediaElement.play();
}
},
});

我们必须对RTMP流量进行端口嗅探,以准确确定浏览器正在协商的内容,因为RTMP URL是唯一解释的:URL的一部分标识流服务端点,其余部分标识流资源,介于两者之间的是文件格式,后跟冒号。如果您不知道RTMP服务器的配置,您就无法知道服务端点在URL中的何处结束,流从何处开始。这给我们带来了无尽的挫折,因为我们不知道服务器配置


在source标记中,我们将完整的RTMP URL作为“src”属性(协议、服务端点、流和文件格式-所有内容,整个shebang),在flashStreamer属性中,我们仅标识服务端点(所有内容,但不包括文件格式)。经过大量实验,这是唯一成功的属性组合。

在您的情况下,您必须在视频标签中添加前缀“mp4:”

<video width="360" height="203" id="player1" src="mp4:sample" type="video/rtmp" controls="controls"></video>

<script>$('video').mediaelementplayer({flashStreamer:"rtmp://localhost/vod"});</script>

$('video').mediaelementplayer({flashStreamer:rtmp://localhost/vod"});

确保您的Firefox已安装flash。查看Firefox插件中是否有Shockwave flash。如果没有,

  • 打开flash官方网站
  • 选择是否需要另一台计算机的Flash Player?
  • 选择合适的版本
  • 下载、安装并重新启动FF
  • 确保冲击波闪光已激活
  • 这是流密钥“000109f6004b00a6004af03676235daa”吗?如果是,那么“7901E75800F700D700437A45351F014”是什么?
        <video width="300" height="240" controls="controls" preload="none" id="stream">
             <source src="7901e75800f700d700437a45351f0214" type="video/rtmp">
        </video>
    
        <script type="text/javascript">
            $('#stream').mediaelementplayer({
                flashStreamer: "rtmp://170.93.143.150/rtplive/000109f6004b00a6004af03676235daa",
                plugins: ['flash', 'silverlight'],
                alwaysShowControls: false,
                success: function (mediaElement, domObject) {
                    if (mediaElement.pluginType == 'flash') {
                        mediaElement.play();
                    }
                },
            });
         </script>
    
    <video width="360" height="203" id="player1" src="mp4:sample" type="video/rtmp" controls="controls"></video>
    
    <script>$('video').mediaelementplayer({flashStreamer:"rtmp://localhost/vod"});</script>