更新记录

1.0.0(2024-10-31)

首次发布


平台兼容性

Vue2 Vue3
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 指令执行方法

  • 示例,修改视频帧率为30 FPS

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);

隐私、权限声明

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

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

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

暂无用户评论。

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问