通过动态链接使用FFmpeg(libavformat)RTP数据结构

时间:2011-09-15 13:40:47

标签: c ffmpeg rtp libavformat

我想使用FFmpeg的libavformat提供的RTP数据结构(例如libavformat / rtpenc.h中的RTPMuxContext),但它们似乎不适用于以下安装:

ffmpeg version 0.8.2.git, Copyright (c) 2000-2011 the FFmpeg developers
  built on Sep 14 2011 16:04:33 with gcc 4.2.1 (Apple Inc. build 5666) (dot 3)
  configuration: --enable-shared --disable-mmx --arch=x86_64
  libavutil    51. 16. 0 / 51. 16. 0
  libavcodec   53. 14. 0 / 53. 14. 0
  libavformat  53. 12. 0 / 53. 12. 0
  libavdevice  53.  3. 0 / 53.  3. 0
  libavfilter   2. 40. 0 /  2. 40. 0
  libswscale    2.  1. 0 /  2.  1. 0

当我查看/ usr / local / include时,我看到了libavformat目录,但是只有几个文件:avformat.h,avio.h和version.h。当然,当我尝试包含libavformat / rtpenc.h时,我得到“错误:libavformat / rtpenc.h:没有这样的文件或目录”

我希望通过动态链接到FFmpeg库来实现这一点(因为LGPL合规性,以及其他原因),但似乎不可能。

我缺少配置脚本的参数,还是我忽略的安装后步骤?

1 个答案:

答案 0 :(得分:1)

您可以在ffmpeg源目录中的现有位置包含rtpenc.h标头。由于该标头不会产生任何目标代码,因此生成的二进制文件不会是ffmpeg库的衍生作品,但是如果您希望可以在自己的代码中编写兼容的结构定义并使用指针访问ffmpeg结构/使用您自己的定义定义的变量。

要小心,因为该结构不是ffmpeg的公开组件,并且在不同版本中可能会在没有警告的情况下发生变化。