小程序开放平台

文档中心
基础
界面
网络
数据缓存
媒体
图片
地图
视频
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);
  });