首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >什么是ffmpeg,avcodec,x264?

什么是ffmpeg,avcodec,x264?
EN

Stack Overflow用户
提问于 2013-05-27 11:48:28
回答 1查看 15.5K关注 0票数 11

维基,我读到

FFmpeg是一个免费的软件项目,它生成处理多媒体数据的库和程序。FFmpeg最显著的部分是libavcodec、其他几个项目使用的音频/视频编解码库、libavformat、音频/视频容器mux和demux库以及用于转码多媒体文件的ffmpeg命令行程序。

所以ffmpeg是avcodec的包装?我经常听到人们使用ffmpeg对视频进行x264编码。那么ffmpeg也是x264的包装吗?

它们之间有什么关系?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-27 20:03:02

首先,澄清一些条件:

  • FFmpeg是一个有很多人参与的软件项目,一个Wiki,一个bug跟踪器,一些资金等等。
  • ffmpeg是他们提供的工具之一(例如,其他工具是ffplayqt-faststart )。
  • 利巴夫是FFmpeg项目的分支,该项目提供了avconv二进制文件。一些发行版决定在一段时间内发布Libav,而不是FFmpeg程序,特别是Ubuntu,这在过渡期间造成了一些混乱,在过渡阶段,Libav命令仍然被命名为ffmpeg。当前Ubuntu再次使用“真正的”ffmpeg

正如您所说,ffmpeg工具是为处理多媒体内容而设计的许多库的命令行包装器。其中包括:

  • libavcodec,用于音频、视频和字幕比特流的编解码
  • libavformat,用于穆兴与破败容器
  • libavfilter,用于在音频、视频和字幕上应用各种各样的过滤器
  • libswscale,哪个缩放图像和视频还是正弦波音频
  • libavresample,最初被推到Libav,后来集成到FFmpeg中。有关历史的更多信息,请参见这条线

虽然FFmpeg开发人员通常提供自己的编码器和解码器,但您可以启用在libavcodec中有包装器的第三方库,以便将FFmpeg和最受欢迎的H.264编码器x264“粘合在一起”。这通常是在根本没有意义的“重新发明车轮”的时候,如果一个人决定编写一个新的H.264编码器,目标是比x264更好的话,情况就是这样。在其他情况下,由于许可原因(例如libfaac),某些库可能不会随ffmpeg构建一起提供--在这种情况下,ffmpeg提供了一个本地AAC编码器。

常见的外部编码器包括:

  • libx264
  • libvpx (用于VP8和VP9视频)
  • libfaac,libfdk- AAC,libvo-aacenc用于AAC音频
  • libmp3lame
  • 蜥蜴
  • 利布

对于所有这些,您将在libavcodec下找到包装器,例如对于libx264,libx264.c提供必要的代码将视频从FFmpeg内部格式推送到x264编码器,然后将其传递到libavformat,以便将其写入文件中。实际的编码是通过libx264完成的。

如前所述,其他编码器(如用于MPEG-4的 )是FFmpeg的原生代码,根本不依赖外部库。

最后,有几个程序利用FFmpeg工具和库,无论是通过提供ffmpeg可执行文件,还是通过选择libavcodec和libavformat库的一部分。这是每个许可证都允许的,并使FFmpeg成为当今最流行的多媒体工具集合。

票数 30
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16772558

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档