更新记录

1.0.0(2026-09-04)

  • 首次发布:Android 端 FFmpeg 视频转码
  • 支持自定义 ffmpeg 参数、实时进度回调、取消任务
  • 默认硬件 H.264(h264_mediacodec),失败自动回退 mpeg4

平台兼容性

uni-app(4.56)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
- - - - - 7.0 × ×
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
- - - - - - - - - - - -

lab-ffmpegconvert

基于 FFmpegKit 的 uni-app UTS 视频转码插件。

可通过自定义 args 将视频转换成指定分辨率、帧率和码率(也支持仅改封装、自定义编码参数等)。

自定义基座云打包后才能在真机跑通。

目录结构

lab-ffmpegconvert
├─ js/index.js                     # JS Promise 封装
├─ utssdk
│  ├─ interface.uts                # 类型定义
│  ├─ index.uts                    # 非 App 空实现
│  └─ app-android
│     ├─ config.json               # Maven 依赖 + minSdk 24
│     └─ index.uts                 # Android 实现
└─ package.json

环境要求

说明
Android minSdkVersion 24(插件与 manifest 需一致)
ABI 维护版 AAR 主要含 arm64-v8a(建议 abiFilters 仅保留该 ABI)
运行方式 自定义基座 / 云打包;标准基座无原生库会报错
网络 首次打自定义基座需能拉 Maven Central

使用示例

将本插件放入项目 uni_modules/lab-ffmpegconvert 后:

import { convertVideo, cancelConvert } from '@/uni_modules/lab-ffmpegconvert/js'

const output = await convertVideo({
  input: 'file:///storage/emulated/0/DCIM/input.mov',
  // output 不传 → 写入应用缓存 ffmpeg_output/
  // args 不传 → 默认硬件 H.264 + AAC(失败自动回退 mpeg4)
  : (p) => console.log(p.percent)
})

// cancelConvert()

ConvertOptions

字段 说明
input 本地绝对路径 / file:// / content://(Android SAF)
output 可选;空则生成到缓存目录 .mp4
args 可选;自定义 ffmpeg 参数(不含 -i 与输入输出路径)
onProgress { time, duration, percent },多次回调(插件侧 keepAlive)

常用 args 示例

目的 args
默认(插件内置) -c:v h264_mediacodec -b:v 2M -c:a aac -b:a 128k
硬件失败回退 -c:v mpeg4 -q:v 5 -c:a aac -b:a 128k
仅转封装(最快) -c copy
指定分辨率 / 帧率 / 码率 -vf scale=1280:720 -r 30 -c:v h264_mediacodec -b:v 2000k -c:a aac -b:a 128k
指定码率缩放裁剪 -vf "scale=...:force_original_aspect_ratio=increase,crop=..." -c:v h264_mediacodec -b:v 2000k -c:a aac

不要默认写 libx264:当前 full 依赖里没有该编码器。

隐私、权限声明

1. 本插件需要申请的系统权限列表:

读写存储(用于输入/输出转码视频文件)

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据,不向服务器发送数据。转码在本地完成。使用第三方 SDK:FFmpegKit(dev.ffmpegkit-maintained),仅本地处理媒体,无网络上报。

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。