vue项目中播放rtmp视频文件流的方法


Posted in Javascript onSeptember 17, 2020

想要播放rtmp视频文件流用H5的video标签是不可行的,所以这里我引用了一款插件 vue-video-player ,当然想要流畅的运用 vue-video-player 播放视频还必须安装辅助插件 videojs-flash。最后还要特别注意的是必须使用npm安装,当然我在安装过程中也遇到了一个问题,就是在选择使用 vue-video-player前还安装了videojs插件,卸载从新安装 vue-video-player时由于项目中有以前安装的其他视频组件影响,一直运行不起来,后面我把node_modules相关的视频组件都删除以及package中的安装目录都删除后从新安装就可以运行了,如果你们有遇到这种类似的情况可以对你们有帮助。
下面展示一些相关的操作步骤:
1、安装vue-video-playervideojs-flash插件

npm install vue-video-player --save
npm install video-flash --save

2、在package里面查看是否安装成功以及安装后的版本,如下图所示:

vue项目中播放rtmp视频文件流的方法

3、全局引用,在main.js文件中引入,如下图所示:

import VueVideoPlayer from 'vue-video-player'
import 'video.js/dist/video-js.css'
import 'videojs-flash'
Vue.use(VueVideoPlayer)

或者是在当前页面引用,如下所示:

import 'video.js/dist/video-js.css'
import { videoPlayer } from 'vue-video-player'
import 'videojs-flash'

在这里我需要特别说明的是引用时必须注意videojs-flash必须要放在vue-video-player的后面,不然同样也会导致视频无法正常播放。
4、下面就是简单的应用案例,如果你需要更多的详细规则可以查看npm插件安装的网站https://www.npmjs.com/package/vue-video-player
完整案例说明如下:

<template>
	<videoPlayer class="vjs-custom-skin videoPlayer" ref="videoplayer" 
		:playsinline="true" width="90%" :options="playerOptions"
  	customEventName="changed" @play="onPlayerPlay($event)">
   </videoPlayer>
</template>
<script>
	import 'video.js/dist/video-js.css'
 	import { videoPlayer } from 'vue-video-player'
 	import 'videojs-flash'
 	export default {
	  components: {
	   videoPlayer
	  },
	  data(){
			return{
				playerOptions: {//测试视频流数据
			     width: "210",
			     height: "134",
			     language: 'zh-CN',
			     techOrder: ['flash'],
			     muted: true,
			     autoplay: true,
			     controls: true,
			     loop: true,
			     sources: [{
			      type: 'rtmp/mp4',
			      src: 'rtmp://mobliestream.c3tv.com:554/live/goodtv.sdp' //rtmp流地址
			     }],
			     poster: 'static/fire/bgpp.png',
			     flash:{
			      swf:'static/video-js.swf' //视频屏幕小于400x300时设置
			     }
		    },
			}
		}
  }
</script>

