2011-09-15 3 views
0

Je souhaite utiliser les structures de données RTP (par exemple RTPMuxContext dans libavformat/rtpenc.h) fournies par libavformat de FFmpeg, mais elles ne semblent pas disponibles avec l'installation suivante:Utilisation des structures de données RTP de FFmpeg (libavformat) via une liaison dynamique

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 

Quand je regarde dans/usr/local/include, je vois le répertoire libavformat cependant que quelques fichiers sont là: avformat.h, avio.h et version.h. Bien sûr, lorsque j'essaie d'inclure libavformat/rtpenc.h, j'obtiens "error: libavformat/rtpenc.h: Pas de fichier ou de répertoire"

Je voudrais réaliser cela par liaison dynamique aux bibliothèques FFmpeg (pour Conformité LGPL, entre autres raisons), mais cela ne semble pas possible.

Existe-t-il un paramètre pour le script de configuration qui me manque ou une étape de post-installation que j'ai négligée?

Répondre

1

Vous pouvez simplement inclure l'en-tête rtpenc.h à partir de son emplacement existant dans le répertoire source ffmpeg. Puisque cet entête ne produit aucun code objet, votre binaire résultant ne sera pas un travail dérivé de la bibliothèque ffmpeg, mais si vous voulez, vous pouvez simplement écrire une définition de structure compatible dans votre propre code et accéder à la structure ffmpeg avec un pointeur/variable définie en utilisant votre propre définition.

Soyez prudent car cette structure n'est pas un composant public de ffmpeg et est susceptible de changer sans avertissement dans différentes versions.

+0

Cela fonctionne _did_ quand j'ai symlinked l'en-tête dans/usr/local/include /, donc votre approche semble être la voie à suivre. Merci! – ericreeves

Questions connexes