
DirectX
文章平均质量分 89
DirectX
优惠券已抵扣
余额抵扣
还需支付
¥9.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
毛毛虫的爹
这个作者很懒,什么都没留下…
展开
-
C#使用directx播放视频
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using Microsoft.原创 2017-06-01 15:30:22 · 2045 阅读 · 0 评论 -
把连续动态bmp转换为avi
把动态bmp24转换为aviBYTE tmp_buf[1024*768*4];//生成avivoid BMPtoAVI(CString szAVIName, CString strBmpDir){ CFileFind finder; strBmpDir += _T("\\*.bmp"); AVIFileInit(); AVISTREAMINFO strhdr; PAVIFIL原创 2014-11-07 14:54:33 · 2920 阅读 · 0 评论 -
ffmpeg tutorial01--------提取视频图像
概要电影文件有很多基本的组成部分。首先,文件本身被称为 容器Container,容器的类型决定了信息被存放在文件中的位置。AVI和Quicktime就是容器的例子。接着,你有一组流,例如,你经常有的是一个音频流和一个视频流。(一个流只是一种想像出来的词语,用来表示一连串的通过时间来串连的数据元素)。在流中的数据元素被称为帧Frame。 每个流是由不同的编码器来编码生成的。编解码器描述了实际的数据是原创 2014-11-25 11:04:38 · 2275 阅读 · 0 评论 -
如何创建Filter的属性页
本篇文档我们将要讲述如何给一个filter创建一个属性页,通过CBasePropertyPage基类。这篇文档的实例代码演 示了创建属性页的步骤,这里我们假设我们要创建属性页的视频filter支持饱和度属性页,这个属性页有一个滑动条,用户可以通过这个滑动条来控制饱和 度。第一步,设置属性的机理Filter必须支持一种和属性页沟通的方式,通过属性页可以设置或者获取filter的属性,下面是可能的三种原创 2014-10-17 17:32:31 · 2896 阅读 · 0 评论 -
DirectX:在graph自动连线中加入自定义filter(graph中遍历filter)
为客户提供的视频播放的filter的测试程序中,采用正向手动连接的方式(http://blog.youkuaiyun.com/mao0514/article/details/40535791),由于不同的视频压缩格式,导致这种方式的缺点是不能及时的播放任意的视频文件。现在,采用在自动连线的graph中添加自己的filter:过程如下:1. 构建自动连线graph;2. 在graph中查找render filt原创 2014-10-30 09:39:25 · 2465 阅读 · 0 评论 -
directX视频播放------手动连接
IGraphBuilder *pigb = NULL;IMediaControl *pimc = NULL;IMediaEventEx *pimex = NULL;IVideoWindow *pivw = NULL;IMediaSeeking *pims = NULL;ICaptureGraphBuilder2 * g_pCaptureBuilder = NULL;IBaseF原创 2014-10-28 09:50:47 · 3288 阅读 · 0 评论 -
查找IFileSourceFilter上的Pin
创建了IFileSourceFilter,可IFileSourceFilter好像不是从IBaseFilter继承来的,没有EnumPins,那应该怎么查找IFileSourceFilter上的pin啊?IGraphBuilder *pigb = NULL;IMediaControl *pimc = NULL;IMediaEventEx *pimex = NULL;IVideoWind原创 2014-10-27 18:19:32 · 1850 阅读 · 0 评论 -
Filter组件开发中的SDK基类分析
DirectShow SDK提供了一套开发Filter的基类源代码。基于这些基类开发Filter将大大简化开发过程。1、CBaseObject大部分SDK类都从CBaseObject类(参见combase.h)中继承而来的。[cpp] view plaincopyclass CBaseObject { private: // Disable the copy construc原创 2014-10-09 15:50:05 · 2090 阅读 · 0 评论 -
DirectX:函数可以连接任意两个filter
函数可以连接任意两个filterHRESULT ConnectFilters( IBaseFilter *pSrc, IBaseFilter *pDest ){ IPin *pIn = 0; IPin *pOut = 0; IEnumPins *pOutEnum; IEnumPins *pInEnum; PIN_DIRECTION ThisPinDir; HRESULT hr =原创 2014-10-27 19:20:45 · 1577 阅读 · 0 评论 -
获取Filter的三种途径
一、通过CLSID[cpp] view plaincopyprint?IBaseFilter *pF = 0; HRESULT hr = CoCreateInstance(clsid, 0, CLSCTX_INPROC_SERVER, IID_IBaseFilter, reinterpret_castvoid**>(&pF)); 二、通过系统枚举器[cpp] view pl原创 2014-10-09 17:47:07 · 2398 阅读 · 0 评论 -
DirectShow中写push模式的source filter流程 + 源代码(内附详细注释)
虽然网上已有很多关于DirectShow写source filter的资料,不过很多刚开始学的朋友总说讲的不是很清楚(可能其中作者省略了许多他认为简单的过程),读者总希望看到象第一步怎么做,第二步怎么做....这样的demo。其实写你的第一个filter是有一定难度的,只要过了这关以后就容易多了。由于最近需要自己写一个push推模式的source filter,加上刚激活了Blog,不好意思Blo原创 2014-10-08 18:01:32 · 2507 阅读 · 1 评论 -
Direcshow中视频捕捉和参数设置报告
Direcshow中视频捕捉和参数设置报告1. 关于视频捕捉(About Video Capture in Dshow)1视频捕捉Graph的构建一个能够捕捉音频或者视频的graph图都称之为捕捉graph图。捕捉graph图比一般的文件回放graph图要复杂许多,dshow提供了一个Capture Graph Builder COM组件使得捕捉graph图的生成更加简单。Capture原创 2014-09-29 17:40:55 · 2741 阅读 · 0 评论 -
FFMPEG的像素格式
pixel format definitions More...#include "libavutil/avconfig.h"#include "version.h"#include "old_pix_fmts.h"Go to the source code of this file.Macros#define AVPALETTE_SIZE 1024 #define AVPALETTE_COU原创 2014-11-25 15:38:47 · 4596 阅读 · 0 评论 -
FFMPEG:压缩之H264编码(YUV420P->H264)
void CTest0Dlg::OnButton5() { // TODO: Add your control notification handler code here int nWidth = 720; int nHeight= 576; av_register_all(); avcodec_register_all(); AVFrame *m_pYUVFrame = new AVFrame原创 2014-11-26 14:31:55 · 5565 阅读 · 1 评论 -
C#中使用DirectX实现视频播放
一.Direct X SDK 9.0安装及类库介绍:.Net FrameWork SDK中并没有包含Direct X SDK,所以为了顺利的完成本文后 面介绍,必须先下载、安装Direct X SDK。具体的下载地址为: http://download.microsoft.com/download/a/c/d/acdfb557-266f-4af4-8673- 6ab8009b4ddd/dxsdk_原创 2017-06-02 10:39:15 · 3672 阅读 · 1 评论 -
多个同类型编码视频切换时,只改变SourceFilter,不改变Filter Graph中其他Filter的C#实现
大概测试了一下,如果直接RenderFile播放的话,视频之间从上一个视频Stop到下一个视频Run之间 所需的时间为下面方法的至少3倍时间,对于采用同一种视频编码的多个视频,可以采用只改变SourceFilter,而其他Filter不用改变的方式来切换视频。实现方式如下,注意需要 DirectShowLibNETDirectShowLibNET - A library to allow .NET原创 2017-06-02 10:39:35 · 550 阅读 · 0 评论 -
Mixed mode assembly is built against version 'v1.1.4322' of the runtime and...问题——C# DirectXSound
1.问题描述:现在.NET版本一般是4.0,本人在编译低版本的.NET程序在4.0上运行时出现了“Mixed mode assembly is built against version 'v1.1.4322' of the runtime and......”错误——具体是这样的,运行程序没有任何反应,Debug的时候报这个错误。 2.解决方案:对于这个问题,Microsoft的说法是原创 2017-06-02 15:18:54 · 843 阅读 · 0 评论 -
SDL 在指定窗口中绘图
SDL默认会自动创建绘图窗口,可以通过设置环境变量,让其在指定窗口绘图。代码如下: [cpp] view plaincopyprint?char sdl_var[64]; sprintf(sdl_var, "SDL_WINDOWID=%d", m_screen.GetSafeHwnd());//主窗口句柄 SDL_putenv(sdl_var); 注意:环境设置必需在SDL_In原创 2014-12-02 10:39:10 · 3630 阅读 · 0 评论 -
DirectX--Filter属性页的调用
IEnumFilters* pEnum; HRESULT hr ; if (pigb) { hr = pigb-> EnumFilters(&pEnum); if (FAILED(hr)) { return ; } IBaseFilter* pFilter = NULL; while (pEnum->Next(1, &pFilter, NULL) =原创 2014-12-18 08:49:54 · 2122 阅读 · 0 评论 -
用DirectShow实现视频采集-流程构建
DirectShow作为DirectX的一个子集,它为用户提供了强大、方便的多媒体开接口,并且它拥有直接操作硬件的能力,这使得它的效率远胜于用GDI等图形方式编写的多媒体程序。前面一篇文章已经对DirectShow作了粗略的介绍,阐述了它的原理及一些编程方法。这里结合实践中运用DirectShow实现视频采集(WIN32)来加深对DirectShow的理解和操作能力。1.系统环境及开发环境 l原创 2014-09-29 14:44:27 · 3243 阅读 · 0 评论 -
如何使用DirectDraw直接显示RGB、YUV视频数据(播放yuv)
1.在DirectDraw中创建YUV表面 与一般表面不同的是,创建YUV表面时需要指定象素格式,并指定YUV数据的FourCC码,关于FourCC码可以参考微软MSDN站点上的说明,下面是具体的创建方法:(以YUV4:2:0格式为例,其中drawwidth和drawheight是欲显示图像的宽度和高度,以象素为单位)LPDIRECTDRAW7 lpDD; //原创 2013-11-09 09:39:09 · 2864 阅读 · 1 评论 -
MFC下用sdl 显示bmp、rgb、yuv
#include "SDL.h"#ifdef TEST_VGA16 /* Define this if you want to test VGA 16-color video modes */#define NUM_COLORS 16#else#define NUM_COLORS 256#endifSDL_Surface *screen;void display_b原创 2013-08-16 18:11:06 · 4181 阅读 · 0 评论 -
FFMPEG:H264解码-SDL显示(RGB32、RGB24、YUV420P、YUV422)
//添加的库:avcodec.lib avdevice.lib avfilter.lib avformat.lib avutil.lib swscale.lib SDL.lib extern "C"{ #include #include #include #include #include };void SaveFrame(AVFrame *pFrame, int width, int原创 2014-11-25 17:45:55 · 5142 阅读 · 0 评论 -
ffdshow
ffdshowffdshow是一套免费的编解码软件,可支持H.264、FLV、WMV、MPEG-1、MPEG-2以及MPEG-4等格式视频档。ffdshow本身并不包含媒体播放器,但各种媒体播放器都可以使用ffdshow进行解码。目录1简介▪ 功能▪ 组件▪ 版本说明2音视频解码▪ 支持的音视频格式▪ 解码插件3中文版下载1简介编辑功能FFDShow是一款全能的DirectShow解码、编码器,可原创 2014-11-25 09:38:13 · 3953 阅读 · 0 评论 -
如何给filter添加自定义接口及调用
本例子是在VirtualCamera的基础上添加的自定义接口用来实现exe控制osd的显示。1. 接口部分#ifndef __H_MyFilter__#define __H_MyFilter__#ifdef __cplusplusextern "C" {#endif//#include //EXTERN_GUID EXTERN_GUID(IID_IMyFilter, 0xef31f705,原创 2014-10-24 14:47:00 · 2464 阅读 · 0 评论 -
提取DirectShow中视频采集的数据
DirectShow中,数据流(Data Flow)都是依次流过各个Filter的.它对数据的管理也有自己的方法,而且并没有向用户提供一个统一的接口,供用户操作数据流.这里以提取视频采集在的每帧为位图数据为例,说说如何在Directshow中提取数据.这里我们用到了DirectShow提供给我们的接口ISampleGrabber,并定义了一个供它回调的CSampleGrabberCB对象(继承IS原创 2014-09-29 14:41:41 · 2571 阅读 · 0 评论 -
VS2010 C++学习(5):基于DirectShow的视频预览录像程序
VS2010 C++学习(5):基于DirectShow的视频预览录像程序 学习VC++编制的基于DirectShow视频捕获程序,主要练习基于DirectShow程序的应用。 一、 主要内容: 1. 基于DirectShow视频预览;2. 基于DirectShow视频录像; 二、 设计实现原创 2014-01-20 11:14:06 · 2845 阅读 · 0 评论 -
高级DirectDraw
使用高彩模式上一章中说了可以用16位的色彩深度,但是16位的色彩深度的数据表示模式可以有两种:Alpha.5.5.5(or X.5.5.5) 和 5.6.5(这是16位色彩最常用的)。对于使用哪种16位的色彩模式这个是由硬件决定的,我们不能决定。但是我们可以查询,然后按照硬件支持的模式来填写。我们可以调用方法IDIRECTDRAWSURFACE7::GetPixelFormat(),同原创 2013-11-09 11:14:44 · 1968 阅读 · 0 评论 -
directdraw显示rgb555
// TODO: 在此添加控件通知处理程序代码 height=width=widthBytes=0; m_screen.SetWindowPos(&CWnd::wndBottom,0,0,720,576, SWP_NOMOVE | SWP_SHOWWINDOW); UpdateWindow(); main_window_handle = m_screen.GetSafeHwnd()原创 2013-11-15 10:56:10 · 1849 阅读 · 0 评论 -
如何把任意文件隐藏在一张图片里?
准备:1.一张图片 2.一个做试验的mp3文件 3.WinRAR步骤:1:准备一张图片,比如 winshome.jpg。准备目标文件,比如test.mp3。我们要实现把test.mp3隐藏在图片里面。2:把要隐藏的文件 test.mp3 用 WinRAR 压缩。生成 test.rar 压缩包3:打开命令行提示符:点击“开始→运行”,输入“cmd”。4:我们假设中两个文件都存放在原创 2013-11-15 16:05:08 · 2687 阅读 · 0 评论 -
如何使用系统设备枚举器
系统设备枚举器为我们按类型枚举已注册在系统中的Fitler提供了统一的方法。而且它能够区分不同的硬件设备,即便是同一个Filter支持它们。这对那些使用Windows驱动模型和KSProxy Filter的设备来说是非常有用的。系统设备枚举器对它们按不同的设备实例进行对待(译注:虽然它们支持相同Filter)。 当我们利用系统设备枚举器查询设备的时候,系统设备枚举器为特定类型的设备(如,音频原创 2013-11-15 16:03:26 · 2503 阅读 · 0 评论 -
基于DirectShow的MPEG-4视频传输系统的研究与实现
1 引言 近年来,随着国民经济的发展,社会各个部门对于视频监视系统的需求越来越多。但目前的很多监视系统都跟具体的硬件相关,必须要具体的采集卡的支持才能实现。所以有必要开发一种具有通用性的视频监视系统,用普通的摄像头就能实现视频的采集。 基于DirectShow的开发能很灵活地控制音视频的效果,所以选择DirectShow这种可扩展性好的技术做开发对以后的应用升级很有帮助。此外,原创 2013-11-09 09:40:30 · 2278 阅读 · 0 评论 -
初次接触:DirectDraw
第六章 初次接触:DirectDraw 本章,你将初次接触DirectX中最重要的组件:DirectDraw。DirectDraw可能是DirectX中最强大的技术,因为其贯穿着2D图形绘制同时其帧缓存层也是DirectX3D的基础。当然,DirectX8.0中DirectDraw已经完全集成到了DirectX3D里面。此外,如果你对DirectDraw深有了解,那将拥有创建任何DOS16/原创 2013-11-09 11:16:36 · 3919 阅读 · 0 评论 -
SetCooperativeLevel函数介绍(设置协作等级)
函数声明function SetCooperativeLevel(hWnd: HWND; dwFlags: DWORD): HResult; stdcall;参数介绍hWnd DirectDraw具体指向的窗体,在所有的情况下,只需使用主窗体句柄。dwFlags控制标志参数,直接影响DirectDraw和Windows协同工作的方式。下面为说明:DDSCL_A原创 2013-11-11 08:31:26 · 3094 阅读 · 0 评论 -
DirectDraw读书笔记
DirectDraw对象DirectDraw对象是DirectDraw应用程序的核心.它是你在建立DirectDraw应用程序时所要创建的第一个对象,再用它来创建所有其它相关的对象.通过调用DirectDrawCreate函数可以创建一个DirectDraw对象.DirectDraw对象通过IDirectDraw(移动版本仅支持这个),IDirectDraw2,和IDirectDraw4接原创 2013-11-11 09:35:28 · 2069 阅读 · 0 评论 -
在DirectShow的视频图像上叠加线条和文字
在DirectShow的视频图像上叠加线条和文字最近一直在从事工业测量方面的开发工作,难免会用到各种各样的相机,其中支持DX的USB相机开发起来比较方便,由于工作需要经常要在视频图像上叠加线条和文字,图1便是我最近一段时间写的一套工业检测系统,图像是从USB相机中实时获取的。看到网上有些帖子也在讨论这个问题,现在给出我的一个非常简单的思路并附上源代码(vc++6.0编译通过,需要连接USB相机原创 2013-11-13 09:23:32 · 3674 阅读 · 0 评论 -
利用 DirectShow 开发自己的 Filter
学习directshow已经有几天了,下面将自己的学习心得写下来,希望对其他的人有帮助。 Filter实质是个COM组件,所以学习开发Filter之前你应该对com的知识有点了解。Com组件的实质是一个实现了纯虚指针接口的C++对象。 关于com的东西,这里不多讲。一、给vc配置DirectShow的开发环境 无论开发Filter还是开发Dshow的应用程序都要配置一下开发环原创 2013-11-15 16:01:54 · 1859 阅读 · 0 评论 -
directX播放程序
enum PLAYSTATE {Stopped, Paused, Running, Init};PLAYSTATE g_Current=Init;HWND ghApp;HINSTANCE ghInst;HRESULT hr;LONG evCode;LONG evParam1;LONG evParam2; //HRESULT hr; IGraphBuil原创 2014-09-20 08:49:51 · 1855 阅读 · 0 评论 -
directX枚举系统设备类
void CSysEnumDlg::DisplayFullCategorySet(void){ USES_CONVERSION; HRESULT hr; IEnumMoniker *pEmCat = 0; ICreateDevEnum *pCreateDevEnum = NULL; int nClasses=0; // Create an enumerator原创 2014-09-20 08:30:01 · 1934 阅读 · 0 评论 -
directX--关于CSource和CSourceStream (谁调用了fillbuffer)
CSourceStream类,是CSource类的OutputPin[source.h/source.cpp]派生自CAMThread和CBaseOutputPinl 成员变量:CSource *m_pFilter; // The parent of this stream//在构造的时候作为输入参数l 新增加的virtual函数:// Override th原创 2014-11-11 08:10:15 · 2667 阅读 · 0 评论