FFmpeg 7.0“Dijkstra” 现已发布。此版本以荷兰计算机科学家 Edsger W. Dijkstra 的名字命名,一些值得注意的变化包括原生 VVC 解码器(目前处于实验阶段)、IAMF 支持以及多线程 ffmpegCLI 工具。
该版本并不向后兼容,删除了 6.0 之前废弃的 API。对大多数 library callers 来说,最大的变化是删除了旧的 bitmask-based channel layout API,取而代之的是允许自定义通道排序或 Ambisonics 等功能的 AVChannelLayout API。某些过时的 ffmpegCLI 选项也已被移除,现在需要使用兼容 C11 的编译器来构建代码。
此外还添加了许多新的支持格式和编解码器、新的过滤器、API 以及较小的功能和错误修复。FFmpeg 7.0 是一个相当大的版本,与 6.1 相比,该 git 存储库包含约 100 位作者的近 2000 个新 commit,涉及约 2000 个文件中的超过 100000 行。
7.0 版本:
- DXV DXT1 编码器
- LEAD MCMP 解码器
- 使用外部库 libxevd 的 EVC 解码
- 使用外部库 libxeve 的EVC 编码
- QOA 解码器和解复用器
- aap过滤器
- 解复用、解码、过滤、编码和复用 ffmpeg CLI 现在全部并行运行
- 启用 gdigrab 设备使用 hwnd=HANDLER 语法抓取窗口
- IAMF 原始解复用器和复用器
- D3D12VA 硬件加速 H264、HEVC、VP9、AV1、MPEG-2 和 VC1 解码
- tiltandshift filter
- qrencode filter 和 qrencodesrc source
- quirc filter
- lavu/eval:在表达式中引入 randomi() 函数
- VVC 解码器(实验性)
- fsync 过滤器
- ffmpeg CLI -bsf 选项现在可用于输入和输出
- ffmpeg CLI 选项现在可以用作 -/opt <path>,相当于 -opt <contents of file <path>>
- showinfo bitstream filter
- 现在需要使用符合 C11 的编译器;且在不久的将来升级到 C17
- 将 QSV 编码器的默认比特率控制方法从 VBR 更改为 CQP。
- 删除了已弃用的 ffmpeg CLI 选项 -psnr 和 -map_channel
- DVD-Video demuxer,由 libdvdnav 和 libdvdread 提供支持
- ffprobe -show_stream_groups 选项
- AEA muxer
- ffmpeg CLI loopback decoders
- 支持增强 flv 格式的 PacketType的PacketTypeMetadata
- 具有 hwaccel 解码支持的 ffplay
- dnn filter libtorch backend
- Android content URIs protocol
- AOMedia Film Grain Synthesis 1 (AFGS1)
- 针对 AAC、FLAC、JPEG-2000、LPC、RV4.0、SVQ、VC1、VP8 等的 RISC-V 优化
- 针对 HEVC 解码的 Loongarch 优化
- 针对 HEVC 的重要 AArch64 优化
- MP4/ISOBMFF 内的 IAMF 支持
- 支持 HEIF/AVIF 静态图像和平铺静态图像
- AV1 中的杜比视界配置文件 10 支持
- 支持 MP4/ISOBMFF 中的 Ambient Viewing Environment metadata
- 使用 libx264、libx265 和 libsvtav1 编码时的 HDR10 metadata passthrough
更多详情可查看 Changelog, APIchanges 和 git log。