-
大小: 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\li
文件 2 2018-09-26 14:58 MF摄像头实时显示和生成wmv文件\MFRealTimeDisplay\Debug\li
文件 2 2018-09-26 14:58 MF摄像头实时显示和生成wmv文件\MFRealTimeDisplay\Debug\li
文件 2 2018-09-26 14:58 MF摄像头实时显示和生成wmv文件\MFRealTimeDisplay\Debug\li
文件 2 2018-09-26 14:58 MF摄像头实时显示和生成wmv文件\MFRealTimeDisplay\Debug\li
文件 2 2018-09-26 14:58 MF摄像头实时显示和生成wmv文件\MFRealTimeDisplay\Debug\li
文件 2 2018-09-26 14:58 MF摄像头实时显示和生成wmv文件\MFRealTimeDisplay\Debug\li
文件 2 2018-09-26 14:58 MF摄像头实时显示和生成wmv文件\MFRealTimeDisplay\Debug\li
文件 2 2018-09-26 14:58 MF摄像头实时显示和生成wmv文件\MFRealTimeDisplay\Debug\li
文件 2 2018-09-26 14:58 MF摄像头实时显示和生成wmv文件\MFRealTimeDisplay\Debug\li
文件 2 2018-09-26 14:58 MF摄像头实时显示和生成wmv文件\MFRealTimeDisplay\Debug\li
文件 2 2018-09-26 14:58 MF摄像头实时显示和生成wmv文件\MFRealTimeDisplay\Debug\li
文件 2 2018-09-26 14:58 MF摄像头实时显示和生成wmv文件\MFRealTimeDisplay\Debug\li
文件 2 2018-09-26 14:58 MF摄像头实时显示和生成wmv文件\MFRealTimeDisplay\Debug\li
文件 2 2018-09-26 14:58 MF摄像头实时显示和生成wmv文件\MFRealTimeDisplay\Debug\li
文件 2 2018-09-26 14:58 MF摄像头实时显示和生成wmv文件\MFRealTimeDisplay\Debug\li
文件 2 2018-09-26 14:58 MF摄像头实时显示和生成wmv文件\MFRealTimeDisplay\Debug\li
文件 2 2018-09-26 14:58 MF摄像头实时显示和生成wmv文件\MFRealTimeDisplay\Debug\li
文件 2 2018-09-26 14:58 MF摄像头实时显示和生成wmv文件\MFRealTimeDisplay\Debug\li
文件 2 2018-09-26 14:58 MF摄像头实时显示和生成wmv文件\MFRealTimeDisplay\Debug\li
............此处省略103个文件信息
评论
共有 条评论