Прокладывание себе путь для создания видео из изображений в C#

Вам нужно использовать отражение, чтобы начать использовать метод, а затем «построить» его, предоставив аргументы типа MakeGenericMethod :

MethodInfo method = typeof(Sample).GetMethod("GenericMethod");
MethodInfo generic = method.MakeGenericMethod(myType);
generic.Invoke(this, null);

. Для статического метода, pass null в качестве первого аргумента Invoke. Это не имеет никакого отношения к универсальным методам - ​​это просто нормальное отражение.

Как уже отмечалось, многое из этого проще с C # 4 с использованием dynamic - если вы можете использовать вывод типа, конечно. Это не помогает в случаях, когда вывод типа недоступен, например, точный пример в вопросе.

18
задан Jim Mischel 11 February 2009 в 23:00
поделиться

4 ответа

После работы с ним некоторое время и взгляда на x264 и VideoLan, я вернулся в Splicer. Оказывается, что загадочное сообщение об ошибке происходило из-за ошибки в моем коде.

похоже, что Splicer сделает то, что я хочу: программно создайте видео из ряда изображений.

Благодаря всем, кто ответил.

10
ответ дан 30 November 2019 в 09:18
поделиться

Можно использовать VideoLan, и я рекомендовал бы это.

у меня был прямой опыт в приложении C# с VideoLan, делающим эти две вещи:

  1. Встраивание средства просмотра VLC в моем приложении C# (существует 3-4 "обертки" C# для средства просмотра VLC).
  2. Используя vlc.exe в отдельном Процессе путем отправки ему параметров командной строки.

то, что VideoLan имеет интерфейс командной строки, является большой вещью. И VLC поддерживает параметр командной строки, который отключает любой визуальный элемент; таким образом, GUI VLC не открывается, и ни один не делает окно командной строки. Таким образом в приложении C# можно сдать связанную с видео работу в аренду клиенту VLC. C# имеет класс Процесса, который может управлять Вашими экземплярами vlc.exe для Вас. Это заканчивает тем, что было крутым решением.

6
ответ дан 30 November 2019 в 09:18
поделиться

Обработка видео в Windows (кодирование и воспроизведение) является реальным болотом. И.NET не собирается помогать Вам вообще - Вы всегда собираетесь быть или встроенными API PInvoking/COM-interoping или использованием обертки.NET, которую кто-то еще создал, чтобы сделать то же.

Так или иначе, я не могу сказать, что использовал его, но хорошая ставка, кажется, x264 библиотека, которая является частью videolan проекта . Это дает Вам автономную библиотеку C, что Вы можете PInvoke, и Вы не должны волноваться об установке и мусоре DirectShow на Вашем сервере. Это генерирует видео формата H.264, которое играемо в Flash насколько я понимаю.

1
ответ дан 30 November 2019 в 09:18
поделиться

Я использовал mplayer mencoder для создания AVI (с кодеками msmpeg4/mp3, читаемый по умолчанию с Windows Media Player) из файлов TGA на Linux как это:

mencoder mf://*.tga -mf fps=25:type=tga \
  -audiofile /tmp/test.mp3 -oac copy \
  -of lavf -ovc lavc \          
  -lavcopts vcodec=msmpeg4v2:mbd=2:mv0:trell:cbp:last_pred=3:vbitrate=3000 \
  -o /tmp/test.avi

я знаю, что mplayer действительно имеет версию Windows.

0
ответ дан 30 November 2019 в 09:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: