DirectShow 学习方法
DirectShow(简称 DShow) 是一个 Windows 平台上的流媒体框架,提供了高质量的多媒体流采集和回放功能。
这篇博客主要是简单讲下如何学习 Direct Show 框架,避免让自己少走一点弯路。
一、学习途径
先介绍一下学习 Direct Show 的几个途径。
DirectShow MSDN:Direct Show 作为微软官方开发的一个框架,在 MSDN 上自然也有官方教程,下载了Windows SDK还有一些基础的 sample(样例)可供参考学习。但是文档都是英文的,如果英语不好,可以用浏览器上的翻译插件观看,或者去找前人的译文也可以(例如Directshow完整介绍)。
书籍:这里推荐《DirectShow开发指南》和 《DirectShow实务精选》,虽然是十多年前写的,年代有点久远,但还是可以参考一下的。
搜索引擎:搜索 Direct Show 相关教程,还是有很多大神的博客和开源代码可以借鉴学习一下的。
二、忽略编程,理解架构
Direct Show是套架构,不要用学习软件应用的思想去学习。之前一边学一边想怎么编程应用,怎么具体实现,最后搞的云里雾里,建议初学者在刚学习时先别管怎么写出具体编程实现,要先简单理解架构。
模块化思想
DirectShow 的架构 MSDN 上面说的很清楚,我以后也会稍作总结,其主要思想是模块化处理,每个功能被划分为一个模块,一层层处理,一层层传递。对此,需要弄清的概念有 Filter , FilterGraph , Pin 等。相信也很容易弄清这些。
处理流程(FilterGraph)的编程实现
MSDN 的教程告诉了我们怎样将图形化的创建过程用代码实现,有文件 playback ,视频音频的采集等,以及 GraphFilter 的应用细节,可以参考着去掌握这个处理流程。
DirectShow 学习方法的更多相关文章
- FFMPEG视音频编解码零基础学习方法-b
感谢大神分享,虽然现在还看不懂,留着大家一起看啦 PS:有不少人不清楚“FFmpeg”应该怎么读.它读作“ef ef em peg” 0. 背景知识 本章主要介绍一下FFMPEG都用在了哪里(在这里仅 ...
- [总结]FFMPEG视音频编解码零基础学习方法
在CSDN上的这一段日子,接触到了很多同行业的人,尤其是使用FFMPEG进行视音频编解码的人,有的已经是有多年经验的“大神”,有的是刚开始学习的初学者.在和大家探讨的过程中,我忽然发现了一个问题:在“ ...
- [转载] FFMPEG视音频编解码零基础学习方法
在CSDN上的这一段日子,接触到了很多同行业的人,尤其是使用FFMPEG进行视音频编解码的人,有的已经是有多年经验的“大神”,有的是刚开始学习的初学者.在和大家探讨的过程中,我忽然发现了一个问题:在“ ...
- [总结]FFMPEG视音频编解码零基础学习方法【转】
本文转载自:http://blog.csdn.net/leixiaohua1020/article/details/15811977 在CSDN上的这一段日子,接触到了很多同行业的人,尤其是使用FFM ...
- 【NLP】基于统计学习方法角度谈谈CRF(四)
基于统计学习方法角度谈谈CRF 作者:白宁超 2016年8月2日13:59:46 [摘要]:条件随机场用于序列标注,数据分割等自然语言处理中,表现出很好的效果.在中文分词.中文人名识别和歧义消解等任务 ...
- 统计学习方法 --- 感知机模型原理及c++实现
参考博客 Liam Q博客 和李航的<统计学习方法> 感知机学习旨在求出将训练数据集进行线性划分的分类超平面,为此,导入了基于误分类的损失函数,然后利用梯度下降法对损失函数进行极小化,从而 ...
- 斯考特·杨(Scott Young)快速学习方法
上午在网上看到了斯考特·杨(Scott Young)的快速学习方法,感觉很受鼓舞. 现在已经读研究生了,可是发现自己自从上大学以来到现在,发现自己的学习方法有很大的问题. 我是个特别喜欢读书的人,在大 ...
- win7 x64 vs2010 directShow开发环境配置
近来工作需要,要用dirrectShow写一个视频播放的demo验证自己的想法.开发环境配置了好久都没有成功,最后终于弄完,现在记录下来,以后有同学遇到同样问题,可以以此法解决. windows SD ...
- 【转】我的技术学习方法 — Anytao
原文作者:anytao—王涛 他的著作:<你必须知道的.Net> 关于这个问题,也有不少刚刚入行的朋友向我问起.我想可能一千个人就有一千个答案,我不能保证自己的想法适合于所有的人,但是这确 ...
随机推荐
- 新手入门:python的安装(一)
windows下python的安装 -----因为我是个真小白,网上的大多入门教程并不适合我这种超级超级小白,有时候还会遇到各种各样的问题,因此记录一下我的安装过程,希望大家都能入门愉快,欢迎指教 - ...
- Spring 中AOP及前后置增强案例
1.AOP面向切面编程 面向切面编程的本质:面向切面编程,指扩展功能不修改源代码,将功能代码从业务逻辑代码中分离出来. 1主要功能:日志记录,性能统计,安全控制,事务处理,异常处理等等. 2主要意 ...
- Seven Kinds of Testers - 七种类型的测试
最近读了James大叔的一篇总结Tester类型的文章,获益良多.原文叫做Seven Kinds of Testers(链接:http://www.satisfice.com/blog/archive ...
- laravel使用Dingo\Api通过response()->json()返回空对象
laravel使用Dingo\Api写接口跟android对接时,android一直反应解析错误,无法解析数据. { "status_code":200, "messag ...
- js-xlsx 实现前端 Excel 导出(支持多 sheet)
之前写文章介绍了使用 js-xlsx 实现导入 excel 的功能,现在再介绍一下如何使用 js-xlsx 进行 excel 导出. [实现步骤] 1. 首先安装依赖 npm install xlsx ...
- 使用 Powershell 远程连接 windows server
使用 Powershell 远程连接 windows server Intro 最近我们的开发环境增加了一个 windows 服务器,没有界面的,不能直接远程桌面连上去管理,需要使用 Powershe ...
- python3报'ascii' codec can't encode characters in position 0-7: ordinal not in range(128)解决方法
运行前指定export PYTHONIOENCODING为utf-8 如 export PYTHONIOENCODING=utf-8; python main.;y
- C#关闭多线程程序
Process[] processes = System.Diagnostics.Process.GetProcesses(); //获得所有进程 foreach (Process p in proc ...
- String trim() ,去除当前字符串两边的空白字符
package seday01;/** * String trim() * 去除当前字符串两边的空白字符 * @author xingsir */public class TrimDemo { pub ...
- ES6复制拷贝数组,对象,json数组
扩展运算符的应用spread打散数组[...] (1)复制数组 数组是复合的数据类型,直接复制的话,只是复制了指向底层数据结构的指针,而不是克隆一个全新的数组. const a1 = [1, 2]; ...