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中用星号表示预录入内容的实现代码
Jan 08 Javascript
ASP.NET MVC中EasyUI的datagrid跨域调用实现代码
Mar 14 Javascript
javascript计时器事件使用详解
Jan 07 Javascript
不要使用jQuery触发原生事件的方法
Mar 03 Javascript
$.each与$().each的区别示例介绍
Mar 20 Javascript
JS实现页面超时后自动跳转到登陆页面
Jan 19 Javascript
javaScript中push函数用法实例分析
Jun 08 Javascript
easyui中combotree循环获取父节点至根节点并输出路径实现方法
Nov 10 Javascript
vue系列之requireJs中引入vue-router的方法
Jul 18 Javascript
解决angularjs中同步执行http请求的方法
Aug 13 Javascript
react同构实践之实现自己的同构模板
Mar 13 Javascript
vue实现两个组件之间数据共享和修改操作
Nov 12 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
Yii中render和renderPartial的区别
2014/09/03 PHP
JavaScript使用prototype定义对象类型(转)[
2006/12/22 Javascript
使用js完成节点的增删改复制等的操作
2014/01/02 Javascript
全面兼容的javascript时间格式化函数(比较实用)
2014/05/14 Javascript
基于NodeJS的前后端分离的思考与实践(四)安全问题解决方案
2014/09/26 NodeJs
基于jquery实现轮播焦点图插件
2016/03/31 Javascript
javascript模块化简单解析
2016/04/07 Javascript
Augularjs-起步详解
2016/07/08 Javascript
Google Maps基础及实例解析
2016/08/06 Javascript
手机端实现Bootstrap简单图片轮播效果
2016/10/13 Javascript
AngularJS点击添加样式、点击变色设置的实例代码
2017/07/27 Javascript
基于Bootstrap table组件实现多层表头的实例代码
2017/09/07 Javascript
原生JS实现日历组件的示例代码
2017/09/22 Javascript
Vue工程模板文件 webpack打包配置方法
2017/12/26 Javascript
JS实现非首屏图片延迟加载的示例
2018/01/06 Javascript
AngularJs分页插件使用详解
2018/06/30 Javascript
详解Vue.directive 自定义指令
2019/03/27 Javascript
vue-cli 项目打包完成后运行文件路径报错问题
2019/07/19 Javascript
vue导航栏部分的动态渲染实例
2019/11/01 Javascript
解决Vue + Echarts 使用markLine标线(precision精度问题)
2020/07/20 Javascript
vue 实现tab切换保持数据状态
2020/07/21 Javascript
[01:15:44]首部DOTA2纪录片今日23时全网上映
2014/03/19 DOTA
[37:35]DOTA2上海特级锦标赛A组资格赛#1 Secret VS MVP.Phx第二局
2016/02/25 DOTA
python中的sort方法使用详解
2014/07/25 Python
python类和函数中使用静态变量的方法
2015/05/09 Python
使用 Python 实现简单的 switch/case 语句的方法
2018/09/17 Python
python快速编写单行注释多行注释的方法
2019/07/31 Python
canvas绘制表情包的示例代码
2018/07/09 HTML / CSS
2019年Java 最常见的 面试题
2016/10/19 面试题
2014年销售员工作总结
2014/12/01 职场文书
2015年爱牙日活动总结
2015/03/23 职场文书
保险公司客户经理岗位职责
2015/04/09 职场文书
销售合作意向书范本
2015/05/08 职场文书
2015年幼儿教师个人工作总结
2015/05/20 职场文书
js不常见操作运算符总结
2021/11/20 Javascript
django中websocket的具体使用
2022/01/22 Python