首页 > 其他分享 >实现FLV,HLS(M3U8)视频播放

实现FLV,HLS(M3U8)视频播放

时间:2024-04-26 18:00:42浏览次数:21  
标签:src hls M3U8 videoEl refs HLS FLV flv flvPlayer

1.安装hls.js和flv.js
npm i hls.js flv.js

<template>
  <div>
    <video
      controls
      autoplay
      loop
      muted
      preload="auto"
      width="550"
      ref="videoEl"
    ></video>
    <el-button @click="playVideo(src)" type="primary">播放</el-button>
    <el-button @click="stopVideo()" type="primary">停止播放</el-button>
  </div>
</template>
<script>
import Hls from "hls.js";
import Flv from "flv.js";
export default {
  data() {
    return {
      flvPlayer: null,
      hls: null,
      // src: "http://www.w3school.com.cn/i/movie.mp4",
      // src: "https://live.video.weibocdn.com/848d6fd7-f77d-4315-aad8-097b89a8a19c_index.m3u8?ori=0&ps=1Cx9YB1mmR49jS&Expires=1713376596&ssig=ZLi1scc1Un&KID=unistore,video",
      src: "https://pull-flv-l1.douyincdn.com/third/stream-403202739025739814_or4.flv?keeptime=00093a80&wsSecret=0cef314b5f0b58fe34bb2f89b2766b07&wsTime=6625d053",
    };
  },
  methods: {
    playVideo(src) {
      if (src.includes(".m3u8")) {
        if (Hls.isSupported()) {
          this.hls = new Hls();
          this.hls.loadSource(src);
          this.hls.attachMedia(this.$refs.videoEl);
          this.hls.on(Hls.Events.MANIFEST_PARSED, () => {
            this.$refs.videoEl.play();
          });
        } else if (
          this.$refs.videoEl.canPlayType("application/vnd.apple.mpegurl")
        ) {
          this.$refs.videoEl.src = src;
          this.$refs.videoEl.addEventListener("loadedmetadata", function () {
            this.$refs.videoEl.play();
          });
        }
      } else if (src.includes(".flv")) {
        if (Flv.isSupported()) {
          const flvPlayer = Flv.createPlayer({
            type: "flv",
            url: src,
          });
          flvPlayer.attachMediaElement(this.$refs.videoEl);
          flvPlayer.load();
          flvPlayer.play();
          this.flvPlayer = flvPlayer;
        }
      } else if (src.includes(".mp4")) {
        this.$refs.videoEl.src = src;
        this.$refs.videoEl.play();
      }
    },
    stopVideo() {
      this.$refs.videoEl.pause();
      if (this.flvPlayer) {
        this.flvPlayer.pause();
      }
    },
  },
};
</script>
<style lang="less" scoped>
</style>

标签:src,hls,M3U8,videoEl,refs,HLS,FLV,flv,flvPlayer
From: https://www.cnblogs.com/hxy--Tina/p/18160602

相关文章

  • 直播协议详解 RTMP、HLS、HTTP-FLV、WebRTC、RTSP
    直播协议详解rtmp、hls、http-flv、WebRTC、rtsp 本期我们详细讨论直播的相关协议,包括:HTTP-FLV、HLS、RTMP、Web-RTC、RTSP等等。我们将会详细介绍这些协议的工作原理、应用场景、及延迟的原因。我们按这样的顺序讨论​:RTMP、HTTP-FLVHLSWeb-RTCRTSP一、RTMP、HTTP-FLV......
  • 前端在浏览器显示摄像头传回的RTSP视频流,前端采用的技术有VUE+video.js+flv.js
    在前端使用Vue.js框架,结合video.js和flv.js播放RTSP视频流,需要经过一系列步骤,因为浏览器并不能直接播放RTSP流,所以通常需要一个服务器来将RTSP流转为HLS或FLV格式,然后前端再通过flv.js播放。以下是一个基于此思路的基本实现指南:确保你已经安装了Vue.js、video.js、flv.js相关的依......
  • C# ffmpeg m3u8 ts 视频拼接mp4
    准备拼接文件里面放的是需要拼接视频文件的路径concat_list.txt  准备代码 privatevoidCombineFile(stringfilesDir,stringtargetmp4fileName){stringbasedir=AppDomain.CurrentDomain.BaseDirectory;//ffmpeg的......
  • C# 解密m3u8 ts视频文件为mp4
    代码:try{//读取的加密视频ts文件路径byte[]encodeBuffer=File.ReadAllBytes("C:\\Users\\admin\\Downloads\\322251.ts");///A216DF0DA0082028163781ECC258BA5B代表winhex看到的字符串32734893fb097a767c9ea903936a6d8b代表m3u8文件中的iv偏移......
  • m3u8tomp4
    下载m3u8分片合并分片使用ffmpeg转为mp4文件技术使用:Bun+ffmpeg使用fetch请求.m3u8分片文件使用Bun.write保存每个分片使用Bun.file().writer创建增量写入writer:FileSink循环读取Bun.file每个分片,并通过writer.write最后,通过ffmpeg-ioutpu......
  • SRPCore GenerateHLSL解析及其扩展
    序言在之前的项目开发HDRP的时候,就觉得绑定RT的管理就像一坨屎一样难受,改了管线RT的绑定顺序,原来的Shader输出又会有问题(主要是SV_Target顺序问题),没办法只能够在管线原来的绑定上面,重新写了一份文件,让Shader的共用Pass引用,这样就能规范不同Shaderpass的输出了。但是这只是解......
  • H5播放m3u8视频
    最近用爬虫爬取视频文件的时候,遇到了m3u8文件,按照正常的直接爬取mp4文件方式来直接爬取,只爬取了一个很小文件2K左右,我就觉得很奇怪,最后打开了文件看了下:还要将一段段的ts文件爬下来才可以正常的用h5来播放。最后爬取下来了m3u8文件和对应的ts文件,这时要用h5播放了,如果直......
  • FLV 封装格式详解
    FLV封装格式详解FLV封装格式详解简介FLV格式FLVheaderFLVbodyback-pointerFLVtagFLVtagheaderFLVtagdata:audiotagFLVtagdata:videotagFLVtagdata:scripttag总结:FLV层次结构实例:flvAnalyser解析FLV文件解析FLV文件的C语言代码参考FLV封装格......
  • 最简单的 FLV 封装格式解析程序
    最简单的FLV封装格式解析程序最简单的FLV封装格式解析程序原理源程序结果下载链接参考最简单的FLV封装格式解析程序参考雷霄骅博士的文章:视音频数据处理入门:FLV封装格式解析本文中的程序是一个FLV封装格式解析程序。该程序可以从FLV中分析得到它的基本单元Ta......
  • 搭建nginx-http-flv-module直播系统
    目录一、说明二、准备三、安全四、环境配备五、开始安装六、配置nginx直播模块七、修改完毕重启Nginx......