11月10日,FFmpeg 6.1正式发布。
FFmpeg 发布版本的时候,按照惯例,会选择一些物理学家名字作为代号,这一新版本代号为“Heaviside”。主要为纪念伟大的英国数学家和物理学家奥利弗·黑维塞(Oliver Heaviside)。
奥利弗·黑维塞(Oliver Heaviside)自学成才,没有系统经历过高等教育,但在物理、数学、工程领域成果非凡,其名言一直为人所津津乐道。
“数学分2种,严格的和物理直观化的。前者的范围窄;后者粗犷而广泛。拘泥于公式的严格证明只会令绝大多数的数学物理探究止步不前。难道我要在完全理解消化反应的所有机理以前,拒绝进食吗?”
Mathematics is of two kinds, Rigorous and Physical. The former is Narrow: the latter Bold and Broad. To have to stop to formulate rigorous demonstrations would put a stop to most physico-mathematical inquiries. Am I to refuse to eat because I do not fully understand the mechanism of digestion?
大佬的详细生平见奥利弗·黑维塞
FFmpeg此次发布重要信息包含以下几点:
1. 支持增强版本的RTMP/FLV,主要支持了HEVC、VP9、AV1等编解码格式。由于Adobe已经停止RTMP维护更新,这导致许多公司都在通过私有的方式支持新的视频编码格式。FFmpeg这次官方支持,长期看有可能统一混乱的私有方案,但在短期内也会增加混乱与工作量,因为企业不得不同时维护私有和开放多套标准。诚如著名的网络漫画网站https://xkcd.com/927/而言,我们又多了一个标准。
2.对新一代编码标准VVC 和 MPEG-5 EVC (Essential Video Coding) 的parser, muxer ,demuxer以及bsf的支持。FFmpeg社区一直在积极开发原生的VVC的decoder,目前看,容器格式和bit stream相关的支持已经初步完成,让我们等待它原生的VVC 解码器被合并;另一方面,MPEG-5 EVC相关的支持工作也在积极的进行,只是其编解码器以第三方库的方式支持(https://github.com/mpeg5)。
3.FFmpeg重新实现了自己的FFT,用于其内部编解码器和滤波器的FFT、MDCT、DCT和DST实现已经完全被更快的libavutil/tx所取代;这个改动一方面带来速度上面的收益,另外一方面,也使得库的大小大为减小。
4.硬件加速继续迭代。一方面,FFmpeg已经支持了基于Vulkan的解码(当然,如同大多数硬件加速一样,它要在一定的限制条件下才能使用)。另外,也进一步支持了基于VAAP的AV1编码。说到VAAPI,最让人吃惊的莫过于,FFmpeg通过libva-win32项目,可以在WIndows上使用FFmpeg VAAPI的相关功能,这要感谢微软的工程师们在WIndows上的WSL项目上的努力。
具体改进亮点如下:
libaribcaption译码器
Playdate 视频 Decoder 和 Demuxer
在Windows上扩展对libva-win32的VAAPI支持
命令行新增选项:-readrate_initial_burst
arls 音频滤镜
setts和asetpts过滤器中的命令支持
Vulkan解码hwaccel,支持H264、HEVC和AV1
color_vulkan过滤器
bwdif_vulkan过滤器
nlmeans_vulkan过滤器
RivaTuner视频解码器
xfade_vulkan过滤器
vMix视频解码器
基本视频编码解析器,混音器和解音器
基本视频编码帧合并bsf
bwdif_cuda过滤器
微软RLE视频编码器
原始AC-4混频器和解混频器
原始的VVC比特流解析器,复用器和解复用器
位流过滤器用于编辑VVC流中的元数据
比特流过滤器转换VVC从MP4到Annex B
videotoolbox的Scale_vt过滤器
videotoolbox的transpse_vt过滤器
支持P_SKIP提示以加速libx264编码
支持HEVC、VP9、AV1编解码器,增强flv格式
Apsnr和asisdr音频滤波器
OSQ解码器和编码器
在增强的RTMP协议中支持HEVC、VP9、AV1编解码器
CRI USM解混器
ffmpeg命令行'-top'选项已弃用,取而代之的是setfield过滤器
AV1编码器
ffprobe XML输出模式更改为考虑同一父元素中的多个变量字段元素
Ffprobe -output_format选项作为-of的别名添加
除去这些特性,FFmpeg内部也有一些优化,包含了:
在视频解码器中大幅减少内存分配,从而降低内存等开销
对 DSP 代码的许多部分进行了 RISC-V 优化,针对常用解码器已经被合并
提高每个数据包的时间戳和帧持续时间的正确性,从而提升变帧率视频的支持
下一个主要版本将是7.0版本,按照计划,将在2024年2月份发布。FFmpeg最近这些年,虽然也经历了一些波折,但发展并未停滞,相反越来越迅速,而我们也即将迎来FFmpeg 7.0的大版本。
Reference:
https://ffmpeg.org/index.html%23pr6.1
https://github.com/veovera/enhanced-rtmp/blob/main/enhanced-rtmp.pdf
https://devblogs.microsoft.com/directx/video-acceleration-api-va-api-now-available-on-windows/
* 感谢赵军老师对本篇文章的技术审校。
10天倒计时!深圳站大会亮点前瞻!
▲点击“阅读原文”▲
跳转LiveVideoStackCon 2023 深圳站 官网,了解更多信息