Можно ли написать фильтры DirectShow на C # (не на c \ c ++)? - PullRequest
2 голосов
/ 13 февраля 2010

Можно ли писать фильтры DirectShow на C # (не на c \ c ++)?

Я имею в виду не только создание исходных фильтров, но и рендереров или компрессоров и т. Д.?

Ответы [ 5 ]

3 голосов
/ 07 января 2013

Максим Картавенков написал множество полезных статей о DirectShow на codeproject.com .Взгляните на эту статью: Чистые фильтры .NET DirectShow в C # .Он содержит не только исходные фильтры, но и фильтры преобразования, средства визуализации, кодировщики и т. Д.

Код в его статьях не основан на библиотеке directshow.net, что хорошо.

3 голосов
/ 14 февраля 2010

Можно, но это может быть сложно, если вы не очень хорошо знаете DirectShow и .NET. Даже тогда это может быть немного в гору.

Вот пример того, как это делается: http://www.sichbo.ca/Free_Code/100_C_Sharp_directshow_filters

3 голосов
/ 13 февраля 2010

Да, это так. Вы можете использовать DirectShow.net Lib , чтобы помочь устранить разрыв.

У них даже есть образец, если вы посмотрите вниз на страницу, вы увидите описание образца GSSF:

GSSF - общий источник выборки Фильтр - способ реализации источника фильтр в C #. Если у вас есть образцы (для пример видеокадров из растрового изображения файлы), которые вы хотите использовать в качестве источник на графике, этот фильтр будет покажу как.

1 голос
/ 08 ноября 2011

Я думаю, что реализация полного DirectShow-фильтра в C # - плохая идея. C ++ DirectShowBaseClasses очень полезны. Повторная реализация приведёт к полному беспорядку.

Если вы хотите реализовать декодер / кодировщик или какой-либо аудио / видео-эффект, тогда вы можете создать DMO (возможно, в C #, но C ++ будет лучше). Если вам нужен Source-Filter, возьмите Ball-Sample и измените его. Если вам нужны другие типы фильтров, посмотрите на образцы (http://msdn.microsoft.com/en-us/library/windows/desktop/dd375468(v=vs.85).aspx) и измените один.

0 голосов
/ 26 февраля 2010

В основном вы можете экспортировать ваши .NET классы как COM. Чтобы использовать интерфейсы DShow, просто создайте ссылку на объекты CM из своих проектов .NET. В любом случае, написание фильтров DShow в .NET без какой-либо поддержки библиотек, таких как BaseClasses для C ++, может оказаться сложной задачей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...