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

标签 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 合规性等原因),但这似乎不可能。

是否有我缺少的配置脚本参数,或者我忽略了安装后步骤?

最佳答案

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

请小心,因为该结构不是 ffmpeg 面向公众的组件,并且可能会在不同版本中毫无警告地发生更改。

关于c - 通过动态链接使用 FFmpeg (libavformat) RTP 数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7431810/

相关文章:

c++ - 单步执行直到退出没有行号信息的函数 __svfscanf_l

ffmpeg 使用 rtmp 无限流式传输音频和视频

bash - 如何将多个文件通过管道传输到 ffmpeg?

udp - 无法显示通过 UDP 使用 GStreamer 流式传输的 h.264 网络摄像头图像

c - 解析RTP流以从松下相机获取MPEG4编解码器的I帧

c - 机器生成的头文件

c - 在 int 和 double 之间进行转换时出现意外结果

javascript - 如何在javascript中使用ffmpeg设置输出视频的帧率

voip - 如何计算RTP中的有效时间偏移量

c - strcmp无法比较链接列表中的字符串