智剧通(ZJT)文档中心 智剧通 - 视频压缩模块
本文档抓取自官方文档中心(2026-10-10 快照),具体功能以实际产品为准。

视频压缩模块

概述

视频压缩模块用于在上传前自动压缩大体积视频文件,确保符合平台要求。系统提供前端(浏览器端)和后端(服务端)两套压缩方案。

前端压缩

前端压缩基于 Canvas + MediaRecorder API,在浏览器端完成视频压缩,无需上传到服务器。

压缩参数

参数值说明
目标短边480px短边缩放到 480px,长边等比缩放
帧率24fps输出帧率
视频码率1.5 Mbps视频编码码率
压缩阈值10MB文件超过此大小才触发压缩
最大时长15秒超过此时长的视频会被截断

触发条件

满足以下任一条件即触发压缩:

压缩流程

  1. 读取视频元数据(宽高、时长)
  2. 判断是否需要压缩
  3. 将视频逐帧绘制到 Canvas 上(缩放到目标分辨率)
  4. 使用 MediaRecorder 录制 Canvas 流 + 原始音频
  5. 输出压缩后的视频文件

编码优先级

系统会按以下顺序尝试编码格式:

  1. VP9(WebM)
  2. VP8(WebM)
  3. MP4(回退方案)

后端压缩

后端压缩基于 ffmpeg,用于服务端视频处理。

压缩参数

参数默认值说明
目标短边480px短边缩放到目标值
CRF28视频质量(越低质量越高)
编码预设fast编码速度/质量平衡
音频码率128kAAC 音频编码码率
超时时间300秒压缩任务超时时间

技术细节

使用场景

营销智能体视频上传

在营销智能体中上传视频素材时,系统会自动调用前端压缩:

  1. 用户选择视频文件
  2. 系统检测文件是否需要压缩
  3. 如需压缩,显示压缩进度条
  4. 压缩完成后自动上传

剧本创作平台视频上传

在剧本创作平台上传视频时,后端会验证视频分辨率:

配置常量

相关配置位于 config/constant.py:

class MediaConstants:
    VIDEO_COMPRESS_TARGET_HEIGHT = 480   # 前端压缩目标分辨率
    VIDEO_COMPRESS_THRESHOLD_MB = 10     # 触发前端压缩的文件大小阈值

注意事项