利用H5实现RTMP流的WEB移动端直播

你。 提交于 2020-12-25 09:17:46


主要实现方式:使用H5的video 元素结合H5的网络频播放器(video.js)实现rtmp流的直播播放

video.js 介绍
Video.js 是一个通用的在网页上嵌入视频播放器的 JS 库,Video.js 自动检测浏览器对 HTML5 的支持情况,如果不支持 HTML5 则自动使用 Flash 播放器。
优点:
  1.它是开源免费的,你可以在github很容易的获取它的最新代码。
      2.使用它非常的容易,只要花几秒钟就可以架起一个视频播放页面。
      3.它几乎兼容所有的浏览器,并且优先使用html5,在不支持的浏览器中,会自动使用flash进行播放。
      4. 界面可以定制,纯javascript和css打造。说明文档也非常的详细。
注:html5的video标签只支持mp4、webm、ogg三种格式,不支持flv,flash格式, flv格式是flash专用的,rtmp流为flv格式的,必须使用flash播放器,在video.js内部可以检测浏览器是否支持html5播放器直接播放,如果不支持内部会自动调用浏览器的flash播放器播放视频。Edge、谷歌浏览器中网站默认是禁用flash的,手动设置为允许flash即可



代码示例
 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>使用video.js实现rtmp流的直播播放</title>
 6     <!--引入播放器样式-->
 7     <link href="http://vjs.zencdn.net/5.19/video-js.min.css" rel="stylesheet">
 8     <!--引入播放器js-->
 9     <script src="http://vjs.zencdn.net/5.19/video.min.js"></script>
10     <script src="https://cdn.jsdelivr.net/npm/videojs-flash@2/dist/videojs-flash.min.js"></script>
11 </head>
12 <body>
13 
14 
15 <!--vjs-big-play-centered 播放按钮居中-->
16 <!--poster默认的显示界面,就是还没点播放,给你显示的界面-->
17 <!--controls 规定浏览器应该为视频提供播放控件-->
18 <!--preload="auto" 是否提前加载-->
19 <!--autoplay 自动播放-->
20 <!--loop=true 自动循环-->
21 <!--data-setup='{"example_option":true}' 可以把一些属性写到这个里面来,如data-setup={"autoplay":true}-->
22 
23 <video id="my-player" class="video-js vjs-default-skin vjs-big-play-centered" controls preload="auto" autoplay="autoplay"
24        poster="//vjs.zencdn.net/v/oceans.png" width="500" height="400" data-setup='{}'>
25     <!--src: 规定媒体文件的 URL  type:规定媒体资源的类型-->
26     <source src='rtmp://221.222.249.140/springmvc/hello1' type='rtmp/flv'/>
27 </video>
28 <script type="text/javascript">
29     // 设置flash路径,用于在videojs发现浏览器不支持HTML5播放器的时候自动唤起flash播放器
30     videojs.options.flash.swf = 'https://cdn.bootcss.com/videojs-swf/5.4.1/video-js.swf';
31     var player = videojs('my-player'); //my-player为页面video元素的id
32     player.play(); //播放
33 //    1. 播放   player.play()
34 //    2. 停止   player.pause()
35 //    3. 暂停   player.pause()
36 </script>
37 </body>
38 </html>

 


  
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!