更新记录
1.0.0(2026-09-11)
1.0.0(2026-09-11)
- 初始版本:基于 FFmpegKit 的 Android 视频转码插件
- 支持自定义 ffmpeg 参数、实时进度回调、任务取消
平台兼容性
uni-app(4.83)
| Vue2 |
Vue3 |
Chrome |
Safari |
app-vue |
app-nvue |
Android |
iOS |
鸿蒙 |
| √ |
√ |
× |
× |
√ |
- |
7.0 |
× |
× |
| 微信小程序 |
支付宝小程序 |
抖音小程序 |
百度小程序 |
快手小程序 |
京东小程序 |
鸿蒙元服务 |
QQ小程序 |
飞书小程序 |
小红书小程序 |
快应用-华为 |
快应用-联盟 |
| - |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
- |
lab-ffmpeg-convert
基于 FFmpegKit 的 uni-app UTS 转码插件。需自定义基座 / 云打包。
目录结构
lab-ffmpeg-convert
├─ 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 |
| ABI |
主要为 arm64-v8a |
| 运行方式 |
自定义基座 / 云打包 |
方法
| 方法 |
说明 |
convertVideo(options) |
转码(视频 / 音频都走这个;用 args 区分) |
cancelConvert() |
取消当前转码 |
options 参数
| 字段 |
必填 |
说明 |
input |
是 |
输入路径:绝对路径 / file:// / content:// |
output |
否 |
输出路径;不传则写入缓存目录,默认扩展名 .mp4 |
args |
否 |
ffmpeg 参数串,不含 -i 与输入输出路径 |
onProgress |
否 |
进度回调 { time, duration, percent }(percent 无法计算时为 -1) |
import { convertVideo, cancelConvert } from '@/uni_modules/lab-ffmpeg-convert/js'
转码视频
不传 args 时默认硬件 H.264 + AAC;失败自动回退 mpeg4。
const path = await convertVideo({
input: 'file:///.../input.mov',
// output: '/storage/.../out.mp4', // 可选
// args: '-c:v h264_mediacodec -b:v 2M -c:a aac -b:a 128k',
: (p) => console.log(p.percent)
})
视频常用 args
| 参数 |
含义 |
-c:v h264_mediacodec |
视频编码器(Android 硬件 H.264) |
-b:v 2M |
视频码率 |
-c:a aac |
音频编码器 |
-b:a 128k |
音频码率 |
-c copy |
只转封装,不重编码(最快) |
-c:v mpeg4 -q:v 5 |
软件回退编码(硬件失败时插件会自动用) |
完整默认:-c:v h264_mediacodec -b:v 2M -c:a aac -b:a 128k。不要写 libx264(当前 full 包没有)。
转码音频
仍调用 convertVideo,传音频 args,并指定 .mp3 输出路径:
const path = await convertVideo({
input: 'file:///.../input.m4a',
output: '/storage/.../out.mp3',
args: '-vn -c:a libmp3lame -b:a 192k -ar 44100 -ac 2'
})
音频常用 args
| 参数 |
含义 |
-vn |
去掉视频轨(只保留音频) |
-c:a libmp3lame |
MP3 编码器(优先) |
-c:a libshine |
MP3 备用编码器(无 lame 时用) |
-b:a 192k |
音频码率 |
-ar 44100 |
采样率 |
-ac 2 |
声道数(立体声) |
推荐:-vn -c:a libmp3lame -b:a 192k -ar 44100 -ac 2;失败可改 libshine。