• 大小: 26.68MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-08-02
  • 语言: 其他
  • 标签: MEDIAFOUNDAT  

资源简介

用MEDIA FOUNDATion 抓取摄像头视频信息,也可以抓取音频信息,然后生成WMV视频文件,此代码部分参考微软提供资料

资源截图

代码片段和文件信息

//////////////////////////////////////////////////////////////////////////
//
// device.cpp: Manages the Direct3D device
// 
// THIS CODE AND INFORMATION IS PROVIDED “AS IS“ WITHOUT WARRANTY OF
// ANY KIND EITHER EXPRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//////////////////////////////////////////////////////////////////////////
#include “stdafx.h“
#include “MFCaptureD3D.h“
#include “BufferLock.h“

const DWORD NUM_BACK_BUFFERS = 2;

void TransformImage_RGB24(
    BYTE*       pDest
    LONG        lDestStride
    const BYTE* pSrc
    LONG        lSrcStride
    DWORD       dwWidthInPixels
    DWORD       dwHeightInPixels
    );

void TransformImage_RGB32(
    BYTE*       pDest
    LONG        lDestStride
    const BYTE* pSrc
    LONG        lSrcStride
    DWORD       dwWidthInPixels
    DWORD       dwHeightInPixels
    );

void TransformImage_YUY2(
    BYTE*       pDest
    LONG        lDestStride
    const BYTE* pSrc
    LONG        lSrcStride
    DWORD       dwWidthInPixels
    DWORD       dwHeightInPixels
    );

void TransformImage_NV12(
    BYTE* pDst 
    LONG dstStride 
    const BYTE* pSrc 
    LONG srcStride
    DWORD dwWidthInPixels
    DWORD dwHeightInPixels
    );


RECT    LetterBoxRect(const RECT& rcSrc const RECT& rcDst);
RECT    CorrectAspectRatio(const RECT& src const MFRatio& srcPAR);
HRESULT GetDefaultStride(IMFMediaType *pType LONG *plStride);


inline LONG Width(const RECT& r)
{
    return r.right - r.left;
}

inline LONG Height(const RECT& r)
{
    return r.bottom - r.top;
}


// 静态表的输出格式和转换功能。
struct ConversionFunction
{
    GUID               subtype;
    IMAGE_TRANSFORM_FN xform;
};


ConversionFunction   g_FormatConversions[] =
{
    { MFVideoFormat_RGB32 TransformImage_RGB32 }
    { MFVideoFormat_RGB24 TransformImage_RGB24 }
    { MFVideoFormat_YUY2  TransformImage_YUY2  }      
    { MFVideoFormat_NV12  TransformImage_NV12  }
};

const DWORD   g_cFormats = ARRAYSIZE(g_FormatConversions);


//-------------------------------------------------------------------
// 构造函数
//-------------------------------------------------------------------

DrawDevice::DrawDevice() : 
    m_hwnd(NULL)
    m_pD3D(NULL)
    m_pDevice(NULL)
    m_pSwapChain(NULL)
    m_format(D3DFMT_UNKNOWN)
    m_width(0)
    m_height(0)
    m_lDefaultStride(0)
    m_interlace(MFVideoInterlace_Unknown)
    m_convertFn(NULL)
{
    m_PixelAR.Denominator = m_PixelAR.Numerator = 1; 

    ZeroMemory(&m_d3dpp sizeof(m_d3dpp));
}


//-------------------------------------------------------------------
// 析构函数
//-------------------------------------------------------------------

DrawDevice::~DrawDevice()
{
    DestroyDevice();
}


