You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在不改变帧尺寸的前提下,用cv2从RTSP链接保存低体积视频?

解决cv2保存RTSP视频体积过大的方法

1. 切换高效编码格式

你当前使用的MP4V(MPEG-4 Part 2)编码压缩效率偏低,换成H.264编码(对应FourCC码'avc1'),能在不改变帧尺寸的前提下,大幅降低视频体积,同时保留较好画质。大部分预编译版OpenCV都支持该编码。

2. 手动控制比特率

cv2.VideoWriter默认比特率较高,你可以通过设置自定义比特率来平衡体积与画质,比特率单位为bps,可根据场景调整数值。

优化后的代码示例

# 获取原视频的帧率和分辨率参数
fps = video.get(cv2.CAP_PROP_FPS)
frame_width = int(video.get(cv2.CAP_PROP_FRAME_WIDTH))
frame_height = int(video.get(cv2.CAP_PROP_FRAME_HEIGHT))

# 初始化VideoWriter,使用H.264编码
out = cv2.VideoWriter(
    'compressed_vid.mp4',
    cv2.VideoWriter_fourcc(*'avc1'),  # H.264编码标识
    fps,
    (frame_width, frame_height),
    isColor=True  # 灰度视频请设为False
)
# 设置比特率,示例为1Mbps,可根据需求增减(如500000到2000000之间测试)
out.set(cv2.CAP_PROP_BITRATE, 1000000)

补充提示

  • 如果H.264不可用,可尝试'vp09'(VP9编码),压缩率更高但编码速度稍慢;
  • 比特率越低体积越小,但画质会相应下降,建议根据实际场景测试合适数值;
  • 输出文件后缀保持.mp4,H.264与MP4容器兼容性更好。

内容的提问来源于stack exchange,提问作者Vishak Raj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 16:54:15