这是一个用于测试视频平台二次压缩策略的工具集,支持 H.264/H.265/AV1 编码测试,可以使用 CPU 或 NVIDIA GPU 进行编码。
- 支持多种编码器:
- H.264 (CPU: libx264, GPU: NVENC)
- H.265/HEVC (CPU: libx265, GPU: NVENC)
- AV1 (CPU: SVT-AV1, GPU: NVENC)
- 自动计算 VMAF 质量分数
- 生成详细的码率分析图表
- 支持多进程并行计算 VMAF
- 生成完整的测试报告和可视化结果
- Python 3.6+
- FFmpeg (支持 NVENC)
- libvmaf
- NVIDIA GPU (如果使用 GPU 编码)
- 依赖 Python 包:
- matplotlib
- pandas
- tqdm
- numpy
-
安装 FFmpeg:
- Windows: 下载并安装 FFmpeg,确保添加到系统 PATH
- Linux:
sudo apt-get install ffmpeg
-
安装 Python 依赖:
pip install matplotlib pandas tqdm numpy- 安装 libvmaf:
- Windows: 通过 FFmpeg 内置支持
- Linux:
sudo apt-get install libvmaf
将源视频文件(.mov)放入 ./source_videos/ 目录。
python video_compression_tester.py --encode --cpupython video_compression_tester.py --encode --nvidiapython video_compression_tester.py --encode --cpu --nvidia将平台二压后的文件放入 ./second_pass/ 目录(文件命名格式:场景名_编码器类型.mp4),然后运行:
python video_compression_tester.py --analyzepython video_compression_tester.py --full --cpu --nvidiapython video_compression_tester.py --vmaf-only使用 bitrate_plot.py 分析单个视频文件的码率:
python bitrate_plot.py <视频文件路径>测试结果将保存在 ./results/ 目录下:
first_pass_results.csv: 首次编码结果compression_results.csv: 二压分析结果visualizations/: 包含各种分析图表first_pass_quality.png: 首次编码质量分析bitrate_vs_vmaf.png: 码率与 VMAF 关系compression_ratio.png: 码率压缩比分析scene_comparison.png: 场景对比分析
- 源文件:
./source_videos/dance.mov - 首次编码:
./first_pass/dance_h264_cpu.mp4,dance_h264_nvidia.mp4 - 二压文件:
./second_pass/dance_h264_cpu.mp4,dance_h264_nvidia.mp4
默认编码参数配置(可在代码中修改):
- H.264: CRF 23, medium preset, high profile
- H.265: CRF 25, medium preset, main10 profile
- AV1: CRF 32
- H.264: CQ 25, medium preset, high profile
- H.265: CQ 27, medium preset, main10 profile
- AV1: CQ 33, medium preset
- 确保 FFmpeg 支持所需的编码器
- 使用 GPU 编码时需要安装 NVIDIA 驱动和 CUDA
- 建议使用较新版本的 FFmpeg 以支持所有功能
- 对于大文件,VMAF 计算可能需要较长时间
- 如果遇到编码器不支持的错误,请检查 FFmpeg 版本和安装
- 如果 GPU 编码失败,请确认 NVIDIA 驱动和 CUDA 是否正确安装
- 如果 VMAF 计算失败,请检查 libvmaf 是否正确安装
MIT License