用FFmpeg玩转视频编码:手把手教你将MP4从H.264转成H.265/AV1,实测省了多少空间 用FFmpeg玩转视频编码手把手教你将MP4从H.264转成H.265/AV1实测省了多少空间最近整理硬盘时发现几年前拍摄的1080p家庭视频竟然占用了近500GB空间——这些用H.264编码的MP4文件在当下HEVC和AV1时代显得格外臃肿。作为技术爱好者我决定用FFmpeg这把瑞士军刀带大家实测不同编码方案的压缩效率。本文将记录从环境准备到参数调优的全过程包含你真正关心的转码后画质肉眼能否察觉差异、实际节省了多少硬盘空间以及不同硬件配置下的转码速度对比。1. 环境准备与素材选择1.1 FFmpeg安装与验证推荐通过官方编译版本获取最新编解码器支持截至2024年1月建议使用FFmpeg 6.0# Ubuntu/Debian sudo apt install ffmpeg # macOS (Homebrew) brew install ffmpeg --with-libvpx --with-libx265 # 验证安装 ffmpeg -version | grep -E libx264|libx265|libaom正常输出应包含libx264H.264编码libx265H.265/HEVC编码libaomAV1编码提示若缺少某个编码器需重新编译FFmpeg或安装对应依赖库1.2 测试视频规格选择三种典型场景的H.264源文件进行对比类型分辨率时长原始大小内容特点家庭录像1080p5分钟450MB动态场景多色彩丰富屏幕录制1440p10分钟680MB静态文字为主偶尔动画4K演示片2160p2分钟1.2GB高码率复杂光影变化2. H.265转码实战与参数优化2.1 基础转码命令使用CRFConstant Rate Factor模式平衡质量与体积ffmpeg -i input.mp4 -c:v libx265 -crf 28 -preset slower -c:a copy output_h265.mp4关键参数解析-crf 28质量系数18-28视觉无损28-35适合存档-preset slower编码速度与压缩率权衡可选ultrafast→medium→slow→slower-c:a copy直接复制音频流避免重编码2.2 实测数据对比视频类型原始大小H.265大小节省空间转码时间i7-12700K家庭录像450MB210MB53.3%4分12秒屏幕录制680MB185MB72.8%6分38秒4K演示片1.2GB540MB55.0%11分45秒发现静态内容如屏幕录制压缩率显著高于动态视频2.3 高级调优技巧针对不同内容类型推荐参数组合动态视频如家庭录像ffmpeg -i input.mp4 -c:v libx265 -crf 24 -preset slow \ -x265-params psy-rd2:aq-mode3 -c:a copy output_h265_optimized.mp4psy-rd提升视觉细节保留aq-mode3自适应量化优化暗部静态内容如幻灯片ffmpeg -i input.mp4 -c:v libx265 -crf 30 -preset medium \ -x265-params no-sao1:rect0 -c:a copy output_h265_slides.mp4no-sao关闭采样自适应偏移减少模糊rect0禁用矩形划分提升编码速度3. AV1编码深度评测3.1 编码命令示例使用libaom编码器进行AV1转码ffmpeg -i input.mp4 -c:v libaom-av1 -crf 30 -cpu-used 4 \ -row-mt 1 -tiles 2x2 -c:a libopus -b:a 128k output_av1.mkv特殊参数说明-cpu-used 4速度/质量平衡0-8值越大速度越快-row-mt 1启用多线程行处理-tiles 2x2分块编码提升并行效率3.2 性能对比测试编码格式家庭录像大小转码时间CPU占用兼容性H.264450MB--全平台H.265210MB4分12秒85%主流设备AV1175MB32分50秒95%需较新硬件/软件3.3 画质对比工具使用FFmpeg内置指标分析# 计算PSNR峰值信噪比 ffmpeg -i original.mp4 -i encoded.mp4 -lavfi psnr -f null - # 计算SSIM结构相似性 ffmpeg -i original.mp4 -i encoded.mp4 -lavfi ssim -f null -典型输出示例[Parsed_ssim_0 0x55a9d1e6f580] SSIM Y:0.981312 U:0.985123 V:0.983454 All:0.982931值越接近1表示画质损失越小4. 硬件加速方案对比4.1 GPU加速实测在RTX 4080上测试NVENC编码# H.265硬件编码 ffmpeg -i input.mp4 -c:v hevc_nvenc -preset p7 -tune hq \ -cq 28 -c:a copy output_h265_nvenc.mp4 # 转码时间对比编码方式家庭录像转码时间软件编码x2654分12秒NVENCRTX 40801分05秒4.2 性价比方案推荐根据使用场景选择硬件用户类型推荐配置适用场景个人用户Intel QSV核显加速偶尔转码低功耗视频工作室NVIDIA NVENC批量处理时间敏感技术极客AMD AMF AV1编码追求最新技术体验5. 长期存储建议经过三个月不同编码格式的存档测试总结出以下实践重要回忆视频保留原始H.264文件HEVC副本CRF 24教程类内容转AV1格式CRF 30节省CDN流量临时文件使用H.265快速编码preset fast在NAS上实施的文件命名规范FamilyTrip_2023_H264-original.mp4 FamilyTrip_2023_HEVC-28.mkv FamilyTrip_2023_AV1-30.mkv最终我的500GB视频库经过优化后HEVC版本占用230GB节省54%AV1版本占用190GB节省62%