本文介绍: HLS 协议本身实现了码率自适应,在不同带宽情况下,设备可以自动切换到最适合自己码率的视频播放1.跨平台性:支持iOS/Android/浏览器,通用性强。穿墙能力强:由于HLS是基于HTTP协议的,因此HTTP数据能够穿透的防火墙或者代理服务器HLS都可以做到,基本不会遇到被防火墙屏蔽的情况。切换码率快(清晰度):自带多码率自适应,客户端可以选择从许多不同的备用源中以不同的速率下载同样的资源,允许流媒体会话适应不同的数据速率。客户端可以很快的选择和切换码率,以适应不同带宽条件下的播放。
github官网GitHub – video–dev/hls.js: HLS.js is a JavaScript library that plays HLS in browsers with support for MSE.HLS.js is a JavaScript library that plays HLS in browsers with support for MSE. – GitHub – video–dev/hls.js: HLS.js is a JavaScript library that plays HLS in browsers with support for MSE.https://github.com/video-dev/hls.js
- 1. MP4是最常见的封装格式了,应用范围广、灵活性高、兼容性强 。
- MP4甚至支持自定义封面图,几乎所有的播放器、甚至是浏览器都支持这个封装格式。
- 2. FLV格式与往期《直播协议》中的RTMP、HTTP-FLV是类似的,毕竟都是Adobe公司主导或推出的标准。
- FLV是一种为网络视频设计的格式,网页加入flv.js插件就可以播放了 FLV可以做长连接需要用flv.js。
- 3. 最后是HLS格式,在往期《直播协议》已经详细讨论过HLS了。
- 在点播的场景下,HLS实质上就是把一整个大的视频文件分成很多个碎片视频文件。
- HLS格式的文件由两部分组成,一是多个只有几秒长度的.ts碎片视频文件,另一个是记录这些视频文件地址的.m3u8索引文件。
2.接到一个需求需要将视频流进行切片做优化后的视频流如何做到?
目前市场主流的是hls .ts后缀将视频流进行切片前端如何做到?
3.最后我们将初始化.m3u8放进url类型改为customHls即可播放将进度条拖动即可看出切片视频端
yarn add dplayer -S // 视频播放器插件
yarn add hls.js -S // 播放hls流插件
<template>
<div id="dplayer" style="width: 400px"></div>
<p>
<button @click="playVideo">播放视频</button> &nbsp;
<button @click="pauseVideo">暂停视频</button>
</p>
</template>
<script setup>
import { onMounted } from "vue";
import Hls from "hls.js";
import DPlayer from "dplayer";
console.log(DPlayer);
let dpInstance = null;
function playVideo() {
console.log(dpInstance.play);
dpInstance.play();
}
function pauseVideo() {
dpInstance.pause();
}
onMounted(() => {
const dp = new DPlayer({
container: document.getElementById("dplayer"),
video: {
url: "https://xxxx.m3u8", //需要后端配合返回.m3u8格式 .m3u8格式必须包含其他http视频流格式
type: "customHls", //类型可以mp4 || hls || flv
customType: {
customHls: function (video) {
// let config = {
// xhrSetup: function (xhr) {
// xhr.withCredentials = true; // 会携带cookie
// xhr.setRequestHeader("token", "my-token");
// },
// };
const hls = new Hls();
hls.loadSource(video.src);
hls.attachMedia(video);
},
},
},
});
window.dp = dp;
dpInstance = dp;
});
</script>
<style lang="scss"></style>
原文地址:https://blog.csdn.net/sunwanfulove/article/details/134731374
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_45874.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。