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实现的分页函数
Feb 07 Javascript
一些老手都不一定知道的JavaScript技巧
May 06 Javascript
使用typeof方法判断undefined类型
Sep 09 Javascript
深入理解JavaScript系列(33):设计模式之策略模式详解
Mar 03 Javascript
js获取及判断键盘按键的方法
Dec 01 Javascript
canvas绘制表盘时钟
Jan 23 Javascript
基于vue+ bootstrap实现图片上传图片展示功能
May 17 Javascript
基于JS对象创建常用方式及原理分析
Jun 28 Javascript
Vue发布项目实例讲解
Jul 17 Javascript
微信小程序如何通过用户授权获取手机号(getPhoneNumber)
Jan 21 Javascript
vue props 单项数据流实例分享
Feb 16 Javascript
arcgis.js控制地图地体的显示范围超出区域自动弹回(实现思路)
Jan 28 Javascript
逐行分析鸿蒙系统的 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
Trying to clone an uncloneable object of class Imagic的解决方法
2012/01/11 PHP
php计划任务之ignore_user_abort函数实现方法
2015/01/08 PHP
PHP链表操作简单示例
2016/10/15 PHP
用nodejs访问ActiveX对象,以操作Access数据库为例。
2011/12/15 NodeJs
分享一个我自己写的ToolTip提示插件(附源码)
2013/01/20 Javascript
Jquery通过Ajax方式来提交Form表单的具体实现
2013/11/07 Javascript
分享JavaScript获取网页关闭与取消关闭的事件
2013/12/13 Javascript
javascript实现的弹出层背景置灰-模拟(easyui dialog)
2013/12/27 Javascript
node.js中的fs.symlinkSync方法使用说明
2014/12/15 Javascript
深入理解JavaScript系列(17):面向对象编程之概论详细介绍
2015/03/04 Javascript
Jquery实现鼠标移动放大图片功能实例
2015/03/25 Javascript
js中不同的height, top的区别对比
2015/09/24 Javascript
jQuery插件jquery-barcode实现条码打印的方法
2015/11/25 Javascript
Node.js实现兼容IE789的文件上传进度条
2016/09/02 Javascript
轻松实现js弹框显示选项
2016/09/13 Javascript
node.js文件上传重命名以及移动位置的示例代码
2018/01/19 Javascript
p5.js入门教程之鼠标交互的示例
2018/03/16 Javascript
vue使用ElementUI时导航栏默认展开功能的实现
2018/07/04 Javascript
3分钟读懂移动端rem使用方法(推荐)
2019/05/06 Javascript
layui 数据表格 根据值(1=业务,2=机构)显示中文名称示例
2019/10/26 Javascript
Vue封装Axios请求和拦截器的步骤
2020/09/16 Javascript
Vue使用Ref跨层级获取组件的步骤
2021/01/25 Vue.js
[02:54]DOTA2英雄基础教程 撼地者
2014/01/14 DOTA
[01:16]2014DOTA2 TI专访C9战队EE:中国五强中会占三席
2014/07/10 DOTA
理解Python中函数的参数
2015/04/27 Python
python数据结构链表之单向链表(实例讲解)
2017/07/25 Python
Python基于回溯法子集树模板解决最佳作业调度问题示例
2017/09/08 Python
在PyCharm下打包*.py程序成.exe的方法
2018/11/29 Python
对sklearn的使用之数据集的拆分与训练详解(python3.6)
2018/12/14 Python
Python 利用邮件系统完成远程控制电脑的实现(关机、重启等)
2019/11/19 Python
django admin后管定制-显示字段的实例
2020/03/11 Python
100%植物性、有机、即食餐:Sakara Life
2018/10/25 全球购物
extern在函数声明中是什么意思
2014/01/19 面试题
门卫工作岗位职责
2013/12/17 职场文书
团日活动总结书
2014/05/08 职场文书
使用golang编写一个并发工作队列
2021/05/08 Golang