Использование структур данных RTP FFmpeg (libavformat) посредством динамического связывания

Я хочу использовать структуры данных RTP (например, RTPMuxContext в libavformat/rtpenc.h), предоставленные libavformat FFmpeg, однако они, похоже, недоступны при следующей установке:

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), но это не представляется возможным.

Есть ли параметр для сценария настройки, который я упустил, или шаг после установки, которым я пренебрег?


person ericreeves    schedule 15.09.2011    source источник


Ответы (1)


Вы можете просто включить заголовок rtpenc.h из его существующего местоположения в исходном каталоге ffmpeg. Поскольку этот заголовок не создает никакого объектного кода, полученный двоичный файл не будет производной работой библиотеки ffmpeg, но если вы хотите, вы можете просто написать определение совместимой структуры в своем собственном коде и получить доступ к структуре ffmpeg с помощью указателя/ переменная, определенная с использованием вашего собственного определения.

Будьте осторожны, потому что эта структура не является общедоступным компонентом ffmpeg и может изменяться без предупреждения в разных версиях.

person pentashagon    schedule 15.09.2011
comment
Это действительно сработало, когда я сделал символическую ссылку на заголовок в /usr/local/include/, поэтому ваш подход кажется правильным. Спасибо! - person ericreeves; 15.09.2011