小程序开放平台

文档中心
基础
路由
跳转
转发
界面
网络
支付
数据缓存
媒体
图片
地图
视频
createVideoContext
VideoContext
chooseVideo
chooseMedia
saveVideoToPhotosAlbum
compressVideo
getVideoInfo
富文本
位置
开放接口
设备
XHSML
性能
第三方平台
文件
数据分析
画布

xhs.compressVideo

开发
>
JS API
>
媒体
>
视频
>
compressVideo
>
更新时间:2025-04-10 17:52:50

以Promise风格调用: 支持

压缩视频接口。开发者可指定压缩质量 quality 进行压缩。当需要更精细的控制时,可指定 bitrate、fps、和 resolution,当 quality 传入时,这三个参数将被忽略。原视频的相关信息可通过 getVideoInfo 获取。

参数

Object object

属性
类型
默认值
必填
说明
srcstring视频文件路径,可以是临时文件路径也可以是永久文件路径
qualitystring压缩质量
fpsnumber帧率
bitratenumber码率,单位 kbps
resolutionnumber相对于原视频的分辨率比例,取值范围(0, 1]
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数(调用成功、失败都会执行)

object.success 回调函数

属性
类型
说明
tempFilePathstring压缩后的视频临时文件路径
sizenumber压缩后的视频文件大小, 单位: kB
errMsgstringcompressVideo:ok

实例代码

function compressVideo(options = {}) {
  return new Promise((resolve, reject) => {
    xhs.compressVideo({
      ...options,
      success: (res) => resolve(res),
      fail: (err) => reject(err),
    });
  });
}

// 调用示例
const videoPath = '/path/to/video.mp4'; // 替换为实际的视频文件路径

compressVideo({
  src: videoPath,       // 视频文件路径
  quality: 'high',      // 压缩质量,可选值:low、medium、high
  // 如果需要更精细控制,可以注释掉 quality 并指定以下参数:
  // fps: 30,           // 帧率
  // bitrate: 1000,     // 码率,单位 kbps
  // resolution: 0.8,   // 分辨率比例,范围 (0, 1]
})
  .then((res) => {
    console.log('视频压缩成功:');
    console.log('压缩后文件路径:', res.tempFilePath);
    console.log('压缩后文件大小:', res.size, 'kB');
  })
  .catch((err) => {
    console.error('视频压缩失败:', err);
  });