视频直播服务目前支持3种直播协议:RTMP、HLS、HTTP-FLV。

本文主要讲解在 Vue 项目中如何使用 vue-video-player 播放器播放 rtmp 流。

1.准备工作

cnpm install --save vue-video-player

cnpm install --save videojs-flash

cnpm install --save videojs-swf

2.代码实战

import { videoPlayer } from 'vue-video-player'

import 'video.js/dist/video-js.css'

import 'videojs-flash'

import SWF_URL from 'videojs-swf/dist/video-js.swf'

export default {

components: {

videoPlayer

},

data () {

return {

playerOptions: {

autoplay: true,

sources: [{

type: 'rtmp/mp4',

src: 'rtmp://58.200.131.2:1935/livetv/hunantv' // 亲测可用

}],

techOrder: ['html5', 'flash'],

flash: {

swf: SWF_URL

}

}

}

}

}

3.解决问题

Q1: 控制台报错 The "flash" tech is undefined. Skipped browser support check for that tech.

方案1(无效):删除 node_modules,再用 npm 安装;

方案2(有效):查看 vue-video-player 和 videojs-flash 的 package.json,发现这2个插件最新版引入的 video.js 版本没有严格统一,怀疑和插件版本有关,故进行版本降级,如下:

"dependencies": {

"vue-video-player": "5.0.1",

"videojs-flash": "2.1.0"

}

方案3(未验证):以下解决方案来自 vue-video-player issues#221

根本原因是 videojs 和 videojs-flash 里的各有一个 video.js,如果两个版本不一样可能就会报错了,终极解决方案就是配置第三方模块的查找顺序,优先查找本身安装的videojs 就可以了。

// webpack.config.js

resolve: {

modules: [path.resolve('node_modules'), 'node_modules'],

...

}

Q2: 控制台报错 Cross-origin plugin content from https://vjs.zencdn.net/swf/5.4.1/video-js.swf must have a visible size larger than 400 x 300 pixels, or it will be blocked. Invisible content is always blocked.

当直播视频设置了 autoplay: true,并且宽高小于400x300,例如直播墙的需求,这时便出现如上报错。

2个关键点:1.跨源插件 2.大于400x300,解决其一便能自动播放。视频窗口大小取决于需求,不可控制。针对跨源插件,需要安装上述版本的videojs-swf插件,import即可。

注:引入 videojs-swf@5.4.1 的插件,需要在 vue.config.js 中加入 chainwebpack 配置,否则项目运行会报错:无法找到相关 loader

// vue.config.js

module.exports = {

chainWebpack: config => {

config.module

.rule('swf')

.test(/\.swf$/)

.use('url-loader')

.loader('url-loader')

.options({

limit: 10000

})

}

}

参考文档

