更新记录

1.0.6(2024-11-05)

文档更新

1.0.5(2024-10-31)

版本跟新

1.0.4(2024-10-30)

支持HBuilderX4.25版本及以后 回调函数已释放,不能再次执行的问题

查看更多

平台兼容性

Vue2 Vue3
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
HBuilderX 4.27,Android:7.0,iOS:13,HarmonyNext:不确定 × × × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序
× × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
× × × × × × × × ×
<!-- @format -->

注意

  1. 需要 HBuilderX 打包自定义基座 进行调试 (请先点击试用)

FFmpegAsync (异步执行 FFmpeg 命令)

用法
import { FFmpegAsync } from "@/uni_modules/rmuu-ffmpeg"

const inFile = plus.io.convertLocalFileSystemURL(videoInfo.src)
const outFile = plus.io.convertLocalFileSystemURL("_doc/" + new Date().getTime() + ".mp4")
FFmpegAsync({
    cmd: `-i ${inFile} -crf 28 ${outFile}`,
    success: (res: object) => {
      console.log("success res", res)
    },
    statistics: (res: object) => {
      console.log("statistics ", res)
    },
  })
参数介绍
参数 说明 类型
cmd FFmpeg 可执行的命令 string
success 成功的回调 (res: object) => void
statistics 会话的完整回调 (res: Statistics) => void
interface Statistics {
  bitrate: number
  sessionId: number
  size: number
  speed: number
  time: number
  videoFps: number
  videoFrameNumber: number
  videoQuality: number
}

ffmpeg 常用命令

  1. 抽取音频流
-i input.mp4 -acodec copy -vn out.aac
  1. 抽取视频流
-i input.mp4 -vcodec copy -an out.h264
  1. 转格式
-i input.mp4 -vcodec copy -acodec copy out.flv
  1. 音视频合并
-i input.h264 -i input.aac -vcodec copy -acodec copy out.mp4
  1. 截取视频中指定时间的某一帧图片
-i input.mp4 -ss 00:00:50 -frames:v 1 out1.jpg
  1. 添加水印
-i input.mp4  -vf "movie=logo.png,scale=64:48[watermask];[in][watermask] overlay=30:10 [out]" out.mp4
注:-vf: movie指定logo位置,scale指定大小overlay指定logo摆放的位置
  1. 视频裁剪
-i input.mov  -vf crop=in_w-200:in_h-200 -c:v libx264 -c:a copy -video_size 1280x720 out.mp4
  1. 倍速播放
-i input.ts -filter:v "setpts=2.0*PTS" output.ts

ffmpeg 文档

getMediaInformation (获取文件的媒体信息)

用法
import { getMediaInformation } from "@/uni_modules/rmuu-ffmpeg"

getMediaInformation(
  res.tempFilePath,
  (info: object) => {
      console.log("info", info)
      //视频大小
      const size = Number(info.jsonObject.nameValuePairs.format.nameValuePairs.size / (1024 * 1024)).toFixed(2)
      //视频时长
      const duration = info.streams[0].jsonObject.nameValuePairs.duration
  },
  (err: string)=>{
    console.log(err)
  }
)
参数介绍
参数 说明 类型
file 文件地址 string
success 成功的回调 (res: MediaInformation) => void
err 失败的回调 (err: string) => void
interface MediaInformation{
    jsonObject:{
        nameValuePairs:{
            format:{
                nameValuePairs:object
            },
            streams:{
                values:object[]
            }
        }
    }
    streams:object[]
    chapters:[]
}

隐私、权限声明

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

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

插件不采集任何数据

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

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