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

React Native视频压缩问题:react-native-compressor无效求替代方案

React Native 视频压缩替代方案

如果 react-native-compressor 未达到预期压缩效果,可以试试以下几个成熟的替代包:

  • react-native-video-processing
    支持视频压缩、裁剪、转码等全流程操作,可通过自定义比特率、分辨率精准控制输出文件大小。比如设置更低的比特率或缩小分辨率,能直接降低视频体积:

    import VideoProcessing from 'react-native-video-processing';
    
    const compressVideo = async (inputPath) => {
      const outputPath = await VideoProcessing.compress(
        inputPath,
        {
          bitrate: '500000', // 设定为500kbps
          resolution: { width: 1280, height: 720 },
        }
      );
      return outputPath;
    };
    
  • react-native-ffmpeg
    基于FFmpeg的封装,功能覆盖所有视频处理场景,支持通过原生FFmpeg命令自定义压缩逻辑。比如调整CRF值(恒定速率因子,值越大压缩率越高,23-28为常用合理区间)、编码格式等:

    import { RNFFmpeg } from 'react-native-ffmpeg';
    
    const compressWithFFmpeg = async (inputPath, outputPath) => {
      // H.264编码+CRF25+音频128kbps的压缩命令
      const command = `-i ${inputPath} -c:v libx264 -crf 25 -c:a aac -b:a 128k ${outputPath}`;
      await RNFFmpeg.execute(command);
    };
    

    注意需安装对应功能的FFmpeg子包,如react-native-ffmpeg-full包含全编码库。

  • react-native-image-picker(内置压缩)
    若视频是通过文件选择器获取,可直接用这个包的内置压缩功能。配置videoQuality参数为low或medium,选择视频时就能直接拿到压缩后的文件:

    import ImagePicker from 'react-native-image-picker';
    
    const pickAndCompressVideo = () => {
      ImagePicker.launchVideoLibrary({
        videoQuality: 'low',
        mediaType: 'video',
      }, (response) => {
        if (response.uri) {
          // 处理已压缩的视频文件
        }
      });
    };
    

另外补充:之前用react-native-compressor无效,可能是未配置有效压缩参数(如未指定比特率/分辨率),或原视频已处于低码率状态。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 13:33:12