从维基,我读到
FFmpeg是一个免费的软件项目,它生成处理多媒体数据的库和程序。FFmpeg最显著的部分是libavcodec、其他几个项目使用的音频/视频编解码库、libavformat、音频/视频容器mux和demux库以及用于转码多媒体文件的ffmpeg命令行程序。
所以ffmpeg是avcodec的包装?我经常听到人们使用ffmpeg对视频进行x264编码。那么ffmpeg也是x264的包装吗?
它们之间有什么关系?
发布于 2013-05-27 20:03:02
首先,澄清一些条件:
ffmpeg是他们提供的工具之一(例如,其他工具是ffplay和qt-faststart )。avconv二进制文件。一些发行版决定在一段时间内发布Libav,而不是FFmpeg程序,特别是Ubuntu,这在过渡期间造成了一些混乱,在过渡阶段,Libav命令仍然被命名为ffmpeg。当前Ubuntu再次使用“真正的”ffmpeg。正如您所说,ffmpeg工具是为处理多媒体内容而设计的许多库的命令行包装器。其中包括:
虽然FFmpeg开发人员通常提供自己的编码器和解码器,但您可以启用在libavcodec中有包装器的第三方库,以便将FFmpeg和最受欢迎的H.264编码器x264“粘合在一起”。这通常是在根本没有意义的“重新发明车轮”的时候,如果一个人决定编写一个新的H.264编码器,目标是比x264更好的话,情况就是这样。在其他情况下,由于许可原因(例如libfaac),某些库可能不会随ffmpeg构建一起提供--在这种情况下,ffmpeg提供了一个本地AAC编码器。
常见的外部编码器包括:
对于所有这些,您将在libavcodec下找到包装器,例如对于libx264,libx264.c提供必要的代码将视频从FFmpeg内部格式推送到x264编码器,然后将其传递到libavformat,以便将其写入文件中。实际的编码是通过libx264完成的。
如前所述,其他编码器(如用于MPEG-4的 )是FFmpeg的原生代码,根本不依赖外部库。
最后,有几个程序利用FFmpeg工具和库,无论是通过提供ffmpeg可执行文件,还是通过选择libavcodec和libavformat库的一部分。这是每个许可证都允许的,并使FFmpeg成为当今最流行的多媒体工具集合。
https://stackoverflow.com/questions/16772558
复制相似问题