J'ai quelques fichiers de conteneurs vidéo contenant de l'audio et de la vidéo dans divers codecs. J'aimerais maintenant inspecter le conteneur d'un script Python pour savoir quel codec est utilisé pour l'audio + vidéo. Ceci est sur une boîte Linux, donc j'ai tous les outils disponibles si nécessaire. P>
Je pensais que peut-être que Gstreamer puisse m'aider ici mais je n'ai pas pu trouver une API qui pourrait m'aider ici. P>
Des idées? Je suis également ouvert pour toute suggestion, n'a pas besoin d'être Gstreamer aussi longtemps que c'est un logiciel libre :-) fs p>
3 Réponses :
Essayez de télécharger la source FFMPEG et examinez la source de leurs programmes de ligne de commande. J'ai piraté des utilitaires similaires dans le passé. Je n'ai pas publié ma solution car FFMPEG aime changer leur API, mon ancien code est donc peu susceptible de compiler avec la version actuelle. Vous voudrez faire suffisamment de travail pour créer un contexte de codec, que vous pouvez inspecter pour obtenir ce dont vous avez besoin. P>
Quelques autres alternatives: P>
Cela signifie donc qu'il n'y a pas de bibliothèque qui peut renvoyer cette information?
J'ai regardé Pyffmpmpeg mais je ne pouvais pas comprendre comment obtenir les informations que je voulais. En outre, il ne compile pas sur mon Mac sans échéance étendue dans les listes de diffusion, et même cela me donne simplement une erreur de bus 10 lorsque j'essaie d'ouvrir un fichier avec elle.
Vous pouvez utiliser Decodebin2 dans Gstreamer. Jetez un coup d'œil à TAE pour des exemples de code. P>
ffprobe -show_format -show_streams -loglevel quiet -print_format json YOUR_FILE Just invoke this with subprocess.check_output and you'll get a beautiful JSON description of your media file. If you need it to grab the data from stdin, replace YOUR_FILE with pipe:0.ffprobe comes with ffmpeg.