video.js播放rtmp流

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>测试</title>
    <!--引入播放器样式-->
    <link href="http://vjs.zencdn.net/5.19/video-js.min.css" rel="stylesheet">
    <!--引入播放器js-->
    <script src="http://vjs.zencdn.net/5.19/video.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/videojs-flash@2/dist/videojs-flash.min.js"></script>
</head>
<body>


<video id="my-player" class="video-js vjs-default-skin vjs-big-play-centered" preload="auto" autoplay="autoplay"
       poster="//vjs.zencdn.net/v/oceans.png" width="500" height="400" data-setup='{}'>
    <!--src: 规定媒体文件的 URL  type:规定媒体资源的类型-->
    <source src='rtmp://202.69.69.180:443/webcast/bshdlive-pc' id="source_url" type='rtmp/flv'/>
</video>
<script type="text/javascript">
    // 设置flash路径,用于在videojs发现浏览器不支持HTML5播放器的时候自动唤起flash播放器
    videojs.options.flash.swf = 'https://cdn.bootcss.com/videojs-swf/5.4.1/video-js.swf';
    //my-player为页面video元素的id
    var player = videojs('my-player',{techOrder: ['flash', 'html5']});  //使用播放技术,不用h5可以强制使用flash
    player.ready(function(){    //暂停后无法继续播放,刷新视频,没这个需求可以无视(感觉效果不是理想)
        var myPlayer = this;
        myPlayer.on("pause",function(){
            myPlayer.on( "play",function(){
                myPlayer.load();
                myPlayer.off("play");
            });
        });
    });
</script>
</body>
</html>

刚好遇到一个拉流的需求,然后顺便学习记录一下,下面的暂停重新播放虽然可以实现,但是每次载入会闪一下,由于没有具体需求就没有深究了,有兴趣的朋友可以看看还有没有其他更好的方案。
在这里插入图片描述

### 使用 Video.js 播放 RTMP 媒体 为了在 HTML 页面中使用 Video.js 播放 RTMP 媒体,需要引入 `videojs-contrib-media-sources` 插件以及 `videojs-flash` 插件来支持 Flash 回退功能[^1]。 #### 引入必要的库文件 确保已经包含了 Video.js 的核心库及其 CSS 文件,并且加入了上述两个插件: ```html <link href="https://vjs.zencdn.net/7.8.4/video-js.min.css" rel="stylesheet"> <script src="https://vjs.zencdn.net/7.8.4/video.min.js"></script> <!-- videojs flash support --> <script src="https://cdnjs.cloudflare.com/ajax/libs/videojs-flash/2.0.0/videojs-flash.min.js"></script> <!-- contrib media sources plugin --> <script src="https://cdn.jsdelivr.net/npm/@videojs/http-streaming@2/dist/videojs-http-streaming.min.js"></script> ``` #### 创建视频容器并配置播放器选项 定义一个用于容纳视频播放控件的 `<video>` 标签,并通过 JavaScript 初始化 Video.js 实例,指定技术参数为 `'flash'` 和设置对应的 RTMP URL 地址作为源数据: ```html <video id="my-video" class="video-js vjs-default-skin" controls preload="auto" width="640" height="264"> </video> <script> var player = videojs('my-video', { techOrder: ['flash'], sources: [{ type: "rtmp/flv", src: "rtmp://your.rtmp.server/live/stream" }] }); </script> ``` 这段代码创建了一个具有默认外观样式的 Video.js 播放器实例,并指定了要播放的内容来自给定的 RTMP 服务器地址。注意这里的 `type` 属性应匹配实际使用的协议和编码格式;对于大多数情况而言,“rtmp/flv” 是常见的组合方式之一。 当尝试获取像 `document.getElementById('myVideo'+item.id+'_Flash_api')` 这样的 DOM 节点时,实际上是在访问由 Video.js 加载完成后的内部组件结构的一部分,这通常不是直接操作的目标,除非有特殊定制化需求[^2]。 关于暂停后再继续播放可能会出现短暂闪烁的现象,这是由于重新加载资源所引起的视觉效果变化所致,在某些应用场景下可能需要注意优化用户体验[^3]。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值