vue3 使用Jessibuca播放器,实现视频流播放直播

这篇文章主要给大家介绍了关于vue3播放.flv、m3u8视频流(监控)的实现过程,包括视频流播放、视频截图、视频录制、等功能,支持国标H264/H265(FLV_EXT_ID_12标准),需要的朋友可以参考下

一、步骤介绍

1.下载插件所需的js文件 ‘decoder.js’、‘decoder.wasm’、‘jessibuca.js’、‘jessibuca.d.ts’

2.全局引入‘jessibuca.js’文件

3.创建Jessibuca.vue播放组件

4.引用组件

二、具体代码

官网地址:Jessibuca,从官网demo中下载所需要的文件

1.将下载的文件存放到vue项目的‘public’文件夹下

2.全局引用

   2.1 在项目根目录下找到index.html文件,在index.html文件中全局引用‘jessibuca.js’文件

注意:vue项目中public文件夹下的内容可以直接引用,不需要 ‘./’ 了 src="./jessibuca.js"。type="module"是问了vite打包是报错。

   2.2 jessibuca.d.ts’文件添加到typings文件夹下(typings文件夹是全局TS声明)

提示:ts项目会自动创建tsconfig.json文件,这个文件是ts 全局配置文件,只要 typings 文件夹和其中的 .d.ts 文件在 include 配置中指定的范围内,它们的类型定义就会被 TypeScript 识别并应用到项目的所有文件中。

3.创建Jessibuca.vue组件

   3.1 创建公共组件,在src/components文件夹下新建Jessibuca/index.vue文件

  3.2 Jessibuca.vue组件代码:

<template>
  <div class="w-full aspect-video">
    <div ref="playerRef"></div>
  </div>
</template>

<script setup lang="ts">
import { ref, onMounted, onBeforeUnmount } from "vue";

const playerRef = ref<HTMLDivElement>();

// jessibuca player
const jessibucaPlayer = ref<Jessibuca>();

interface Props {
  /** 播放地址 */
  wsFlv?: string;
  wssFlv?: string;
  config: Partial<Jessibuca.Config>;
}

const props = withDefaults(defineProps<Props>(), {});

// 创建播放器
const createJessibucaPlayer = () => {
  jessibucaPlayer.value = new Jessibuca({
    container: playerRef.value!,
    ...props.config
  });
  jessibucaPlayer.value.play(props.wsFlv);
};

onMounted(() => {
  createJessibucaPlayer();
});

// 组件销毁前销毁播放器并停止视频流
onBeforeUnmount(() => {
  if (jessibucaPlayer.value) {
    jessibucaPlayer.value.destroy();
    jessibucaPlayer.value = null as unknown as undefined;
  }
});
</script>

<style scoped lang="scss"></style>

4.组件引用

   4.1 html部分

<!-- 视频流播放区 -->
<div class="videoBox-play">
      <JessibucaPlayer
        style="width: 100%; height: 230px"
        v-if="flvUrl1"
        :ws-flv="flvUrl1"
        :config="jessibucaPlayerConfig"
        />
</div>

   4.2 ts部分

<script setup lang="ts">
import { ref } from "vue"
import JessibucaPlayer from "@/components/JessibucaPlayer/index.vue";

// 存储视频流地址(这里是你自己的视频流地址)
const flvUrl1 = ref<any>("http://xxx.xxx.x.xxx:xxxx/xxx/xxxxx.flv");

// 播放器组件配置
const jessibucaPlayerConfig: Partial<Jessibuca.Config> = {
  isFlv: true,  // 是否使用flv格式
  showBandwidth: true, // 是否显示带宽使用情况
  operateBtns: { // 配置按钮对象
    screenshot: true, // 是否启用截图功能
    fullscreen: true, // 是否启用全屏功能
    play: true, // 是否启用播放功能
    audio: true, // 是否启用音频功能
    record: true // 是否启用录制功能
  },
  loadingText: "加载中..."  // 设置播放器加载时显示的文本
}; 
</script>

完整代码:

<template>
  <!-- 视频流播放区 -->
  <div class="videoBox-play">
      <JessibucaPlayer
        style="width: 100%; height: 230px"
         v-if="flvUrl1"
         :ws-flv="flvUrl1"
         :config="jessibucaPlayerConfig"
       />
  </div>
</template>

<script setup lang="ts">
import { ref } from "vue"
import JessibucaPlayer from "@/components/JessibucaPlayer/index.vue";

// 存储视频流地址(这里是你自己的视频流地址)
const flvUrl1 = ref<any>("http://xxx.xxx.x.xxx:xxxx/xxx/xxxxx.flv");

// 播放器组件配置
const jessibucaPlayerConfig: Partial<Jessibuca.Config> = {
  isFlv: true,  // 是否使用flv格式
  showBandwidth: true, // 是否显示带宽使用情况
  operateBtns: { // 配置按钮对象
    screenshot: true, // 是否启用截图功能
    fullscreen: true, // 是否启用全屏功能
    play: true, // 是否启用播放功能
    audio: true, // 是否启用音频功能
    record: true // 是否启用录制功能
  },
  loadingText: "加载中..."  // 设置播放器加载时显示的文本
}; 
</script>

效果展示:

授权方式: 共享软件 界面语言: 简体中文 文件大小: 34.8 MB 更新时间: 2020-07-30 资源类型: 国产软件 推荐等级: ★★★☆☆ 平台环境: C/C++/ JavaScript 作者主页: 点击查看 演示地址: 点击查看 详细介绍 – [ Jessibuca H5直播播放器 v1.0 ] Jessibuca 是一款开源的纯H5直播播放器,通过Emscripten将音视频解码库编译成Js(ams.js/wasm)运行于浏览器之中。兼容几乎所有浏览器,可以运行在PC、手机、微信中,无需额外安装插件。 Jessibuca功能 1、支持解码H.264视频(Baseline, Main, High Profile全支持,支持解码B帧视频) 2、支持解码H.265视频(flv id == 12) 3、支持解码AAC音频(LC,HE,HEv2 Profile全支持) 4、支持解码MP3音频以及Speex音频格式 5、可设置播放缓冲区时长,可设置0缓冲极限低延迟(网络抖动会造成卡顿现象) 6、支持智能不花屏丢帧,长时间播放绝不累积延迟。 7、可创建多个播放实例 8、程序精简,经CDN加速,GZIP压缩(实际下载500k),加载速度更快 9、同时支持http-flv和websocket-flv协议以及websocket-raw私有协议(裸数据,传输量更小,需要搭配Monibuca服务器) 注:以http-flv请求时,存在跨域请求的问题,需要设置access-control-allow-origin, websocket-flv默认不存在此问题 10、支持HTTPS/WSS加密视频传输,保证视频内容传输安全 11、手机浏览器内打开视频不会变成全屏播放 Jessibuca目录结构 obj 存放emscripten编译好的各种解码库的字节码库 public 存放编译输出的js和wasm文件以及renderer.js thirdparty 各种第三方解码库的代码(已修改)和编译脚本 Jessibuca截图 相关阅读 同类推荐: 站长常用源码
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值