Je sais que c'est un défi assez important mais je veux écrire un lecteur/convertisseur de films de base en c# en utilisant la bibliothèque FFmpeg. Cependant, le premier obstacle que je dois surmonter est d'envelopper la bibliothèque FFmpeg en c#. J'ai téléchargé ffmpeg mais je n'ai pas pu le compiler sous Windows, alors j'ai téléchargé une version précompilée pour moi. Ok génial. Ensuite, j'ai commencé à chercher des wrappers C#.
J'ai cherché un peu partout et j'ai trouvé quelques wrappers comme SharpFFmpeg ( http://sourceforge.net/projects/sharpffmpeg/ ) et ffmpeg-sharp ( http://code.google.com/p/ffmpeg-sharp/ ). Tout d'abord, je voulais utiliser ffmpeg-sharp car il est LGPL et SharpFFmpeg est GPL. Cependant, il avait un certain nombre d'erreurs de compilation. Il s'avère qu'il a été écrit pour le compilateur mono, j'ai essayé de le compiler avec mono mais je n'ai pas trouvé comment. J'ai alors commencé à corriger manuellement les erreurs de compilation moi-même, mais je suis tombé sur quelques erreurs effrayantes et j'ai pensé que je ferais mieux de les laisser tranquilles. J'ai donc abandonné ffmpeg-sharp.
Ensuite, j'ai regardé SharpFFmpeg et il ressemble à ce que je veux, toutes les fonctions P/Invoked pour moi. Cependant, il est sous GPL ? Les deux fichiers AVCodec.cs et AVFormat.cs ressemblent à des ports de avcodec.c et avformat.c que je pense pouvoir porter moi-même ? Et je n'aurais pas à me soucier de la licence.
Mais je veux que ce soit bien fait avant de commencer à coder. Je devrais :
- Écrire ma propre bibliothèque C++ pour interagir avec ffmpeg, puis faire en sorte que mon programme C# communique avec la bibliothèque C++ pour lire/convertir les vidéos, etc.
OU
- Porter avcodec.h et avformat.h (est-ce tout ce dont j'ai besoin ?) en C# en utilisant un grand nombre de DllImports et l'écrire entièrement en C# ?
Tout d'abord, sachez que je ne suis pas un grand spécialiste du C++, car je l'utilise rarement, mais j'en sais assez pour me débrouiller. La raison pour laquelle je pense que le numéro 1 pourrait être la meilleure option est que la plupart des tutoriels FFmpeg sont en C++ et que j'aurais également plus de contrôle sur la gestion de la mémoire que si je devais le faire en C#.
Qu'en pensez-vous ? Auriez-vous également des liens utiles (peut-être un tutoriel) pour utiliser FFmpeg ?
0 votes
Duplicata possible de Un solide wrapper FFmpeg pour C#/.NET
0 votes
Pourquoi ne pas faire quelque chose comme C# -> DirectShow -> FFMPEG ? Cela peut être hors sujet, mais assurez-vous également que vous ne finissez pas sur ffmpeg.org/shame.html