本文介绍: HLS 协议本身实现码率适应,在不同带宽情况下,设备可以自动切换到最适合自己码率视频播放1.跨平台性:支持iOS/Android/浏览器,通用性强。穿墙能力强:由于HLS是基于HTTP协议的,因此HTTP数据能够穿透防火墙或者代理服务器HLS都可以做到,基本不会遇到防火墙屏蔽的情况。切换码率快(清晰度):自带码率适应客户端可以选择从许多不同的备用源中不同速率下载同样的资源,允许流媒体会话适应不同数据速率客户端可以很快的选择切换码率,以适应不同带宽条件下的播放

github官网GitHubvideodev/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. – GitHubvideodev/hls.js: HLS.js is a JavaScript library that plays HLS in browsers with support for MSE.icon-default.png?t=N7T8https://github.com/video-dev/hls.js

1.简介格式

2.接到一个需求需要将视频流进行切片优化后的视频流如何做到?

   目前市场主流的是hls .ts后缀视频流进行切片前端如何做到?

准备思想

后端源文件.mp4进行切片思想用.m3u8返回前端 

 1.初始.m3u8文件包含url的其他.m3u8文件如下图

2.url的其他.m3u8包含.ts切片的视频流文件如下图

3.最后我们初始化.m3u8放进url类型改为customHls即可播放进度条拖动即可看出切片视频

yarn add dplayer -S // 视频播放器插件
yarn add hls.js -S  // 播放hls插件
<template&gt;
  <div id="dplayer" style="width: 400px"&gt;</div>
  <p>
    <button @click="playVideo">播放视频</button> &amp;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>

下个文章如何解决下载加密后的视频文件.ts

原文地址:https://blog.csdn.net/sunwanfulove/article/details/134731374

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_45874.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注