关于如何使用Decklink sdk 9.7.7从BlackMagicDesign Intensity Pro保存图像的问题

时间:2014-01-15 08:49:16

标签: emgucv

我正在尝试使用Decklink sdk从HDMI输入中获取图像,我使用的是Windows 7 64位,Visual Studio C#Express 2010和EmguCV 2.4.0。

我的设置是

_BMDDisplayModeSupport displayModeSupport;             IDeckLinkDisplayMode displayMode = null;

        _BMDDisplayMode setDisplayMode = _BMDDisplayMode .bmdModeHD720p60;
        _BMDPixelFormat setPixelFormat = _BMDPixelFormat .bmdFormat8BitYUV;
        _BMDVideoInputFlags setInputFlag = _BMDVideoInputFlags .bmdVideoInputFlagDefault;

        _deckLinkInput.DoesSupportVideoMode(setDisplayMode, setPixelFormat, setInputFlag, out displayModeSupport, out displayMode);
        _deckLinkInput.SetScreenPreviewCallback( this );

        try
        {
            _deckLinkInput.DisableAudioInput();
            _deckLinkInput.EnableVideoInput(setDisplayMode, setPixelFormat, setInputFlag);
        }
        catch (Exception em)
        {
            Console .WriteLine("deck link init failed: " + em.Message);
        }

        _deckLinkInput.SetCallback( this );

我已启用回调功能,我可能会看到框架进入我的电脑

int frameCount = 0;
public void VideoInputFrameArrived( IDeckLinkVideoInputFrame video, IDeckLinkAudioInputPacket audio)
{
            IntPtr pData;
            video.GetBytes( out pData);
            frameCount++;
            System.Runtime.InteropServices. Marshal .ReleaseComObject(video);
}

现在我想将pData转移到MIplimage,我该怎么做? 我想我必须将帧从YUV传输到RBGA,然后将RBGA帧传输到MIplimage。 我看到使用DirectShow解决问题的示例,但我不熟悉它。 有什么办法搞清楚吗?感谢。

0 个答案:

没有答案