5、部分bug解决办法
①当视频小于400x300时,视频不能自动播放,在flash下面添加静态video-js.swf资源,如上面案例所示;
②如果是像这样(rtmp://192.168.20.185:1935/live/openUrl/l2MJZsI)的流文件,需要在后面加一个 /才可以播放
videojs-flash
vue-video-player的顺序问题,vue-video-player必须放置在videojs-flash之前
④如果都没有上面的问题,可以查看一下是否浏览器的flash是否开起,开起可以在浏览器的设置里面去搜索flash,查到后设置允许即可

总结

到此这篇关于vue项目中播放rtmp视频文件流 的文章就介绍到这了,更多相关vue播放rtmp视频文件流 内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
javascript 框架小结 个人工作经验
Jun 13 Javascript
node.js中的fs.fsyncSync方法使用说明
Dec 15 Javascript
Bootstrap组件系列之福利篇几款好用的组件(推荐二)
Jul 12 Javascript
Bootstrap 设置datetimepicker在屏幕上面弹出设置方法
Mar 21 Javascript
Vue.js递归组件构建树形菜单
Dec 24 Javascript
Angular HMR(热模块替换)功能实现方法
Apr 04 Javascript
vue.js做一个简单的编辑菜谱功能
May 08 Javascript
微信小程序视图控件与bindtap之间的问题的解决
Apr 08 Javascript
Vue-input框checkbox强制刷新问题
Apr 18 Javascript
antd中table展开行默认展示,且不需要前边的加号操作
Nov 02 Javascript
JavaScript中的LHS和RHS分析详情
Apr 06 Javascript
vue-cli3.x配置全局的scss的时候报错问题及解决
Apr 30 Vue.js
逐行分析鸿蒙系统的 JavaScript 框架(推荐)
Sep 17 #Javascript
vue项目实现多语言切换的思路
Sep 17 #Javascript
vue实现放大镜效果
Sep 17 #Javascript
JavaScript封装单向链表的示例代码
Sep 17 #Javascript
vue修改Element的el-table样式的4种方法
Sep 17 #Javascript
vue+canvas实现拼图小游戏
Sep 18 #Javascript
JavaScript 常见的继承方式汇总
Sep 17 #Javascript
You might like
phpmyadmin操作流程
2006/10/09 PHP
五个PHP程序员工具
2008/05/26 PHP
PHP Session变量不能传送到下一页的解决方法
2009/11/27 PHP
基于递归实现的php树形菜单代码
2014/11/19 PHP
PHP封装的完整分页类示例
2018/08/21 PHP
php多进程并发编程防止出现僵尸进程的方法分析
2020/02/28 PHP
javascript 打印内容方法小结
2009/11/04 Javascript
jquery在IE、FF浏览器的差别详细探讨
2013/04/28 Javascript
[JSF]使用DataModel处理表行事件的实例代码
2013/08/05 Javascript
JS定时器实例详细分析
2013/10/11 Javascript
js实现文本框支持加减运算的方法
2015/08/19 Javascript
Javascript获取统一管理的提示语(message)
2016/02/03 Javascript
ES6中非常实用的新特性介绍
2016/03/10 Javascript
Node.js的Express框架使用上手指南
2016/03/12 Javascript
Angularjs2不同组件间的通信实例代码
2017/05/06 Javascript
收藏AngularJS中最重要的核心功能
2017/07/09 Javascript
Vue.js项目模板搭建图文教程
2017/09/20 Javascript
使用JS中的Replace()方法遇到的问题小结
2017/10/20 Javascript
微信小程序列表渲染功能之列表下拉刷新及上拉加载的实现方法分析
2017/11/27 Javascript
关于JavaScript 数组你应该知道的事情(推荐)
2019/04/10 Javascript
Echarts实现单条折线可拖拽效果
2019/12/19 Javascript
JavaScript 实现拖拽效果组件功能(兼容移动端)
2020/11/11 Javascript
Python正则表达式教程之二:捕获篇
2017/03/02 Python
对python3 一组数值的归一化处理方法详解
2018/07/11 Python
python去除拼音声调字母,替换为字母的方法
2018/11/28 Python
python实现五子棋小游戏
2020/03/25 Python
python实现简单五子棋游戏
2019/06/18 Python
如何运行.ipynb文件的图文讲解
2019/06/27 Python
python调用matplotlib模块绘制柱状图
2019/10/18 Python
Python OpenCV实现测量图片物体宽度
2020/05/27 Python
CSS3实现3D翻书效果
2016/06/20 HTML / CSS
Airbnb爱彼迎官网:成为爱彼迎房东,赚取收入
2019/03/14 全球购物
党员对照检查剖析材料
2014/10/13 职场文书
前端监听websocket消息并实时弹出(实例代码)
2021/11/27 Javascript
Nginx虚拟主机的配置步骤过程全解
2022/03/31 Servers
解决Python保存文件名太长OSError: [Errno 36] File name too long
2022/05/11 Python