В прошлом я использовал Managed Direct X и DirectShow.Net для воспроизведения видео на текстуре на простой сетке. Затем я использовал эту же методику для объединения нескольких видеоисточников в единую текстуру, используя различные возможности, представленные через текстуры, чтобы объединить эти потоки вместе. Это был очень интересный эксперимент 2 года назад и был вполне подходящим для этой цели, когда Managed Dirext X все еще разрабатывался и поддерживался (что уже не так) и аналогично с DirectShow.Net - похоже, что он не обновлялся с июля 2007 года.
Я хочу снова вмешаться в это пространство и хотел бы знать, как это можно сделать на С#, без использования API с изношенным или последним сроком службы и как лучше всего подойти к нему.
Это очень легко сделать в WPF.
Используйте два элемента MediaElement, один над другим, и сделайте верхний на 50% прозрачным.
Однако я не думаю, что можно сохранить его в новом видео
вы можете использовать SlimDX библиотеку с открытым исходным кодом, которая почти такая же, как MDX и DirectShow, и иметь поддержку в Vista также в win7.0
Дополнительной опцией является OpenTK; для смешивания кадров, предоставляемых видеопотоком: http://www.opentk.com/doc/graphics
Другим вариантом, с которым я столкнулся сегодня, может быть AForge.net - он содержит пространство имен для воспроизведения видео. http://www.aforgenet.com/framework/samples/video.html и опубликован под лицензией LGPL.
Я сделал это примерно в 2003 году. Мне пришлось использовать небезопасный код, другими словами, указатели для преобразования каждого кадра изображения COPIED из двух видеопотоков в формат RGB и среднего значения каждого пикселя, а затем преобразования в исходный формат. Снижение производительности настолько велико, если вы не используете небезопасный код. Я понимаю, что при работе с потоком видео DirectShow делает магию, автоматически выравнивая многие кодеки для выполнения этого действия. В то же время эти потоки изображений должны быть потокобезопасными и правильно синхронизироваться, что означает много накладных расходов. Но кто-то, кто лучше знает, должен вскочить на это.