FFmpeg Maintainer赵军:FFmpeg关键组件与硬件加速

FFmpeg Maintainer赵军在分享中介绍了FFmpeg的历史、关键组件和硬件加速,尤其是英特尔平台上FFmpeg的硬件优化。FFmpeg是一个流行的开源多媒体框架,适用于播放器、媒体编辑和云转码等场景。赵军强调了FFmpeg的组件如FFmpeg、FFprobe、Libavcodec和Libavfilter,并讨论了硬件加速方案,包括MediaSDK和VA-API,以及未来可能的OpenCL优化。
摘要由CSDN通过智能技术生成

640?wx_fmt=png


本文来自FFmpeg Maintainer赵军在LiveVideoStackCon 2018热身分享,并由LiveVideoStack整理而成。在分享中,赵军介绍了FFmpeg的历史、关键组件,并介绍了英特尔平台上的多种FFmpeg硬件加速方式。


文 / 赵军

整理 / LiveVideoStack


大家好!我是赵军,现就职于英特尔的DCG从事基于FFmpeg的硬件优化工作,两年多前加入FFmpeg社区,2018年4月成为FFmpeg的其中的一个FFmpeg Maintainer,主要负责FFmpeg的硬件优化工作。


640?wx_fmt=png


概览:


  • 什么是FFmpeg

  • FFmpeg组件

  • FFmpeg开发

  • 我们的主要工作

  • 回顾与总结


1、什么是FFmpeg


640?wx_fmt=png


FFmpeg诞生于十几年前,最初是作为一个MPlayer播放器的一个子项目出现。因为当时的播放器有需要支持各种各样解码的需求, 其中有一位Mplayer的开发者看到了这样的需求,于是编写了FFmpeg。


它作为迄今为止最流行的一个开源多媒体框架之一,FFmpeg有两种基本使用方式——作为库或者作为工具,其中后者的使用场景更多,同时它也被称为多媒体开发的“瑞士军刀”。FFmpeg库中90%的代码以上使用C,同时也有一些汇编语言上的优化,还有一些基于GPU的优化。对于汇编优化而言,由于YASM对最新的CPU指令支持效果不好,FFmpeg的汇编现在正在向NASM转变。FFmpeg本身有一些基本的开发策略,希望所有的Codec集成在内部库中随时调用;当然它也在必要时可以依赖一些外部第三方库,例如像众所周知的X.264。(X.264作为一个Encoder来说已经足够优秀,我们可以看到大部分的商业产品都以X.264为对标,常会看到某某Codec宣称比X.264好多少,似乎X.264已经成为业内一个基本对标点)。FFmpeg同样也是一个跨平台的产品,主要的License是GNU GPLv2,或GNU LGPLv2.1+的,讲到这里我想说的是,希望大部分的使用者也能够在项目通过声明使用了FFmpeg这一点为开源社区带来正面的反馈。


1.1 FFmpeg的发展历史


640?wx_fmt=png


这里需要说明的是FFmpeg与Libav之间的关系, 2011年FFmpeg社区中的一部分开发者因为某些原因脱离了FFmpeg社区并创立了Libav社区,而后来使用Libav的大部分的发行版本又慢慢迁移回了FFmpeg。但是,直到现在仍有几位脱离FFmpeg社区的主要开发者坚守在Libav,而大部分的开发者与资源都重新迁回了FFmpeg社区。现在FFmpeg的最新稳定版本为2018年4月更新的v4.0.0,从v3.4.2 到最新的v4.0.0,其中最大的改进之一便是硬件加速。


640?wx_fmt=png


1.2 使用场景


  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值