网页前端(Html)video播放m3u8(HLS)Vue使用video.js播放m3u8

网页前端(Html)video播放m3u8(HLS)

HLS (HTTP Live Streaming)是Apple公司研发的流媒体传输技术,包括一个m3u8的索引文件、多个ts分片文件和key加密串文件。这项技术主要应用于点播和直播领域。

开源JS库(Github):

【video.js】https://github.com/videojs/videojs-contrib-hls
【hls.js】https://github.com/video-dev/hls.js/

腾讯视频SDK(TCPlayerLite),文档地址:https://cloud.tencent.com/document/product/881/20207

<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>videojs-contrib-hls embed</title><link href="https://unpkg.com/video.js/dist/video-js.css" rel="stylesheet"><script src="https://unpkg.com/video.js/dist/video.js"></script><script src="https://unpkg.com/videojs-contrib-hls/dist/videojs-contrib-hls.js"></script></head>
<body><h1>Video.js Example Embed</h1><video id="my_video_1" class="video-js vjs-default-skin" controls preload="auto" width="640" height="268" data-setup='{}'><source src="http://d2zihajmogu5jn.cloudfront.net/bipbop-advanced/bipbop_16x9_variant.m3u8" type="application/x-mpegURL"></video><script></script></body>
</html>

注:可以指定多个source标签。

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><title>前端播放m3u8格式视频</title><link href="https://vjs.zencdn.net/7.4.1/video-js.css" rel="stylesheet"><script src='https://vjs.zencdn.net/7.4.1/video.js'></script><script src="https://cdnjs.cloudflare.com/ajax/libs/videojs-contrib-hls/5.15.0/videojs-contrib-hls.min.js" type="text/javascript"></script><!-- videojs-contrib-hls 用于在电脑端播放 如果只需手机播放可以不引入 -->
</head>
<body><style>.video-js .vjs-tech {position: relative !important;}</style><div><video id="myVideo" class="video-js vjs-default-skin vjs-big-play-centered" controls preload="auto" data-setup='{}' style='width: 100%;height: auto'><source id="source" src="http://1252093142.vod2.myqcloud.com/4704461fvodcq1252093142/48c8a9475285890781000441992/playlist.m3u8" type="application/x-mpegURL"></source></video></div><div class="qiehuan" style="width:100px;height: 100px;background: red;margin:0 auto;line-height: 100px;color:#fff;text-align: center">切换视频</div>
</body><script>// videojs 简单使用var myVideo = videojs('myVideo', {bigPlayButton: true,textTrackDisplay: false,posterImage: false,errorDisplay: false,})myVideo.play()var changeVideo = function (vdoSrc) {if (/\.m3u8$/.test(vdoSrc)) { //判断视频源是否是m3u8的格式myVideo.src({src: vdoSrc,type: 'application/x-mpegURL' //在重新添加视频源的时候需要给新的type的值})} else {myVideo.src(vdoSrc)}myVideo.load();myVideo.play();}var src = 'http://1252093142.vod2.myqcloud.com/4704461fvodcq1252093142/f865d8a05285890787810776469/playlist.f3.m3u8';document.querySelector('.qiehuan').addEventListener('click', function () {changeVideo(src);})
</script>

Vue使用video.js播放m3u8

第一步: 直接安装 兼容7.0 video.js

npm install vue-video-player videojs-contrib-hls --save

第二步: main.js 引入video-js.css

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

第三步:组件页面

<template><div style="padding-top: 30px; width: 100%; height: 360px; position: relative;"><videoid="video"preload="auto"mutedclass="video-js vjs-default-skin"style="width: 100%; height: 100%; object-fit: fill"><source src="http://ivi.bupt.edu.cn/hls/cctv1hd.m3u8" type="application/x-mpegURL" /></video></div>
</template>
<script>
import videojs from 'video.js'
import 'videojs-contrib-hls'
export default {mounted () {this.$nextTick(() => {this.getVideo()})},methods: {getVideo () {videojs('video', {bigPlayButton: true,textTrackDisplay: false,posterImage: false,errorDisplay: false,controls: true,hls: {withCredentials: true}}, function () {this.play()})}}
}
</script>

参考链接

