【vue】ffmpeg实现web在线转码播放:

文章目录

        • 一、效果:
        • 二、文档:
        • 三、实现:
            • 【1】安装ffmpeg
            • 【2】引入并初始化
            • 【3】案例:


一、效果:

image.png
image.png

二、文档:

ffmpeg
HTML: HyperText Markup Language | MDN
纯前端使用ffmpeg实现视频压缩_js实现前端视频压缩-CSDN博客
Js使用ffmpeg进行视频剪辑和画面截取_vue项目 ffmpeg截取视频片段-CSDN博客
ffmpeg实现web在线转码播放
vue2+vite利用ffmpeg实现纯前端视频剪切
ffmpeg 使用javascript 实现录屏demo

三、实现:
【1】安装ffmpeg
yarn add @ffmpeg/ffmpeg @ffmpeg/core  
【2】引入并初始化

需要在配置文件中设置请求头,否则会报跨域错误
image.png
image.png

headers: {"Access-Control-Allow-Origin": "*","Cross-Origin-Opener-Policy": "same-origin","Cross-Origin-Embedder-Policy": "require-corp",
},

image.png

【3】案例:
<template><!-- tempalte部分 --><h3>视频前端压缩</h3><video id="output-video" controls :src="vedioSrc"></video><br/><input type="file" id="uploader" @change="initFfmpeg"><h5 id="message">{{ message }}</h5>
</template><script>
import { createFFmpeg, fetchFile } from "@ffmpeg/ffmpeg";export default {data() {return {message: null,vedioSrc: '',};},methods: {//初始化initFfmpeg() {let file = document.querySelector("#uploader").files[0];const ffmpeg = createFFmpeg({corePath: "ffmpeg-core.js",//public下面的ffmpeg-core.jslog: true,});//设置进度条ffmpeg.setProgress(({ ratio }) => {this.percentage = Math.floor(ratio * 100);});//开始压缩const transcode = async (file) => {const { name } = file;this.message = "Loading ffmpeg-core.js";await ffmpeg.load();ffmpeg.FS("writeFile", name, await fetchFile(file));this.message = "Start transcoding";// '-b','2000000'  值越小  压缩率越大await ffmpeg.run("-i", name, "-b", "700000", "output.mp4");this.message = "压缩完成";const data = ffmpeg.FS("readFile", "output.mp4");this.fileBytes = data.byteLength;//把压缩后的视频进行回显this.vedioSrc = URL.createObjectURL(new Blob([data.buffer], { type: "video/mp4" }));};transcode(file);},},
};
</script>

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

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

相关文章

项目经验简单总结

引擎 unity 2020 语言 C# lua python(用于工具链) java (用于SDK对接) js&#xff08;PC WEB SDK对接&#xff09; 编辑器 VS VSCODE IDEA eclipse 项目开发模块规划分 主项目工程&#xff0c;UI资源项目工程&#xff0c;模型场景资源项目工程 主项目工程&#xff1a;所有的…

STM32F407-14.3.10-表73具有有断路功能的互补通道OCx和OCxN的输出控制位-00x10

如上表所示&#xff0c;MOE0&#xff0c;OSSI0&#xff0c;CCxE1&#xff0c;CCxNE0时&#xff0c;OCx与OCxN的输出状态取决于GPIO端口上下拉状态。 ---------------------------------------------------------------------------------------------------------------------…

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK获取相机当前数据吞吐量(C++)

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK里函数来获取相机当前数据吞吐量&#xff08;C&#xff09; Baumer工业相机Baumer工业相机的数据吞吐量的技术背景CameraExplorer如何查看相机吞吐量信息在NEOAPI SDK里通过函数获取相机接口吞吐量 Baumer工业相机通过NEOAPI SDK获…

分布式【雪花算法】

雪花算法 背景&#xff1a;在分布式系统中&#xff0c;需要使用全局唯一ID&#xff0c;期待ID能够按照时间有序生成。 **原理&#xff1a;**雪花算法是 64 位 的二进制&#xff0c;一共包含了四部分&#xff1a; 1位是符号位&#xff0c;也就是最高位&#xff0c;始终是0&am…

Android Studio实现课表

本文章主要展示课表的实现&#xff0c;里面包含很多控件的用法&#xff0c;比如吐司Toast、通知Notification、ListView&#xff0c;数值选择器NumberPicker&#xff0c;SeekBar同editText的关联。抽屉导航栏 还有一些其他的功能&#xff0c;比如InputFilter自定义的字符过滤器…

苹果Mac电脑甘特图管 EasyGantt最新 for mac

EasyGantt提供直观的界面&#xff0c;让用户能够轻松创建具有时间轴视图的甘特图。你可以添加并排列任务、设置任务的开始和结束日期、调整任务之间的依赖关系等。 任务管理&#xff1a;软件允许你添加、编辑和删除任务&#xff0c;设定任务的优先级和状态&#xff0c;并为每个…

CSS2_基础学习

CSS2_基础学习 一、css基础知识二、css选择器2.0 选择器的优先级2.1 CSS基本选择器2.2 复合选择器2.2.1. 交集选择器2.2.2. 并集选择器2.2.3. 后代选择器&#xff08;加空格&#xff09;2.2.4. 子代选择器2.2.5. 兄弟选择器2.2.6. 属性选择器2.2.7. 伪类选择器2.2.8. 伪元素选择…

uni-app 前后端调用实例 基于Springboot 下拉刷新实现

锋哥原创的uni-app视频教程&#xff1a; 2023版uniapp从入门到上天视频教程(Java后端无废话版)&#xff0c;火爆更新中..._哔哩哔哩_bilibili2023版uniapp从入门到上天视频教程(Java后端无废话版)&#xff0c;火爆更新中...共计23条视频&#xff0c;包括&#xff1a;第1讲 uni…

Nexus私服简介及搭建(Linux3.62版本)

文章目录 一、Nexus的安装1、运行程序2、查看运行日志和初始密码3、启动配置文件的修改 二、Nexus的使用1、Nexus使用流程说明2、库类型说明2.1、maven-public库配置说明2.2、maven-central库配置说明 3、用户本地配置使用maven-public库3.1、禁用了匿名访问&#xff0c;额外需…

LeetCode二叉树路径和专题:最大路径和与路径总和计数的策略

目录 437. 路径总和 III 深度优先遍历 前缀和优化 124. 二叉树中的最大路径和 437. 路径总和 III 给定一个二叉树的根节点 root &#xff0c;和一个整数 targetSum &#xff0c;求该二叉树里节点值之和等于 targetSum 的 路径 的数目。 路径 不需要从根节点开始&#xf…

arkts状态管理使用(@State、@Prop、@Link、@Provide、@Consume、@objectLink和@observed)

一、状态管理 1.在声明式UI中&#xff0c;是以状态驱动视图更新&#xff1a; ①状态&#xff08;State&#xff09;:指驱动视图更新的数据&#xff08;被装饰器标记的变量&#xff09; ②视图&#xff08;View&#xff09;:基于UI描述渲染得到用户界面 注意&#xff1a; ①…

【VB测绘程序设计】案例6——华氏温度与摄氏温度之间的转换程序(附源代码)

【VB测绘程序设计】案例6——华氏温度与摄氏温度之间的转换程序(附源代码) 文章目录 前言一、界面显示二、程序说明三、程序代码1程序变换2程序变换四、数据演示总结前言 本文主要掌握Val()函数以及String数据类型的应用,通过2个text来输入数据,2个Command控件来执行转换…