目前视频流媒体在行业中应用非常广泛,也非常普及,和视频有关的行业基本上都需要接触流媒体技术。不过由于各种项目其需求都不一样,往往都会需要进行专业的流媒体开发,如视频会议、网络直播、远程教学等。
DirectShow标准是流媒体软件中非常重要的,其是基于COM的,为了编写DirectShow应用程序,需要了解COM客户程序编写的基础知识。DirectShow提供了大量的接口,但在编程中发现还是不够方便,如果能构建一个视频捕捉类把常用的一些动作封装起来,那么就更方便了。
DirectShow是一个开放性的应用框架,也是一套基于COM的编程接口。另外,DirectShow还集成了DirectX其它部分(比如DirectDraw、DirectSound)的技术,直接支持DVD的播放,视频的非线性编辑,以及与数字摄像机的数据交换。所以流媒体采集卡支持DirectShow进行开发,对于视频领域应用是非常必须和方便的。目前九视电子系列高清音视频流媒体采集卡中的大部分高清视频采集卡,比如T200AE高清VGA采集卡、T620E双路高清采集卡、T100E高清DVI采集卡等都都支持DirectShow进行开发,另外还带有二次开发包SDK。
目前市面上主流的视频应用软件等都是采用的directshow标准,基于WINDOWS平台,基本都在使用DIRECTSHOW;原因在于任何一个硬件厂家,其驱动程序基本都遵循WINDOWS制定的标准,已经处于垄断状态。这里说的是音视频采集回放。关于音视频压缩传输,可采用开源的协议和自己的协议。这方面有多种方案可以选择,有很多开源的程序可以利用。
流媒体开发最基础的就是VC+DIRECTSHOW;其他都是跨平台的,但是程序的兼容性差,开发时间长。DirectShow可以实现不同格式的媒体文件的解码播放或者格式之间的相互转换,可以从本地机器中的采集设备采集音视频数据并保存为文件,可以接收、观看模拟电视等。