更新记录
1.0.0(2024-10-31)
首次发布
平台兼容性
App |
快应用 |
微信小程序 |
支付宝小程序 |
百度小程序 |
字节小程序 |
QQ小程序 |
Android:4.4,iOS:9,HarmonyNext:不支持 |
× |
× |
× |
× |
× |
× |
钉钉小程序 |
快手小程序 |
飞书小程序 |
京东小程序 |
× |
× |
× |
× |
H5-Safari |
Android Browser |
微信浏览器(Android) |
QQ浏览器(Android) |
Chrome |
IE |
Edge |
Firefox |
PC-Safari |
× |
× |
× |
× |
× |
× |
× |
× |
× |
FFmpeg UTS音视频媒体处理插件
引用插件
-
uniapp x 中使用,导入插件
import * as FFmpeg from '../../uni_modules/Html5App-FFmpeg';
import {FFmpegOptions} from '../../uni_modules/Html5App-FFmpeg';
-
uniapp 中使用导入插件,去掉FFmpegOptions 参数
import * as FFmpeg from '../../uni_modules/Html5App-FFmpeg';
方法名称 |
说明 |
getResourcePath |
把相对路径转换成绝对路径 |
startCommand |
音视频FFmpeg 处理方法 |
getListSessions |
获取所有任务记录 |
getFFprobeMediaInfo |
获取媒体信息 |
FFprobeCommand |
音视频获取媒体信息指令处理方法 |
cancelAll |
取消所有任务 |
cancelSessionId |
根据任务sessionId取消某一个任务 |
startCommand 指令执行方法
let inputPath=FFmpeg.getResourcePath("static/33.mp4"); //原视频路径
let outPath=FFmpeg.getResourcePath("static/3.mp4"); //处理后输出新的视频路径
let command = "-i "+inputPath+"-r 30 -y" +outPath;
FFmpeg.startCommand({command:command,
completeCallback:(json) =>
{
console.log("完成回调:"+JSON.stringify(json));
},
statisticsCallback: (json) => {
console.log("信息统计回调:"+JSON.stringify(json));
},
logCallback: (json) => {
console.log("执行日志回调:"+JSON.stringify(json));
},
taskCallback: (json) => {
console.log("任务开始回调:"+JSON.stringify(json));
}
} as FFmpegOptions);
getListSessions 获取所有任务记录
FFmpeg.cancelSessionId({
sessionId:0, //任务Id
success: (e) => {
console.log("取消回调:"+JSON.stringify(e));
}
}as FFmpegOptions);
getFFprobeMediaInfo 通过音视频绝对路径获取媒体信息详情
let filePath =FFmpeg.getResourcePath("static/33.mp4");
FFmpeg.getFFprobeMediaInfo({
filePath:filePath,
timeout:5000, //超时5000ms
completeCallback:(e) => {
console.log("完成回调:"+JSON.stringify(e));
},
logCallback: (e) => {
console.log("日志回调:"+JSON.stringify(e));
}
}as FFmpegOptions);
FFprobeCommand 通过指令的方式获取音视频媒体信息详情
let path=FFmpeg.getResourcePath("static/33.mp4");
let command="-i "+path+" -hide_banner";
FFmpeg.FFprobeCommand({
command:command,
completeCallback:(e) => {
console.log("完成回调:"+JSON.stringify(e));
},
logCallback: (e) => {
console.log("日志回调:"+JSON.stringify(e));
}
}as FFmpegOptions);
cancelAll 取消全部任务
FFmpeg.cancelAll({
success: (e) => {
console.log("取消回调:"+JSON.stringify(e));
}
}as FFmpegOptions);
cancelSessionId 根据任务sessionId 来取消某一个任务
FFmpeg.cancelSessionId({
sessionId:0,
success: (e) => {
console.log("取消回调:"+JSON.stringify(e));
}
}as FFmpegOptions);