更新记录
1.0.7(2023-12-25)
- 修复Android cancelWithSessionId接口大数据时数据类型不兼容问题
1.0.6(2023-09-20)
- Android的ffmpeg版本升级到6.0
1.0.5(2023-08-02)
- 更新iOS target 版本
平台兼容性
Vue2 | Vue3 |
---|---|
√ | √ |
App | 快应用 | 微信小程序 | 支付宝小程序 | 百度小程序 | 字节小程序 | QQ小程序 |
---|---|---|---|---|---|---|
HBuilderX 3.6.8,Android:7.0,iOS:12,HarmonyNext:不确定 | × | × | × | × | × | × |
钉钉小程序 | 快手小程序 | 飞书小程序 | 京东小程序 |
---|---|---|---|
× | × | × | × |
H5-Safari | Android Browser | 微信浏览器(Android) | QQ浏览器(Android) | Chrome | IE | Edge | Firefox | PC-Safari |
---|---|---|---|---|---|---|---|---|
× | × | × | × | × | × | × | × | × |
wrs-uts-ffmpeg
目前Android最低支持Android 7.0(24),ios 12.1,如需支持更低版本请联系作者
uniapp对应的最低版本配置打开manifest.json源码视图: 具体节点参考demo或官网文档:
// android最低版本
"minSdkVersion" : 24
// ios最低版本
"deploymentTarget" : "12.1",
集成步骤
- 集成插件步骤请参考https://www.cnblogs.com/wenrisheng/p/18323027
- 修改uni_modules/wrs-uts-ffmpeg/utssdk/app-ios/config.json文件,将deploymentTarget的12改成12.1
开发文档
import {
UTSFFmpeg,
UTSFFprobe
} from "@/uni_modules/wrs-uts-ffmpeg";
执行FFMpeg命令
let cmd = "-version";
UTSFFmpeg.executeAsync(cmd, (resp) => {
// 命令执行完回调
let state = resp.state;
this.showMsg("执行状态:" + state);
console.log("执行状态:" + state);
}, (resp) => {
// 命令日志回调
this.showMsg(JSON.stringify(resp.message));
console.log("logCallback:" + JSON.stringify(resp));
}, (resp) => {
// 命令统计回调
console.log("statisticsCallback:" + JSON.stringify(resp));
});
-
cmd ffmpeg命令,不需要ffmpeg开头,截取ffmpeg后面的命令参数即可,如: ffmpeg -v 查询版本,cmd值为-v ffmpeg -i https://sss/video.m3u8 /sdcard/test.mp4 将m3u8转为mp4,cmd值为-i https://sss/video.m3u8 /sdcard/test.mp4
-
completeCallback 命令执行完的回调
-
logCallback 命令执行期间的日志回调
-
statisticsCallback 统计回调
取消所有FFMpeg命令
UTSFFmpeg.cancel();
取消某个FFMpeg命令
let sessionId = 10000;
UTSFFmpeg.cancelWithSessionId(sessionId);
执行FFprobe命令
let cmd = "-i -i /sdcard/test.mp4";
let completeCallback = (resp)=>{};
let logCallback = (resp)=>{};
UTSFFprobe.executeAsync(cmd, completeCallback, logCallback);
-
cmd FFprobe命令,不需要FFprobe开头,截取FFprobe后面的命令参数即可,如: ffprobe -i /sdcard/test.mp4 查询mp4视频信息,cmd值为-i /sdcard/test.mp4
-
completeCallback 命令执行完的回调
-
logCallback 命令执行期间的日志回调
ffprobe API接口查看视频信息
var absPath = plus.io.convertLocalFileSystemURL("_www");
// Android获取的absPath以/结尾,iOS获取的absPath不是/结尾
if (absPath.endWith('/')) {
absPath = absPath.substring(0, absPath.length - 1);
}
let filePath = absPath + "/static/test.mp4"
let completeCallback = (resp) => {
// this.showMsg(JSON.stringify(resp));
let state = resp.state;
this.showMsg("执行状态:" + state);
console.log("执行状态:" + state);
// console.log("completeCallback:" + JSON.stringify(resp));
};
let logCallback = (resp) => {
// this.showMsg(JSON.stringify(resp.message));
// console.log(resp.message);
};
let waitTimeout = 5000;
UTSFFprobe.getMediaInformationAsync(filePath, completeCallback, logCallback, waitTimeout);