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

基于Go的FFmpeg视频编码优化求助:快速低损低存储占用

视频编码优化方案(适配你的Ryzen7 5000+RTX3050 Ti硬件)

一、优先推荐:NVENC H.265(兼顾速度、体积、画质)

你的RTX3050 Ti支持NVENC H.265硬件编码,之前的问题是参数配置错误,调整后可实现快速编码+低存储占用+无可见画质损失。

静态参数取值

  • 编解码器:h265_nvenc
  • CRF:28(肉眼几乎无画质损失,同画质下比libx264体积小30%-50%)
  • Preset:p7(NVENC最快预设,编码速度接近实时)
  • 分辨率:保持原分辨率(需缩放时用scale=-2:1080,自动适配宽高比避免拉伸)
  • 音频:统一用aac编码,码率128k(平衡音质和体积)

优化后的Go代码

func encodeVideo(fileName string) *exec.Cmd {
    return exec.Command("C:\\ffmpeg-6.1-full_build\\bin\\ffmpeg",
        "-i", "./userUploadDatas/videos/"+fileName,
        "-c:v", "h265_nvenc",
        "-crf", "28",
        "-preset", "p7",
        // 不需要缩放可删除此行
        "-vf", "scale=-2:1080",
        "-c:a", "aac", "-b:a", "128k",
        "./userUploadDatas/videos/"+fileName+"_encoded.mp4")
}

二、备用方案:libx264 速度优化版

若必须使用CPU编码,调整参数平衡速度与压缩率:

  • CRF:23(libx264默认无损级画质)
  • Preset:fast(比默认medium快30%,画质损失可忽略)
  • 附加参数:-profile:v high -level 4.2(启用高级编码特性,提升压缩效率)

优化后的libx264代码

func encodeVideo(fileName string) *exec.Cmd {
    return exec.Command("C:\\ffmpeg-6.1-full_build\\bin\\ffmpeg",
        "-i", "./userUploadDatas/videos/"+fileName,
        "-c:v", "libx264",
        "-crf", "23",
        "-preset", "fast",
        "-profile:v", "high", "-level", "4.2",
        "-vf", "scale=-2:1080",
        "-c:a", "aac", "-b:a", "128k",
        "./userUploadDatas/videos/"+fileName+"_encoded.mp4")
}

三、避坑要点

  • 不要同时指定-b:v和-crf:两者冲突,CRF是画质优先的动态码率,更适配你的需求
  • NVENC之前体积翻倍是因为默认码率过高,改用CRF即可解决
  • 暂时放弃AV1/VP9:你的硬件不支持AV1硬件编码,CPU编码速度极慢,性价比极低
  • H.264(无论CPU还是NVENC)压缩率远不如H.265,非特殊需求不推荐

内容的提问来源于stack exchange,提问作者Diwash Mainali

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 05:42:56