Использование FFmpeg в .net?C#

Место общения программистов C#
Ответить
Anonymous
 Использование FFmpeg в .net?

Сообщение Anonymous »

Я знаю, что это довольно сложная задача, но я хочу написать базовый проигрыватель/конвертер фильмов на C#, используя библиотеку FFmpeg. Однако первое препятствие, которое мне нужно преодолеть, — это обернуть библиотеку FFmpeg в C#. Я скачал ffmpeg, но не смог скомпилировать его в Windows, поэтому скачал предварительно скомпилированную версию. Хорошо, круто. Затем я начал искать оболочки C#.

Я осмотрелся и нашел несколько оболочек, таких как 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#?
Прежде всего, учтите, что я не очень хорошо разбираюсь в C++, поскольку редко использую его, но знаю достаточно, чтобы обойти его. Причина, по которой я считаю, что вариант №1 может быть лучшим вариантом, заключается в том, что большинство руководств по FFmpeg написаны на C++, и у меня также будет больше контроля над управлением памятью, чем если бы я делал это на C#.

Что вы думаете?
Может быть, у вас есть какие-нибудь полезные ссылки (возможно, учебное пособие) по использованию FFmpeg?

Подробнее здесь: https://stackoverflow.com/questions/252 ... peg-in-net
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»