html flash rtmp,Web直播之RTMP协议:vue-video-player + videojs-flash相关推荐

  1. iOS直播:LFLiveKit + RTMP实现直播推流

    相关库 LFLiveKit LFLiveKit + RTMP实现直播推流 RTMP协议:RTMP(the Real-time Messaging Protocol)协议作为客户端和服务器端的传输协议, ...

  2. rtsp转rtmp服务linux,ubuntu安装流媒体服务器(nginx+rtmp,rtsp转rtmp,rtsp转m3u8)

    在 ubuntu server 14 安装流程 1.先下载安装  nginx 和 nginx-rtmp 编译依赖工具 sudo apt-get install build-essential libp ...

  3. Web直播送走flash,迎来直播,h5全平台低延时,webFlv播放器方案(适用RTSP监控,RTMP直播)

    视频直播从国内兴起就是RTMP协议主导,Adobe开发协议,Web-Flash播放器绑定协议,方便web接入,便于业务集成,一直是行业标准,随移动兴起,Flash插件方式日益退出舞台,怎么样在Web上 ...

  4. 基于RTMP协议的Flash流媒体网页直播播放器

    本文记录一些基于Flash技术的网页播放器.基于Flash的网页播放器相比于其他网页播放器来说最大的优势就是"免插件安装"了,这一点可以很大的提高用户的体验质量. 主要是几种常用的 ...

  5. Java 监控直播流rtsp协议转rtmp、hls、httpflv协议返回浏览器

    Java 监控直播流rtsp协议转rtmp.hls.httpflv协议返回浏览器 目录 一:了解音视频流协议: 二:方案一 rtsp 转rtmp 1.下载nginx + nginx-rtmp-modu ...

  6. android html5 rtmp,利用H5实现RTMP流的WEB移动端直播

    利用H5实现RTMP流的WEB移动端直播 主要实现方式:使用H5的video 元素结合H5的网络频播放器(video.js)实现rtmp流的直播播放 video.js 介绍 Video.js 是一个通 ...

  7. 常用的RTMP、RTSP、HTTP协议流直播流地址

    一.RTMP.RTSP.HTTP协议 这三个协议都属于互联网 TCP/IP 五层体系结构中应用层的协议.理论上这三种都可以用来做视频直播或点播.但通常来说,直播一般用 RTMP.RTSP.而点播用 H ...

  8. RTMP、RTSP、HTTP协议流常用直播流地址

    引用 一.RTMP.RTSP.HTTP协议 这三个协议都属于互联网 TCP/IP 五层体系结构中应用层的协议.理论上这三种都可以用来做视频直播或点播.但通常来说,直播一般用 RTMP.RTSP.而点播 ...

  9. 最全最常用的RTMP、RTSP、HTTP协议流常用直播流地址

    一.RTMP.RTSP.HTTP协议 这三个协议都属于互联网 TCP/IP 五层体系结构中应用层的协议.理论上这三种都可以用来做视频直播或点播.但通常来说,直播一般用 RTMP.RTSP.而点播用 H ...

  10. H5视频之RTMP、RTSP、HTTP协议流直播流测试地址

    转自https://blog.csdn.net/u014162133/article/details/81188410 一.RTMP.RTSP.HTTP协议 这三个协议都属于互联网 TCP/IP 五层 ...

最新文章

  1. 安卓9去掉搜索栏_安卓福音,史上最强搞机工具箱,一键修手机
  2. vue.js权威指南----代码解释实例
  3. c语言入门中冒泡排序的例题,选择排序和冒泡排序例题解析(c语言)
  4. MySQL:简单insert 一秒原因排查
  5. Android学习(七)—— Android布局
  6. 整合mybatis3.2.2跟spring3.0.1
  7. 组件通信-父组件为子组件传递数据-静态数据//动态数据 // 数据校验
  8. 【5分钟 Paper】Deep Reinforcement Learning with Double Q-learning
  9. h5页面在ios机上禁止长按复制
  10. 博弈论(取石子专题)
  11. paddlepaddle手写字体识别
  12. 计算机课数据排序与筛选ppt,《EXCEL 数据排序与筛选》教学设计
  13. C#实现office文档转换为PDF或xps
  14. 上周刚号召加班,这周立马双休,董明珠把互联网玩明白了……
  15. php生成mp4文件,PHP实现将视频转成MP4并获取视频预览图的方法
  16. JS - 获取用户当前 ip 地址
  17. 使用记录6_发布微信小游戏
  18. 九宫格一共有多少4个相连的点?(C5H4)
  19. 不要小看了get 与set
  20. PL/SQL破解方法(不需要注册码)

热门文章

  1. shell脚本中的逻辑判断、文件目录属性判断、if特殊用法、case判断
  2. Java-----Excel转HTML
  3. mysql表情存储报错问题
  4. css flex 之 flex-grow | flex-direction
  5. Objective-C中的@Property具体解释
  6. iOS 多线程的使用
  7. Border属性的各种变化
  8. 小代码编写神器:LINQPad 使用入门
  9. 汉字与多字节编码的转换 - 回复 不知道 的问题
  10. Java中字符(串)和数值类型的转换