avformat 包的标头似乎已过时

avformat 包的标头似乎已过时

我的机器上安装了 libavformat56 和 libavformat-dev。我现在正在构建一些使用 libavformat.h 标头的源代码。源代码(即 Steven Lovegrove 的 Pangolin 库)正确地预处理了

avformat_alloc_context    

avformat_alloc_output_context2

基于 LIBAVFORMAT_VERSION_MAJOR(与 54 相比)。

这解析为 56,因此使用后者。我检查了官方头文件在这里对于版本 56,并且如预期的那样,avformat_alloc_output_context2 存在。

但是,我的系统(目前在 Utopic)上的 /usr/include/libavformat/avformat.h 中的同一标头仅定义avformat_alloc_context

这是某种软件包错误吗,还是我在这里做错了什么?

PS:如果您觉得这个问题应该在不同的 Stack Exchange 论坛上询问,请告诉我。

PPS 任何安装了 libavformat-dev 的人都可以验证一下他们没有avformat_alloc_output_context2在他们的标题中?

答案1

该问题不是软件包错误。

只是我愚蠢地认为 libav 对 libavformat v.56 具有与 ffmpeg 相同的功能。

对于“avcodec_get_name”函数也存在同样的问题,正如这里所问到的: https://stackoverflow.com/questions/23560748/avcodec-get-name-is-not-available-in-ubuntu-libavcodec-what-should-i-use

ffmpeg 包似乎即将出现在 ubuntu velvet 中,我希望他们也能提供它的开发文件,至少使用一些预处理器标志来区分 ffmpeg 和 libav。

[这里省略我对 libav 和 ffmpeg 维护者在分裂后对社区有多自私的探索。至少现在他们(有点)在合作。]

相关内容