Как я могу смешать два потока видео в C #?

2

В прошлом я использовал Managed Direct X и DirectShow.Net для воспроизведения видео на текстуре на простой сетке. Затем я использовал эту же методику для объединения нескольких видеоисточников в единую текстуру, используя различные возможности, представленные через текстуры, чтобы объединить эти потоки вместе. Это был очень интересный эксперимент 2 года назад и был вполне подходящим для этой цели, когда Managed Dirext X все еще разрабатывался и поддерживался (что уже не так) и аналогично с DirectShow.Net - похоже, что он не обновлялся с июля 2007 года.

Я хочу снова вмешаться в это пространство и хотел бы знать, как это можно сделать на С#, без использования API с изношенным или последним сроком службы и как лучше всего подойти к нему.

Теги:
video
video-processing

5 ответов

3
Лучший ответ

Это очень легко сделать в WPF.

Используйте два элемента MediaElement, один над другим, и сделайте верхний на 50% прозрачным.

Однако я не думаю, что можно сохранить его в новом видео

  • 0
    Я думаю, что это действительно интересная идея для того, что кажется довольно простой реализацией этой проблемы. Я собираюсь сделать снимок и посмотреть, что еще я могу сделать с видеощеткой.
2

вы можете использовать SlimDX библиотеку с открытым исходным кодом, которая почти такая же, как MDX и DirectShow, и иметь поддержку в Vista также в win7.0

  • 0
    Я не слышал об этой библиотеке раньше, спасибо за указание на это. Если я в конечном итоге пойду по тяжелой дороге подъема - я проверю это.
1

Дополнительной опцией является OpenTK; для смешивания кадров, предоставляемых видеопотоком: http://www.opentk.com/doc/graphics

1

Другим вариантом, с которым я столкнулся сегодня, может быть AForge.net - он содержит пространство имен для воспроизведения видео. http://www.aforgenet.com/framework/samples/video.html и опубликован под лицензией LGPL.

0

Я сделал это примерно в 2003 году. Мне пришлось использовать небезопасный код, другими словами, указатели для преобразования каждого кадра изображения COPIED из двух видеопотоков в формат RGB и среднего значения каждого пикселя, а затем преобразования в исходный формат. Снижение производительности настолько велико, если вы не используете небезопасный код. Я понимаю, что при работе с потоком видео DirectShow делает магию, автоматически выравнивая многие кодеки для выполнения этого действия. В то же время эти потоки изображений должны быть потокобезопасными и правильно синхронизироваться, что означает много накладных расходов. Но кто-то, кто лучше знает, должен вскочить на это.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню