即使你从未直接使用过 FFmpeg,你也几乎肯定使用过基于它开发的视频编辑器或媒体转换工具。FFmpeg 是最流行的音频和视频录制、转换及流媒体工具之一,其最新版本 8.1 现已发布,并带来了一些由 Vulkan 驱动的增强功能。
对于某些媒体编解码器,FFmpeg 提供了多种编码和解码选项,利用合适的硬件可以显著提升性能。过去的几个版本已将 Vulkan Compute 添加为 H.264(最常见的视频格式之一)、HEVC(苹果设备和媒体流中较新的格式)、ProRes RAW 以及 FFv1 的可选加速方案。最新的 FFmpeg 8.1 版本又将 DPX 解码 以及 标准 ProRes 的编码/解码 加入了这一支持列表。
你可能知道 Vulkan 是为许多现代游戏和 3D 加速应用提供动力的图形 API,但它也能处理一些通用计算任务。维护 Vulkan 标准的 Khronos 集团解释道:“FFmpeg 利用 Vulkan Compute,在消费级 GPU 上无缝加速甚至专业级视频的编码和解码 —— 从而在不依赖专用硬件的情况下,大规模释放 GPU 的计算并行能力。这种方法是对 Vulkan Video 固定功能编解码器支持的补充,将加速扩展到了前者未覆盖的格式和工作流程中。”
基于 Vulkan 的编码器和解码器允许更多进程保留在 GPU 上进行多线程操作,而不是在 CPU 和 GPU 操作之间频繁切换。目前尚不清楚在典型 PC 上能获得多大的性能提升,但在更多工作流程中消除 CPU 瓶颈是一个重要的里程碑。随着视频编辑器、媒体转换器、音频工具和媒体播放器更新到最新版本的 FFmpeg 并启用 Vulkan 功能,它们也将获得同样的性能和效率提升。
目前在 Vulkan 上对 VC-2、JPEG 和 APV 解码器的开发仍在进行中,未来可能会支持 JPEG2000 和 PNG。相关博客文章指出:“未来,仅剩的具有有意义 GPU 加速潜力的编解码器只有 JPEG2000 和 PNG —— 其余的要么实际用例有限,要么无法从基于计算的加速中受益。”
除了 Vulkan 相关更新,FFmpeg 8.1 还有其他几项值得注意的改进:
现在可以解析 EXIF 元数据。
通过使用 libmpeghdec,现在支持解码 xHE-AAC Mps212 和 MPEG-H 音频。
在 Direct3D 12 上现在支持 H.264/AV1 编码及其他操作。
Rockchip 设备现在支持 H.264/HEVC 硬件编码。
安装 FFmpeg 的最佳方式是通过软件仓库,例如 Ubuntu 和 Debian 上的 APT、Mac 上的 Homebrew,或 Windows 上的 WinGet。官方网站的下载页面也提供了适用于各种操作系统的安装包。如果你还想了解更多关于 FFmpeg 等相关使用的更多教程,欢迎关注简鹿办公。