gpt4 book ai didi

ffmpeg - 什么是 ffmpeg、avcodec、x264?

转载 作者:行者123 更新时间:2023-12-03 04:02:47 31 4
gpt4 key购买 nike

来自wiki ,我读到了

FFmpeg is a free software project that produces libraries and programs for handling multimedia data. The most notable parts of FFmpeg are libavcodec, an audio/video codec library used by several other projects, libavformat, an audio/video container mux and demux library, and the ffmpeg command line program for transcoding multimedia files.

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

它们有什么关系?

最佳答案

首先,澄清一些术语:

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

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

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

常见的外部编码器包括:

  • libx264
  • libvpx(适用于 VP8 和 VP9 视频)
  • 用于 AAC 音频的 libfaac、libfdk-aac、libvo-aacenc
  • libmp3lame
  • libvorbis
  • libxvid

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

如前所述,其他编码器如 the one for MPEG-4是 FFmpeg 原生的,完全不依赖外部库。

最后,there are several programs利用 FFmpeg 工具和库,无论是提供 ffmpeg 可执行文件,还是选择部分 libavcodec 和 libavformat 库。这是许可证所允许的,并使 FFmpeg 成为当今最流行的多媒体工具集合。

关于ffmpeg - 什么是 ffmpeg、avcodec、x264?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16772558/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com