You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cordova应用大视频上传慢求有效视频压缩插件

解决Cordova大视频上传前的压缩问题

我之前做Cordova项目时也碰到过大视频上传耗时太长的痛点,给你分享几个亲测能用的视频压缩插件,顺便帮你排查下之前插件失效的可能原因:

推荐的Cordova视频压缩插件

1. cordova-plugin-video-compress

这个是专门针对视频压缩的轻量插件,支持iOS和Android,用法简单,压缩速度也不错。

  • 安装命令:
    cordova plugin add cordova-plugin-video-compress
    
  • 基础用法示例:
    document.addEventListener("deviceready", function() {
      const inputPath = "/storage/emulated/0/DCIM/Camera/video.mp4"; // 原视频路径
      const outputPath = "/storage/emulated/0/Compressed/video_compressed.mp4"; // 压缩后路径
    
      window.VideoCompress.compressVideo(
        inputPath,
        outputPath,
        function(result) {
          console.log("压缩完成,路径:", result.path);
          // 这里可以调用你的AJAX上传逻辑
        },
        function(error) {
          console.error("压缩失败:", error);
        },
        {
          quality: 50, // 压缩质量(0-100)
          width: 1280, // 目标分辨率宽度
          height: 720 // 目标分辨率高度
        }
      );
    }, false);
    

2. cordova-plugin-media-compressor

这个插件支持视频和图片的压缩,功能更全面,还能自定义比特率、帧率等参数,适配性更强。

  • 安装命令:
    cordova plugin add cordova-plugin-media-compressor
    
  • 视频压缩示例:
    document.addEventListener("deviceready", function() {
      const compressor = window.MediaCompressor;
      const options = {
        sourceUri: inputPath,
        destinationUri: outputPath,
        videoBitrate: 500000, // 视频比特率(单位:bps)
        videoFrameRate: 24, // 帧率
        videoWidth: 1280,
        videoHeight: 720
      };
    
      compressor.compress(options)
        .then(result => {
          console.log("压缩成功:", result.destinationUri);
        })
        .catch(error => {
          console.error("压缩出错:", error);
        });
    }, false);
    

3. cordova-plugin-ffmpeg(进阶选择)

如果你需要更精细化的压缩控制,可以用这个集成FFmpeg的插件,能通过FFmpeg命令实现各种复杂的视频处理,但需要你对FFmpeg命令有一定了解。

  • 安装命令:
    cordova plugin add cordova-plugin-ffmpeg
    
  • 压缩示例(调整分辨率和比特率):
    document.addEventListener("deviceready", function() {
      const ffmpegCommand = `-i ${inputPath} -s 1280x720 -b:v 500k ${outputPath}`;
      window.cordova.plugins.ffmpeg.execute(
        ffmpegCommand,
        function() {
          console.log("FFmpeg压缩完成");
        },
        function(error) {
          console.error("FFmpeg执行失败:", error);
        }
      );
    }, false);
    

排查之前插件失效的可能原因

你之前用的插件没生效,不妨检查这几点:

  • 确认插件是否正确安装:执行cordova plugin list查看插件是否在列表中,若没有重新安装
  • 确保在deviceready事件触发后再调用插件方法,Cordova插件必须在设备就绪后才能使用
  • 检查权限:Android需要WRITE_EXTERNAL_STORAGE、READ_EXTERNAL_STORAGE权限,iOS需要相册访问权限,确认配置文件里已添加
  • 平台兼容性:有些插件对特定系统版本有要求,比如iOS 13+或Android 6+,确认你的测试设备系统版本符合要求

内容的提问来源于stack exchange,提问作者Prashant

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:58:34