//---------------

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     208384  2018-09-26 14:58  MF摄像头实时显示和生成wmv文件\Debug\MFRealTimeDisplay.exe

     文件    1619944  2018-09-26 14:58  MF摄像头实时显示和生成wmv文件\Debug\MFRealTimeDisplay.ilk

     文件    6269952  2018-09-26 14:58  MF摄像头实时显示和生成wmv文件\Debug\MFRealTimeDisplay.pdb

     文件       3617  2018-09-25 12:00  MF摄像头实时显示和生成wmv文件\MFRealTimeDisplay\BufferLock.h

     文件     121839  2018-09-26 14:58  MF摄像头实时显示和生成wmv文件\MFRealTimeDisplay\capture.wmv

     文件     142866  2018-09-26 14:34  MF摄像头实时显示和生成wmv文件\MFRealTimeDisplay\Debug\ABout.obj

     文件       5602  2018-09-26 14:58  MF摄像头实时显示和生成wmv文件\MFRealTimeDisplay\Debug\cl.command.1.tlog

     文件     134872  2018-09-26 14:58  MF摄像头实时显示和生成wmv文件\MFRealTimeDisplay\Debug\CL.read.1.tlog

     文件       8952  2018-09-26 14:58  MF摄像头实时显示和生成wmv文件\MFRealTimeDisplay\Debug\CL.write.1.tlog

     文件     176448  2018-09-26 14:30  MF摄像头实时显示和生成wmv文件\MFRealTimeDisplay\Debug\device.obj

     文件          2  2018-09-26 14:58  MF摄像头实时显示和生成wmv文件\MFRealTimeDisplay\Debug\link-cvtres.read.1.tlog

     文件          2  2018-09-26 14:58  MF摄像头实时显示和生成wmv文件\MFRealTimeDisplay\Debug\link-cvtres.write.1.tlog

     文件          2  2018-09-26 14:58  MF摄像头实时显示和生成wmv文件\MFRealTimeDisplay\Debug\link.10508-cvtres.read.1.tlog

     文件          2  2018-09-26 14:58  MF摄像头实时显示和生成wmv文件\MFRealTimeDisplay\Debug\link.10508-cvtres.write.1.tlog

     文件          2  2018-09-26 14:58  MF摄像头实时显示和生成wmv文件\MFRealTimeDisplay\Debug\link.10508.read.1.tlog

     文件          2  2018-09-26 14:58  MF摄像头实时显示和生成wmv文件\MFRealTimeDisplay\Debug\link.10508.write.1.tlog

     文件          2  2018-09-26 14:58  MF摄像头实时显示和生成wmv文件\MFRealTimeDisplay\Debug\link.11368-cvtres.read.1.tlog

     文件          2  2018-09-26 14:58  MF摄像头实时显示和生成wmv文件\MFRealTimeDisplay\Debug\link.11368-cvtres.write.1.tlog

     文件          2  2018-09-26 14:58  MF摄像头实时显示和生成wmv文件\MFRealTimeDisplay\Debug\link.11368.read.1.tlog

     文件          2  2018-09-26 14:58  MF摄像头实时显示和生成wmv文件\MFRealTimeDisplay\Debug\link.11368.write.1.tlog

     文件          2  2018-09-26 14:58  MF摄像头实时显示和生成wmv文件\MFRealTimeDisplay\Debug\link.11452-cvtres.read.1.tlog

     文件          2  2018-09-26 14:58  MF摄像头实时显示和生成wmv文件\MFRealTimeDisplay\Debug\link.11452-cvtres.write.1.tlog

     文件          2  2018-09-26 14:58  MF摄像头实时显示和生成wmv文件\MFRealTimeDisplay\Debug\link.11452.read.1.tlog

     文件          2  2018-09-26 14:58  MF摄像头实时显示和生成wmv文件\MFRealTimeDisplay\Debug\link.11452.write.1.tlog

     文件          2  2018-09-26 14:58  MF摄像头实时显示和生成wmv文件\MFRealTimeDisplay\Debug\link.1152-cvtres.read.1.tlog

     文件          2  2018-09-26 14:58  MF摄像头实时显示和生成wmv文件\MFRealTimeDisplay\Debug\link.1152-cvtres.write.1.tlog

     文件          2  2018-09-26 14:58  MF摄像头实时显示和生成wmv文件\MFRealTimeDisplay\Debug\link.1152.read.1.tlog

     文件          2  2018-09-26 14:58  MF摄像头实时显示和生成wmv文件\MFRealTimeDisplay\Debug\link.1152.write.1.tlog

     文件          2  2018-09-26 14:58  MF摄像头实时显示和生成wmv文件\MFRealTimeDisplay\Debug\link.11796-cvtres.read.1.tlog

     文件          2  2018-09-26 14:58  MF摄像头实时显示和生成wmv文件\MFRealTimeDisplay\Debug\link.11796-cvtres.write.1.tlog

............此处省略103个文件信息

评论

共有 条评论

相关资源