1、验证m3u8视频地址是否可用的工具
2、主要参考链接:vue组件播放m3u8格式视频
3、其他参考链接:Vue Video.js播放m3u8视频流格式(video+videojs-contrib-hl)
4、video.js官网链接

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/555351.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

为什么要用枚举实现单例模式(避免反射、序列化问题)

1 引言 ​ 相信如果能看到我这篇博客的小伙伴&#xff0c;肯定都看过Joshua Bloch大神说过的这句话&#xff1a;“单元素的枚举类型已经成为实现Singleton的最佳方法”。其实&#xff0c;第一次读到这句话&#xff0c;我连其中说的单元素指什么都不知道&#xff0c;尴尬。后来…

mysql挂载数据卷_记一次生产数据库数据文件进行分区转移

概述由于之前同事没有对磁盘分区做规划&#xff0c;可以看到数据和系统是在同个分区的&#xff0c;没有单独规划一个数据分区给数据库&#xff0c;还有个分区是640G没有用上。下面简单介绍一下mysql数据库数据文件的转移过程。1、新建数据分区篇幅需要&#xff0c;以下从简。。…

java计算一个多边形的重心_2D凸多边形碰撞检测算法(二) - GJK(上)

2D凸多边形碰撞检测算法&#xff08;二&#xff09; - GJK&#xff08;上&#xff09;原理在 Narrow Phase 精细碰撞检测中&#xff0c;除了 SAT &#xff0c;另外一个就是 GJK&#xff08;Gilbert–Johnson–Keerthi&#xff09;算法。它足够高效&#xff0c;且很容易了解它是…

高性能对象存储MinIO学习API使用使用api创建文件夹MinIO工具类

MinIO 是GlusterFS创始人之一Anand Babu Periasamy发布的开源项目&#xff0c;基于Apache V2 license 100% 开放源代码。MinIO采用Golang实现&#xff0c;客户端支持Java、Python、Javacript、Golang语言等。 其设计的主要目标是作为私有云对象存储的标准方案。非常适合于存储…

rmi远程反序列化rce漏洞_Apache Dubbo Provider默认反序列化远程代

背景近日&#xff0c;Apache Dubbo披露了Provider默认反序列化远程代码执行漏洞(CVE-2020-1948)&#xff0c;攻击者可构造恶意请求&#xff0c;从而执行任意代码。具体信息如上图所示。在官方邮件中&#xff0c;漏洞报告者还提供了官方的PoC脚本&#xff0c;感兴趣的读者可以自…

Java非对称加密KeyPairGenerator类

Java加密的常用的加密算法类型有三种 1单向加密&#xff1a; 也就是不可逆的加密&#xff0c;例如MD5,SHA,HMAC 2对称加密&#xff1a; 也就是加密方和解密方利用同一个秘钥对数据进行加密和解密&#xff0c;例如DES&#xff0c;PBE等等 3非对称加密&#xff1a; 非对称加…

操作痕迹包括那些_高级消防设施操作员专题之:走近气体灭火系统

按照《消防设施操作员职业技能标准》的规定&#xff0c;安装有气体灭火系统的单位&#xff0c;应当配置高级消防设施操作员。由于这些单位通常情况下都是消防安全重点单位、火灾高危单位&#xff0c;可以预见&#xff0c;高级消防设施操作员作为消防行业的高技能人才&#xff0…

请求头Content-Type:application/json,java后端如何接收数据

Content-Type的类型 1.application/x-www-form-urlencoded ​ 常用RequestParam(“参数名称”)也可以不写使用springMvc自己根据参数名称自动赋值 2.multipart/form-data ​ 这个和上个差不多吧&#xff0c;如果是multipart类型的文件&#xff0c;记得在后端接收参数是直接…

flutter不支持热更新_Flutter 在安卓上可以实现热更新了

本文由 句号君 授权投稿原文链接&#xff1a;https://blog.csdn.net/qizewei123/article/details/102963340Flutter 官方在 GitHub 上声明是暂时不支持热更新的&#xff0c;但是在 Flutter 的源码里&#xff0c;是有一部分预埋的热更新相关的代码&#xff0c;并且通过一些我们自…

jar包在windows后台运行,通过.bat文件

