- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
来自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
是他们提供的工具之一(例如,ffplay
和 qt-faststart
)。avconv
二进制文件。一些发行版决定在一段时间内使用 Libav 而不是 FFmpeg 程序,特别是 Ubuntu,这在过渡时期造成了一些困惑,Libav 命令仍被命名为 ffmpeg。当前的Ubuntu再次使用“真正的”ffmpeg
。正如您所说,ffmpeg
工具是许多旨在处理多媒体内容的库的命令行包装器。其中包括:
虽然 FFmpeg 开发人员经常提供自己的编码器和解码器,但您可以启用在 libavcodec 中具有包装器的第三方库,以便将 FFmpeg 和 x264“粘合”在一起。 ,这是最流行的 H.264 编码器。当“重新发明轮子”根本没有意义时,通常会这样做,如果有人决定编写一个新的 H.264 编码器,目标是比 x264 更好,就会出现这种情况。在其他情况下,由于许可原因,某些库可能不会随 ffmpeg
版本一起提供,例如 libfaac - 在这种情况下,ffmpeg
提供 native AAC 编码器。
常见的外部编码器包括:
对于所有这些,您都可以在 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/
我一直在尝试从格式 SubRip 转码字幕(.srt) 到 MPEG4 Timed Text将它们混合到一个 MP4 容器中,其中已经有音频和视频。使用 ffmpeg 从命令行执行此操作微不足道: f
我正在尝试在 FFMPEG 库中构建示例代码 我在我的项目中添加 libavcode.h , libavcode.a 并将标题搜索 usr/local/include 和库搜索设置为 usr/loca
我需要知道如何使用 avcodec/avformat 查找视频文件中的总帧数。 我有一个项目,我从使用 ffmpeg 库解码视频流的其他人那里获得。我需要改进一些功能来逐帧搜索,所以我的第一个任务是简
我正在尝试使用 libav 将 MP4 文件转换为 MP3 文件。基本上想达到什么ffmpeg -i filename.mp4 filename.mp3做。我找到了 this官方例子。但是当我使用输入
我一直在到处寻找一个选项来强制 avcodec 为其 AVFrame 数据使用未对齐的内存。 根据像素格式,AVFrame->data 的水平面可能会填充额外的数据以与内存对齐以提高性能。 例如:每个
我在解码 HEVC 时遇到问题使用 avcodec 编码的视频。 修改源代码的一行允许解码mpeg1这不是我需要的。 谢谢 #include #include #include #include
我从这个站点下载了控制 AR Drone 的项目: https://github.com/Ruslan-B/AR.Drone 这个项目很旧。然后我从这个站点下载了 ffmpeg.autogen 库 h
已关闭。这个问题是 off-topic 。目前不接受答案。 想要改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 已关闭10 年前。 Improve th
我将视频数据包从视频流写入缓冲区。然后我尝试将它们写入文件。 av_init_packet( &pkt ); int bufer_size=250;
我正在使用 avcodec 在 linux 上解码一些 hevc 剪辑,avcodec 库是从源包 ffmpeg-4.3.1 构建的,带有命令: configure --prefix=/mnt/pro
我正在使用带有 avcodec 的 OPUS 对声音进行编码并使用我自己的协议(protocol)对其进行流式传输。 到目前为止,它适用于 MP2 编解码器,但是当我切换到 OPUS 时,我遇到了这个
我注意到对于某些视频文件,AVPacket 结构中返回的 PTS 时间戳不是从 0 开始,而是在一段时间后。例如。在 3.128 左右。我测试的 99% 的视频文件都有从 0 开始的 PTS 时间戳,
我正在使用 AVCodec 作为视频流解码器,想知道是否可以通过 FFMPEG 将硬件加速与 hwaccel 一起使用?还是已经默认使用了?我已经列出了可用的编解码器,但我不明白如何在我的代码中实现它
今天在CodeBlocks中运行ffmpeg示例c程序,报错: invalid conversion from int to avcodecid[-fpermissive] 我把部分代码放在这里: s
我正在尝试编写一个应用程序来获取输入视频并将其裁剪为方形视频并忽略音频流。因为如果使用命令性能不佳,我正在尝试使用 libavcodec 和 libavformat 来完成它。但是输出不能被任何视频播
我正在尝试使用 gcc 执行 tutorial01.c,我在同一个文件夹中有 gcc 和 tutorial01.c 以及 libavcodec 和 libavformat 及其相关文件,它给了我这个错
我已经安装了ffmpeg-devel使用 dnf,但包含 "libavcodec/avcodec.h" , g++ 告诉我 a.cpp:1:10: fatal error: libavcodec/av
我正在使用这个项目https://github.com/apc-llc/moviemaker-cpp 我想知道如何在我的视频上设置固定帧率 现在,当我输入 30FPS 作为 c->framerate
我正在使用 C/C++ 中的 FFMpeg 库开发媒体播放器。 This source使用以下代码查找文件中视频流的解码器: pCodec=avcodec_find_decoder(pCodecCtx
我尝试在我的ubuntu1604平台上调试ffmpeg,但它总是说找不到头文件,但实际上我确实在编译代码中包含了头文件。 错误信息如下: error message 这是我的测试代码: #inclu
我是一名优秀的程序员,十分优秀!