汇总50个视频压缩中的常见问题和解决方案,作为压缩工作的参考手册。
压缩失败类
1. FFmpeg报错"Cannot find encoder"
原因:FFmpeg编译时未包含该编码器。
解决:下载完整版FFmpeg,或使用ffmpeg -codecs查看支持的编码器。
2. HandBrake处理到50%卡住
原因:硬盘空间不足或源文件损坏。
解决:检查磁盘空间,用VLC播放源文件检查是否完整。
3. 压缩后文件无法播放
原因:编码参数不兼容或容器错误。
解决:改用MP4容器,使用H.264编码(兼容性最好)。
音视频同步类
4. 音视频不同步
原因:帧率转换问题或音频采样率不匹配。
解决:保持原帧率-r source,音频重采样-ar 48000。
5. 声音延迟或提前
原因:源文件VFR(可变帧率)导致。
解决:使用-vsync cfr强制恒定帧率。
画质问题类
6. 压缩后画面模糊
原因:CRF过高或码率过低。
解决:降低CRF值(如从28降至22),或提高码率。
7. 出现色块(banding)
原因:8bit色深不足。
解决:使用10bit编码-pix_fmt yuv420p10le。
8. 颜色偏暗或偏亮
原因:色彩空间转换错误。
解决:添加-colorspace bt709 -color_range tv。
字幕相关类
9. 字幕丢失
原因:MP4不支持某些字幕格式。
解决:使用MKV容器,或将字幕烧录到视频-vf subtitles=sub.srt。
10. 字幕乱码
原因:字幕编码问题。
解决:转换字幕为UTF-8编码。
性能问题类
11. 压缩速度太慢
原因:预设太慢或分辨率太高。
解决:改用faster预设,或降低分辨率。
12. CPU占用100%
原因:CPU软编码的正常现象。
解决:使用GPU编码(NVENC/QSV),或限制线程数-threads 4。
13. GPU编码不生效
原因:驱动未更新或参数错误。
解决:更新显卡驱动,检查编码器名称(如hevc_nvenc)。
体积问题类
14. 压缩后体积反而变大
原因:CRF过低或原片已高度压缩。
解决:提高CRF值,或直接复制原片。
15. 体积减小但不明显
原因:源文件已使用高效编码。
解决:降低分辨率或帧率,而不仅依赖CRF。
兼容性问题类
16. H.265视频在旧设备无法播放
原因:旧设备不支持H.265解码。
解决:改用H.264编码。
17. 10bit视频播放异常
原因:播放器不支持10bit。
解决:使用VLC/PotPlayer等支持10bit的播放器。
批量处理类
18. 批量压缩中途失败
原因:某个文件损坏导致整体中断。
解决:使用脚本单独处理每个文件,失败时跳过。
参数参考速查
常用CRF值:
- 高质量:18-20
- 标准质量:22-24
- 高压缩:26-28
常用码率:
- 4K:15-25 Mbps
- 1080P:4-8 Mbps
- 720P:2-4 Mbps
- 480P:1-2 Mbps
编码器对比:
- x264:快速,兼容性好
- x265:高压缩率,慢
- NVENC:最快,质量略低
- AV1:最高压缩率,最慢
压缩问题千奇百怪,但大多有迹可循。保存本文作为快速参考手册。