Я осмотрелся и нашел несколько оболочек, таких как SharpFFmpeg (http://sourceforge.net/projects/sharpffmpeg/). и ffmpeg-sharp (http://code.google.com/p/ffmpeg-sharp/). Прежде всего, я хотел использовать ffmpeg-sharp, поскольку его лицензия LGPL, а SharpFFmpeg — это лицензия GPL. Однако при компиляции было немало ошибок. Оказывается, он был написан для моно-компилятора, я пробовал скомпилировать его с помощью моно, но не понял как. Затем я начал вручную исправлять ошибки компилятора, но наткнулся на несколько пугающих ошибок и решил, что лучше оставить их в покое. Поэтому я отказался от ffmpeg-sharp.
Затем я посмотрел на SharpFFmpeg, и он выглядит так, как я хочу: все функции P/Invoked для меня. Однако это GPL? Файлы AVCodec.cs и AVFormat.cs выглядят как порты avcodec.c и avformat.c, которые, как я полагаю, я мог бы перенести самостоятельно? Тогда не придется беспокоиться о лицензировании.
Но я хочу все сделать правильно, прежде чем приступить к кодированию. Должен ли я:
- Написать свою собственную библиотеку C++ для взаимодействия с ffmpeg, а затем заставить мою программу C# взаимодействовать с библиотекой C++, чтобы воспроизвести/ конвертировать видео и т. д.
- Перенести avcodec.h и avformat.h (это все, что мне нужно?) на C#, используя множество DllImports, и написать их полностью на C#?
Что вы думаете?
Может быть, у вас есть какие-нибудь полезные ссылки (возможно, учебное пособие) по использованию FFmpeg?
Подробнее здесь: https://stackoverflow.com/questions/252 ... peg-in-net
Мобильная версия