FFmpeg 9.0 发布说明
FFmpeg 9.0 "Lei" 是一个重大版本,扩展了硬件加速能力,增加了对新多媒体格式的支持,并完善了项目的深度学习集成。此版本比 FFmpeg 8.1 发布大约提前了四个月。
硬件加速与 GPU 增强
FFmpeg 9.0 大幅扩展了其硬件加速处理能力,特别是针对 AMD 和基于 Vulkan 的工作流。
AMD Media Framework (AMF) 更新
- HDR 能力: AMF Color Converter (
vf_vpp_amf) 现在具备扩展的 HDR 能力。 - 帧率转换: 新增了 AMF Frame Rate Converter 过滤器 (
vf_frc_amf)。 - 内存映射: 此版本引入了对 AMF 硬件内存映射的支持。
Vulkan 与 CUDA 集成
- Vulkan 过滤器:
v360_vulkan过滤器现在可用于球面视频处理。 - CUDA 过滤器: 新增了
transpose_cuda过滤器,用于硬件加速的图像旋转。 - Vulkan 硬件加速: 通过 Vulkan 为 APV 增加了新的硬件加速 (hwaccel) 支持。
其他硬件加速
- VideoToolbox: ProRes RAW 现在拥有 VideoToolbox 硬件加速支持。
新增编解码器、封装器与解封装器
此版本增加了对几种小众和现代格式的支持,以确保在不同硬件和软件生态系统中实现广泛的兼容性。
- Animated WebP: FFmpeg 9.0 增加了 Animated WebP 解码器和解封装器。
- Playdate: 引入了对 Playdate 视频编码器和封装器的支持。
- LCEVC: MP4 封装器现在支持 LCEVC 轨道封装。
- HE-AAC 960: 现在支持 HE-AAC 960 (DAB+) 的解码。
- Dolby Vision: 新增了一个比特流过滤器,用于拆分 Dolby Vision 多层 HEVC。
- SMPTE 2094-50: 此版本增加了对 SMPTE 2094-50 元数据的支持和透传。
深度学习与后端变更
FFmpeg 通过其 DNN (Deep Neural Network) 框架继续集成 AI 驱动的处理能力。
- ONNX Runtime: ONNX Runtime DNN 后端现在支持 GPU 执行提供程序,从而可以更快速地进行神经网络过滤器的推理。
弃用与移除
为了保持代码库的健康,FFmpeg 9.0 移除了几个遗留组件:
- CELT: 移除了对 CELT 解码和 ogg/celt 解析的支持(这不会影响 Opus CELT)。
- NVENC: 移除了已弃用的 NVENC 选项以及对 11.1 之前 SDK 版本的支持。
社区见解与技术讨论
Hacker News 上的用户和开发者强调了 FFmpeg 作为开源基础设施基础组件的持久重要性。虽然该版本受到了称赞,但一些用户指出了过滤器系统的陡峭学习曲线。
"ffmpeg also has many really powerful filters, but these are very confusing to use IMO and not elegant at all. I'd wish we could use some kind of simple meta-language... to think of multimedia data as tangible to manipulation as if it were an object oriented system or datastream system."
其他讨论涉及到了项目对极致效率的追求,用户们提到了对项目首席工程师的采访,内容涉及使用手写的汇编代码来最大化性能。