更新记录
1.0.1(2026-07-22)
-Android 鸿蒙 IOS 三端ffmpeg
1.0.0(2026-07-22)
-Android 鸿蒙 IOS 三端ffmpeg
平台兼容性
uni-app(4.18)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| √ | √ | × | × | √ | √ | 5.0 | √ | 4.18 |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| × | × | × | × | × | × | × | × | - | - | - | - |
其他
| 多语言 | 暗黑模式 | 宽屏模式 |
|---|---|---|
| √ | × | √ |
👉 下载体验
ly028-FFMpeg
基于 FFmpeg 的全功能视频音频处理 UTS 插件(Android / iOS / HarmonyOS)
少配置、分层清晰:日常能力最少参数即可成功;进阶与命令留给需要精细控制的场景。
安装
在 HBuilderX 中导入插件,或放置到 uni_modules/ly028-FFMpeg/。
快速开始(推荐)
import {
compressVideoAsync,
cancelJob,
getMediaInfoAsync
} from '@/uni_modules/ly028-FFMpeg'
// 压缩:只需路径 + 可选档位
const jobId = compressVideoAsync({
inputPath: '/path/to/input.mp4',
outputPath: '/path/to/output.mp4',
quality: 'medium', // low | medium | high → CRF
resolution: '720p' // 360p | 480p | 720p | 1080p | 1280x720
}, (pct) => {
console.log('进度:', pct + '%') // "0"…"100"
}, (json) => {
const result = JSON.parse(json)
if (result.code === 0) {
console.log('完成', result.data)
} else {
console.log('失败', result.msg) // 已 i18n,可直接 toast
}
})
// 取消(任意任务类型)
cancelJob(jobId)
API 分层
日常(优先用这些)
| API | 说明 |
|---|---|
getMediaInfoAsync |
媒体信息 |
extractThumbnailAsync |
截帧(可 outputPath 写文件,否则 base64) |
compressVideoAsync |
视频压缩主入口(quality / resolution) |
trimMediaAsync |
时间裁剪 |
extractAudioAsync |
提取音频(扩展名决定默认 codec) |
mergeAVAsync |
合并音视频 |
convertFormatAsync |
格式转换(由 outputPath 扩展名决定) |
addWatermarkAsync |
水印(文字) |
pipAsync |
画中画 |
concatAsync |
拼接(推荐 inputs: string[]) |
stabilizeAsync |
防抖稳定 |
语义(人话参数,无需写滤镜字符串)
| API | 说明 |
|---|---|
rotateVideoAsync |
{ degrees: 90\|180\|270 } |
cropVideoAsync |
{ x, y, width, height } |
setSpeedAsync |
{ speed: 0.5~2.0 } |
adjustVolumeAsync |
{ volume: number } |
exportGifAsync |
{ fps?, width? } |
控制
| API | 说明 |
|---|---|
cancelJob / cancelTranscode |
取消单个任务(旧名兼容) |
cancelAllTasks |
取消全部 |
getActiveJobs |
活跃任务列表 |
getHWAccelsAsync |
硬件加速能力 |
setLocale / getLocale |
zh-Hans | en |
高级(最后手段)
| API | 说明 |
|---|---|
startTranscodeAsync |
自定义转码(codec / crf / 裁剪等) |
filterProcessAsync |
原始 videoFilter / audioFilter |
executeCommandAsync |
原始 FFmpeg 命令 |
executeFFprobeAsync |
原始 FFprobe |
语义 API 示例
import { rotateVideoAsync, adjustVolumeAsync, exportGifAsync } from '@/uni_modules/ly028-FFMpeg'
rotateVideoAsync({
inputPath, outputPath, degrees: 90
}, , onComplete)
adjustVolumeAsync({
inputPath, outputPath, volume: 1.5
}, , onComplete)
exportGifAsync({
inputPath, outputPath, fps: 10, width: 320
}, , onComplete)
拼接(推荐 inputs)
concatAsync({
inputs: ['/a.mp4', '/b.mp4'],
outputPath: '/out.mp4'
}, , onComplete)
仍支持旧写法:{ inputPath: concatListFile, outputPath }。
统一响应信封 FFmpegResult
| 字段 | 类型 | 说明 |
|---|---|---|
| code | number | 0=成功, 1=错误 |
| subCode | number | 400|404|422|500|501|502|503 |
| msg | string | i18n 后的可读消息 |
| data | string | 业务 JSON(成功时) |
进度回调:onProgress 收到 "0"–"100" 字符串。
Demo 说明
测试页底栏:基础 | 进阶 | 命令。基础只露日常能力;进阶含编码器条与滤镜类;命令为原始 CLI。
平台
| 特性 | Android | iOS | HarmonyOS |
|---|---|---|---|
| 硬件加速 | MediaCodec | VideoToolbox | OHCodec |
| 最小 API | 21 | 12.0 | API 9 |
许可
本插件遵循 LGPL/GPL。FFmpeg 为 LGPL/GPL 开源项目。
👉 下载体验

收藏人数:
购买源码授权版(
试用
使用 HBuilderX 导入示例项目
赞赏(0)

下载 924
赞赏 0
下载 12448026
赞赏 1935
赞赏
京公网安备:11010802035340号