Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将视频输入/输出卡(例如BlackMagic Design和Decklink)渲染为.NET中的窗口_.net_Video - Fatal编程技术网

将视频输入/输出卡(例如BlackMagic Design和Decklink)渲染为.NET中的窗口

将视频输入/输出卡(例如BlackMagic Design和Decklink)渲染为.NET中的窗口,.net,video,.net,Video,我正在研究将视频输入/输出卡视为窗口的可能性,以便从.NET向其渲染图形。它需要处理透明度的能力,这样我就可以在传入的视频上为渲染的图形设置关键帧 我还没有发现任何能做到这一点的东西——一些SDK允许您渲染图形,但您必须使用它们的API来绘制图形,而不是使用标准的.NET WPF/Windows窗体例程。我将decklink卡与C#一起使用,并执行类似于您希望执行的操作。我使用使用Graphics.FromImage()创建的标准图形对象(GDI+)。在每个帧完成回调时,我在图形对象上绘制,然后

我正在研究将视频输入/输出卡视为窗口的可能性,以便从.NET向其渲染图形。它需要处理透明度的能力,这样我就可以在传入的视频上为渲染的图形设置关键帧


我还没有发现任何能做到这一点的东西——一些SDK允许您渲染图形,但您必须使用它们的API来绘制图形,而不是使用标准的.NET WPF/Windows窗体例程。

我将decklink卡与C#一起使用,并执行类似于您希望执行的操作。我使用使用Graphics.FromImage()创建的标准图形对象(GDI+)。在每个帧完成回调时,我在图形对象上绘制,然后获取一个指向连接位图的指针,并将像素复制到decklink视频帧缓冲区。在复制中,你可以对透明像素做任何你想做的事情(不是复制,而是将输入留在那里等等),基本上你只需要一个指向ARGB曲面的指针(或者你设置的任何格式),你可以将它复制到decklinks帧缓冲区

虽然我不使用视频输入(我正在对静态图像序列进行键控),但从API来看,复制输入帧,然后在其上绘制对象,然后将其复制到输出缓冲区并不困难。SDK中有一些示例(大部分是本机代码,但很容易看到发生了什么),它们提供了一个互操作dll,可以方便地从.net访问API

这里有一个黑魔法开发者的邮件列表,你也应该查看一下


Brian

我用C#和decklink卡,做一些类似于你想做的事情。我使用使用Graphics.FromImage()创建的标准图形对象(GDI+)。在每个帧完成回调时,我在图形对象上绘制,然后获取一个指向连接位图的指针,并将像素复制到decklink视频帧缓冲区。在复制中,你可以对透明像素做任何你想做的事情(不是复制,而是将输入留在那里等等),基本上你只需要一个指向ARGB曲面的指针(或者你设置的任何格式),你可以将它复制到decklinks帧缓冲区

虽然我不使用视频输入(我正在对静态图像序列进行键控),但从API来看,复制输入帧,然后在其上绘制对象,然后将其复制到输出缓冲区并不困难。SDK中有一些示例(大部分是本机代码,但很容易看到发生了什么),它们提供了一个互操作dll,可以方便地从.net访问API

这里有一个黑魔法开发者的邮件列表,你也应该查看一下

布莱恩