jar包在windows后台运行.bat 一、IDEA打成jar包 这里不再赘述 二、在windows后台运行jar包 在cmd中可以使用java -jar xxxxx.jar方式运行一个jar文件&#xff0c;这种方法运行一旦关闭该cmd界面就会停止运行。编辑.bat文件&#xff0c;使用javaw方式运行不用担心文件会在不小…

圆周分孔计算公式表图_在圆上分孔怎么计?

2017-05-17为什么中国多制造方孔圆钱?关于方孔圆钱外圆内方的形制&#xff0c;一直是钱币学中颇有争议的问题。有人认为秦始皇迷信方士而采用&#xff1b;有人说是为了穿绳成串&#xff0c;便于携带&#xff1b;有人认为为了减轻铜钱的重量。然而&#xff0c;有三种较为认同的…

java 枚举(enum) 全面解读

枚举类型是单例模式的。你需要实例化一次&#xff0c;然后再整个程序之中就可以调用他的方法和成员变量了。 枚举类型使用单例模式是因为他的值是固定的&#xff0c;不需要发生改变。 简介 枚举是Java1.5引入的新特性&#xff0c;通过关键字enum来定义枚举类。枚举类是一种特殊…

修改表名_面试官:如何批量修改mysql表字段、表、数据库字符集和排序规则

概述目前数据库字符集统一用的utf8&#xff0c;由于项目需要&#xff0c;引进了表情&#xff0c;但是utf8mb5才支持表情字符&#xff0c;所以需统一修改数据库字符集&#xff0c;下面介绍批量修改数据库字符集的办法。修正顺序是字段级别>表级别>库级别。一、批量修改整个…

Linux - nohup - 实现后台运行程序及查看(nohup与)

1. 后台执行 一般运行linux上的程序都是执行 .sh 文件&#xff08;./sh文件&#xff09;&#xff0c;那如果不影响当前CMD窗口的操作&#xff0c;需要后台运行怎么办呢&#xff1f; 这时就需要借助 nohup 和 & 命令来实现。 nohup java -server -Xms128M -Xmx512M -XX:M…

量化评价和质化评价举例_量化评价和质性评价异同点

量化评价和质性评价在理论上有分歧&#xff0c;但它们不是两种对立的方法&#xff0c;在课程评价中是非常必要和不可缺少的。它们的分歧能在课程评价实践中统一起来&#xff0c;互相弥补各自的缺点。1.量化评价的特点 量化评价的优点是逻辑性强&#xff0c;标准化和精确化程度…

Maven命令 install 和 package的区别

Maven命令 install 和 package的区别 Maven是目前十分流行的项目构建工具以及依赖解决工具&#xff0c;其提供的常用指令中有两个很容易引起使用者的疑惑&#xff0c; 那就是 install 和 package &#xff0c; 那么这两个命令到底有啥区别呢&#xff1f; Maven install 安装…

如何重启_消费市场按下重启键,企业该如何提前布局

2020广发卡携手企业和消费者&#xff0c;共同按下重启键&#xff0c;让我们放下包袱&#xff0c;轻松前行。当疫情结束后&#xff0c;你想做什么&#xff1f;也许是去见想见的人&#xff0c;和他一起去吃想吃的美食&#xff1b;也许是约上三五好友&#xff0c;或带着最亲的家人…

Linux中使用netstat命令的基本操作,排查端口号的占用情况

Linux中netstat命令详解 Netstat是控制台命令,是一个监控TCP/IP网络的非常有用的工具&#xff0c;它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据&#xff0c;一般用于检验本机各端口的网络连接情…

与context的关系_Android-Context

一.简介Context 翻译为上下文环境&#xff0c;是一个应用程序环境信息的接口。如果以 Android 系统角度来看可以理解为某一与操作系统的交互的具体场景&#xff0c;比如 Activity 的具体功能&#xff0c;Service 的后台运行等。如果以程序的角度看&#xff0c;Context 是一个抽…

Linux中sudo、su和su -命令的区别

Linux中sudo、su和su -命令的区别小结 我们知道&#xff0c;在Linux下对很多文件进行修改都需要有root&#xff08;管理员&#xff09;权限&#xff0c;比如对/ect/profile等文件的修改。下面这篇文章主要给大家总结介绍了关于Linux中sudo、su和su -命令的区别的相关资料&…