vue 使用ffmpeg上传视频前压缩视频,压缩后在上传到服务器

这篇具有很好参考价值的文章主要介绍了vue 使用ffmpeg上传视频前压缩视频,压缩后在上传到服务器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1,使用ffmpeg:npm install @ffmpeg/ffmpeg @ffmpeg/core -S
2,vue 引入ffmpeg

import { createFFmpeg, fetchFile } from '@ffmpeg/ffmpeg';

3,需要配置vue.config.js,否则会报错

vue 使用ffmpeg上传视频前压缩视频,压缩后在上传到服务器

const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
  transpileDependencies: true,
  devServer: {
    headers: {
        "Cross-Origin-Opener-Policy": "same-origin",
        "Cross-Origin-Embedder-Policy": "require-corp",
      },
  }
})

完整代码:文章来源地址https://www.toymoban.com/news/detail-506194.html

<template>
  <div class="home">
    <h2>视频前端压缩</h2>
    <video id="video" controls></video><br />
    <input type="file" id="upload" @change="upload">
    <p id="text">{{ msg }}</p>
  </div>
</template>

<script>
// @ is an alias to /src
import { createFFmpeg, fetchFile } from '@ffmpeg/ffmpeg';
export default {
  name: 'HomeView',
  components: {
  },
  data() {
    return {
      msg: null
    }
  },
  methods: {
    async upload(e) {
      var _this = this;
      const ffmpeg = createFFmpeg({
        log: true,
        progress: ({ ratio }) => {
          _this.msg = `完成率: ${(ratio * 100.0).toFixed(2)}%`;
        },
      });
      var { name } = e.target.files[0];

      this.msg = '正在加载 ffmpeg-core.js'
      await ffmpeg.load();
      this.msg = "开始压缩"
      ffmpeg.FS('writeFile', name, await fetchFile(e.target.files[0]));
      await ffmpeg.run('-i', name, '-b', '2000000', 'put.mp4');
      this.msg = '压缩完成'
      const data = ffmpeg.FS('readFile', 'put.mp4');
      const video = document.getElementById('video');
      video.src = URL.createObjectURL(new Blob([data.buffer], {
        type: 'video/mp4'
      }));
    }
  }
}
</script>

到了这里,关于vue 使用ffmpeg上传视频前压缩视频,压缩后在上传到服务器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue2+wangEditor5富文本编辑器(图片视频自定义上传七牛云/服务器)

    1、安装使用 安装 在main.js中引入样式 在使用编辑器的页面引入js 模板 js  到这一步编辑器就可以正常显示了 2、上传图片、视频 上传到后台接口的可直接按照文档这个配置就行接口返回格式也要可文档上一致    2)自定义上传(一般上传到别的服务器上,我这边是上传到七

    2024年02月11日
    浏览(67)
  • 纯前端使用ffmpeg实现视频压缩

    实现需求 用户上传视频并压缩,并且可以选择压缩程度,搜索遍各大网站,最终选择了ffmpeg进行操作。本文包含具体如何实现加上过程中遇到的各种坑 ffmpeg视频压缩代码使用很简单,上代码 html部分  js部分 这个ffmpeg大神处理好的cdn我也是找了好久才找到,之前找的各种版本

    2024年02月04日
    浏览(46)
  • vue3 - element-plus 上传各种 word pdf 文件、图片视频并上传到服务器功能效果,示例代码开箱即用。

    在 vue3 项目中,使用 element plus 组件库的 el-upload 上传组件,进行文件、图片图像的上传功能示例。 可直接复制,再改个接口地址。 在这里上传

    2024年02月15日
    浏览(76)
  • 使用ffmpeg修改视频分辨率同时压缩视频的质量

    调整视频的质量和码率可以使用FFmpeg中的编码选项。以下是一些常用的选项: 1 质量选项 :使用 -q:v 参数设置视频的质量等级。质量等级的范围是 0-51,其中 0 表示无损压缩,51 表示最低质量。质量等级越低,视频的文件大小就越小,但是视频的质量也会降低。 2 码率选项

    2024年02月10日
    浏览(42)
  • FFMPEG视频压缩与Python使用方法

    FFMPEG  是一个完整的,跨平台的解决方案,记录,转换和流音频和视频。 官网:https://ffmpeg.org/ 1、Linux: 2、Mac: 3、Windows:  下载文件:  解压缩:  配置环境变量:   出现上图所示response即可说明成功安装。 1、指定视频压缩大小: -fs 10 : 表示文件大小最大值为 100MB 2、设置

    2024年02月07日
    浏览(46)
  • thinkphp5实现ajax图片上传,压缩保存到服务器

    thinkphp压缩图片插件官方地址 使用Composer安装ThinkPHP5的图像处理类库: composer require topthink/think-image 另外一种方法,传递base64图片,提交图片数据的字符串

    2024年02月07日
    浏览(49)
  • iOS 将文件压缩成zip包再上传至服务器

    运用ssziparchive 来完成zip 压缩。 按钮点击出现文件选择: 注意:所有的文件都需要授权 不然会访问不到文件内容

    2024年02月13日
    浏览(41)
  • Android 使用FFmpeg3.3.9基于命令实现视频压缩

    前言 首先利用linux平台编译ffmpeg的so库,具体详情请查看文章:Android NDK(ndk-r16b)交叉编译FFmpeg(3.3.9)_jszlittlecat_720的博客-CSDN博客    点击Create JNI function for compressVideo 自动打开native-lib.cpp并创建完成Java_com_suoer_ndk_ffmpegtestapplication_VideoCompress_compressVideo 方法  在此方法下实现压缩

    2024年02月02日
    浏览(51)
  • vue2使用 tinymce富文本编辑器-图片上传、粘贴图片上传致服务器

    1.安装tinymce富文本编辑器插件 npm i tinymce npm i @tinymce/tinymce-vue 2.创建Editor.js文件 封装组件 以便使用 3.汉化包 (我放在public/tynymce/langs文件夹里) 4.vue组件中使用 本次记录重点在于 上传图片方法 需要区分工具栏中图片上传方法 以及 粘贴进去的图片也需要走上传方法。两个方

    2024年02月09日
    浏览(64)
  • 使用nginx和ffmpeg搭建HTTP FLV流媒体服务器(摄像头RTSP视频流->RTMP->http-flv)

    名词解释   RTSP (Real-Time Streaming Protocol) 是一种网络协议,用于控制实时流媒体的传输。它是一种应用层协议,通常用于在客户端和流媒体服务器之间建立和控制媒体流的传输。RTSP允许客户端向服务器发送请求,如播放、暂停、停止、前进、后退等,以控制媒体流的播放和

    2024年02月16日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包