基于Directshow的H.264网络视频监控客户端实现
基于DirectShow框架的视频监控系统
产品设计与实现监控系统的发展经历了几个阶段,在20世纪90年代初以前,主要是以模拟设备为主的闭路电视监控系统,称为第一代模拟监控系统。
20世纪90年代中期,随着计算机处理能力的提高和视频技术的发展,人们利用计算机的高速数据处理能力进行视频的采集和处理,利用显示器的高分辨率实现图像的多画面显示,从而大大提高了图像质量。
这种基于PC机的多媒体主控台系统,称为第二代数字化本地视频监控系统。
随后,数字视频压缩编码技术日益成熟,多媒体计算机性能不断提高,网络带宽逐步增大,视频监控步入了全数字化的网络时代,称为第三代远程视频监控系统。
第三代视频监控系统以网络为依托,以数字视频的压缩、传输、存储和播放为核心,以智能实用的图像分析为特色,引发了视频监控的技术革命。
它不仅符合社会信息化的发展趋势,而且代表了监控行业的发展方向。
目前,比较好的多媒体开发和视频处理应用程序的技术是微软提出的DirectShow。
Direct-Show是微软公司提供的一套开发包,它与Di-rectX开发包一起发布,是一套在Windows操作平台上处理各种格式的媒体文件的回放、音视频采集等多媒体应用的编程接口,DirectShow给出了一种全新的多媒体数据处理模型,并封装了采集、压缩和解压缩等一系列算法,为视频监控、视频会议等多媒体应用系统的开发提供了良好的平台。
针对远程视频监控的特点,在VisualC++环境下,笔者运用DirectShow框架和IP组播技术,实现了基于MPEG-4格式的网络视频监控系统的开发。
DirectShow是基于COM技术的,有着较强的编程规范和重用性。
运用DirectShow,可以方便地从采集设备上捕获数据,并且进行相应的后期处理乃至存储到文件中。
它广泛地支持各种媒体格式,包括ASF、MPEG、AVI、DV、MP3和WAVE等,使得多媒体数据的回放变得轻而易举。
另外,DirectShow还集成了DirectX其他部分(比如DirectDraw、DirectSound)的技术,直接支持DVD的播放,视频的非线性编辑,以及与数字摄像机的数据交换。
基于Directshow的H.264网络视频监控客户端实现
基于Directshow的H.264网络视频监控客户端实现彭锋;林和志;黄联芬【摘要】In order to realize the real-time broadcasting of H. 264 at video monitoring client, a method that combines Directshow with MFC is adopted. Directshow taken as a drive of the video player receives data from the network, performs cache, decoding and display, and provides the API for MFC, which is used to design UI to control the process of playing. After verification on PC, the player can smoothly play the H. 264 video stream received from network, and the packet loss rate islow. The innovation of this paper is to use Directshow to play smoothly real-time H. 264 stream received from network.%为了实现视频监控客户端对H.264实时播放,采用Directshow与MFC相结合的方法,用Directshow作为视频播放的驱动,从网络接收数据,完成缓存,解码显示及封装成MFC可调用的API,MFC用来设计户界面,对播放过程进行相应的控制,达到了播放从网络接收到的H.264视频的目的.经过PC机上验证,可以流畅地从网络上接收播放H.264视频流,并且丢包率很小.在此用Directshow来实时流畅的播放从网络上接收到的H.264视频流.【期刊名称】《现代电子技术》【年(卷),期】2011(034)008【总页数】3页(P118-120)【关键词】H.264;Directshow;MFC;网络视频监控【作者】彭锋;林和志;黄联芬【作者单位】厦门大学,福建,厦门,361005;厦门大学,福建,厦门,361005;厦门大学,福建,厦门,361005【正文语种】中文【中图分类】TN919-340 引言视频监控以其直观方便信息内容丰富而广泛应用于安保,监控等场合,成为商业,交通,住宅等领域防范的重要手段。
Android平台上H.264视频监控系统的设计与实现
Android平台上H.264视频监控系统的设计与实现随着人们对自身财产安全的越发重视,视频监控技术开始在人们的生活中发挥起了更加重要的作用。
同时经过十多年的发展,移动终端的处理能力,移动网络的传输带宽都提高了很多,视频监控渐渐开始由有线网络视频监控转向移动网络视频监控。
本文的移动视频监控系统中,手机等带摄像头的移动终端不仅可以作为视频采集前端提供监控画面,而且能够同时作为视频播放客户端查看采集前端获得的监控图像。
本文详细介绍了不同移动网络的视频监控技术。
阐述了选用H.264作为视频编解码标准以及基于Android平台进行应用开发所能够带来的优势,并且分析了当前在Android平台上进行H.264应用开发的主流方案。
在此基础上,设计与实现了Android平台上的视频采集端与视频播放客户端。
根据需求分析,本文选择使用Android系统中的Camera类与SurfaceView 类来分别实现视频的采集与播放,使用多媒体库OpenCore中的H.264编解码作为本文的视频解决方案,根据RFC3984协议完成对视频编码数据的RTP格式封装,采用RTP协议来进行实时视频数据的传输。
在实际开发过程中,使用JNI机制将OpenCore中原始C++实现的H.264编解码移植为Android平台可用的.sO动态库,按照RFC3984协议设计了单一包与分片包两种RTP打包模式,使用开源的jlibrtp库来完成采集端的RTP包发送以及客户端的RTP包接收,并在客户端设计了RTP,NAL双缓冲机制来解决RTP包在传输过程中的丢包,乱序问题。
同时,为了方便后续音频通信功能的加入,本文对采集端的视频编码做了优化,在H.264编码的运动估计部分,使用三步法替换原始的全搜索法,可以有效的减少运算量。
经过实际测试,该视频监控系统的采集端与播放客户端运行稳定,操作方便,总体性能良好,能够满足实时视频监控的需求。
同时测试表明,三步法相较于全搜索法能够有效的降低运算量。
基于Directshow的H.264流媒体播放器设计
命令控 制等 ; 其二就是客户端对接收到 的多媒体流实 时解 码 后播 放的技 术 。显然 , 网络 通信 可 以使 用 wn o ssce 技 i w ok t d 术 , 媒 体 流 的解 码 播 放 可 以使 用 dr t o 多 i es w技 术 。本 文 采 e h 用 dr t o i cs w应 用 框 架 , 计 了 网 络 源 ftr h 2 解 码 e h 设 i e 和 .6 l 4 ie 并 ft , 通过 Fl r rp lr ie ah构建 了流媒体播放器 J t G 。
1 D rc h w技术 和 H.6 i to es 2 4视频 压 缩标 准简 介
Dr t o i cs w是微软公 司提供的一套流媒体开发软件包 , e h 为 在 wno s 台 上处 理 各 种格 式 的媒 体 文件 的 回放 、 视 频 采 idw 平 音 集的高性能要求的多媒体应用 , 了完整的解决方案 。。 提供 Dre hw是一套完 全基 于 C M 的应用 系统 , i to es O 该系统位 于 应 用 层 中 , 使 用 Fl r rp 它 ie ah的 模 型 来 管 理 整 个 数 据 流 t G 的 处 理 过 程 ; 与 数 据 处 理 的 各 个 功 能 模 块 叫 Fl r各 个 参 ie ; t Fl r Fl rG ah中按 照 一定 的顺 序连 接成 一 条 “ 水 ie 在 ie rp t t 流 线” 同工作 。Flr 协 ie 是一个 C M 组件 , 功能可 以 由用 户 t O 其 自行 实 现 , i c hwS K 电为 用 户 提 供 了一 些 标 准 的 Fl r D r t o D eS ie t 供 用 户 使 用 。各 个 Fl r FlrG ah中按 一 定 顺 序 通 过 ie 在 ie rp t t
基于DirectShow的无线音视频采集与传输系统的研究
摘要:文中,针对基于3g无线网络的视频会议系统的应用,采用directshow架构,设计音视频数据的采集、编码、网络传输、解码及回放的解决方案,并根据rtp/rtcp协议原理,实现音视频的同步实时传输。在此基础上实现了无线音视频采集与传输系统。关键词:directshow音视频采集rtp/rtc实时传输中图分类号:tp391文献标识码:a文章编号:1007-9416(2011)12-0044-021、引言在信息时代,伴随着视频处理,数字信息存储技术的不断发展,视频会议系统越来越受到人们的青睐。近些年来,基于3g的无线视频会议系统在视频会议系统中更是倍受人们的关注。由于视频信号所包含的信息量大,传输网络所需的带宽也很大,因此需要对采集的视频进行压缩,然后通过网络进行实时传输。本文采用directshow实现音视频采集、压缩以及基于rtp/rtcp协议的无线网络传输,视频压缩采用h.264标准,rtp/rtcp保证音视频实时同步,以此实现无线视频会议系统。2、基本原理2.1 directshow技术directshow是microsoft为了能够简单、有效地进行流媒体处理而推出的一个基于windows平台的流媒体处理开发包。它对流媒体的捕捉、回放提供了强大的支持,使用它还可以在基于wdm(windows device modal)驱动的各种采集卡上进行数据捕捉。基于它的优点我们采用directshow进行视频采集。directshow主要由过滤器图表(filter graph)构成,过滤器图表中包含了各种filter,这些filter能够按一定顺序连接在一起,构成一条流水线,最后交由filter graph manager统一控制。过滤器根据功能不同分为三类[1]:(1)源过滤器(source filter),它引入数据到过滤器图表中,数据来源可以是文件、网络、照相机等。获取的数据传输至下一级过滤器。(2)变换过滤器(transform filters),主要负责数据的格式转换。(3)渲染过滤器(rendering filter),渲染过滤器在过滤器图表里处于最后一级,它们接收数据并把数据提交给外设。2.2视频采集的实现directshow采用wdm驱动模型进行视频捕捉。wdm是纯32位模型,对于不同的设备具有统一的结构,最重要的是directshow与wdm的紧密结合,在系统核心提供了基于wdm的驱动程序的过滤器和接口,大大提高了视频捕获的速度和质量。由于directshow对视频捕获、回放提供了强大的支持,大大增强了系统对不同硬件的通用性和适应性。因此,在directshow开发环境中,通过wdm视频采集过滤器(wdm video capture filter)可以非常简便地对基于wdm驱动的采集卡采集进来的视频数据进行捕捉。基于wdm的采集设备有很多种,本视频采集系统采用的是usb2.0摄像头。视频信号经摄像头进入计算机,然后系统的软件部分通过摄像头的驱动程序来采集视频数据。2.3 rtp(real-time transport protocol)/rtcp (real-time transfer control protocol)协议rtp网络实时传输协议专门用于网络传输多媒体数据流,将需要发送的多媒体数据块(音视频)经过压缩编码后,先送给rtp封装成为rtp分组,rtp分组再装入下层协议运输层的udp用户数据报,然后再向下传递给ip层[2]。rtp协议的设计目的是通过提供实时数据传输中的时间戳信息和分组序列号字段,使接收方通过检测接收到的分组序列号来判断是否有分组丢失,并重新恢复发送时的分组顺序,从而达到使各数据流同步的功能。rtcp是与rtp配合使用的协议,rtp只包含rtp数据,而控制是由另一个不可分割的配套使用的rtcp协议提供的。rtcp协议有以下三个主要功能:(1)监视并反馈rtcp的服务质量;(2)保证传输媒体间的同步性;(3)对多播组中的成员进行标志。rtcp分组同rtp分组一样,也使用udp来传送,区别是rtcp并不对音频视频分组进行封装。由于rtcp的分组很短,因此在一个udp数据报中可以封装多个rtcp分组。被封装的rtcp分组可以周期性地在网上传送,它包含有发送端和接收端对服务质量的统计信息的报告(如已发送的分组数和字节数、分组丢失率、分组到达时间间隔的抖动等)。3、系统的结构设计本系统可用于视频会议直播。在发送端采用ip组播技术,这样可以降低网络上传输的信息包总量,从而减少网络拥塞和冲突的发生;在接收端,也可以通过设置接收缓冲来减少数据的抖动,提高质量。当会议开始时,会议发布者在服务器端,将摄像头和麦克风捕捉的音视频数据经压缩编码后通过3g无线网络发送出去,其他与会者使用移动终端加入该组后,在终端屏幕上播放经解码后的音视频,完成会议的参与。因此,该系统主要由以下几个模块构成,系统结构如图1所示。(1)音视频的采集和回放:采用directshow技术实现音视频数据的采集和回放。该方法基于com技术的优势,可以方便的对音视频数据进行采集,并且使采集到的数据播放流畅,图像稳定。(2)音频的编解码:采用具有开源库的g.729a标准对音频数据进行编码和解码。该标准数据压缩率高,复杂度低,时延小。(3)视频的编解码:采用具有开源库的h.264标准对视频数据进行编码和解码。该标准能提高网络适应能力,具有错误恢复能力。(4)同步处理、数据加密、网络传输、数据解密:采用rtp实时传输协议对音视频数据进行打包、封包传输、解包以保证数据的实时性,并采用rtcp实时传输控制协议提供传输qos监测和拥塞控制、媒体间同步等服务。4、系统的程序实现本系统由服务器端和移动终端两部分组成。服务器端pc基于windows xp平台,程序采用visual studio2005进行编写;移动终端为pocket pc,基于wince平台,程序也是采用visual studio2005进行编写。在开发前,要先安装visualstudio2005和directx 9.0b sdk,并对开发环境进行相应的配置,使其支持directshow的开发。系统中音视频的编解码部分采用的是va_g729a.lib和h264.lib开源库,打包、封包传输、解包部分使用开源的jrtplib.lib。由于wince操作系统提供了和桌面windows操作系统很接近的win32 api,大多数win32 api的函数在wince中都存在。因此,下面程序的实现是以pc平台下的visual studio2005为例,wince下的程序可以方便移植,但对于系统中采用的一些开源库要经过修改才能在wince环境下编译使用。(1)音频的采集和回放:使用directshow的系统设备枚举器枚举,找到我们想要创建的声卡对象。在本文中,我们采集生成一个wave文件,于是还需要加入一个wave dest filter和一个file write filter。static const guid clsid_wavdest ={0x3c78b8e2,0x6c4d,0x11d1,{0xad,0xe2,0x0,0x0,0xf8,0x75,0x4b,0x99}};//注册wavdest组件cocreateinstance(clsid_filtergraph,null,clsctx_inproc_server,iid_igraphbuilder,(void**)&pgraph);//创建filter graph manager实例pgraph->addfilter(psrc,l”capture”);//将capture filter加入filter graph中以实现音频采集”);//将wavdest filter加入filter graph中以实现在结束采集时,再在文件头位置插入一个wave格式的数据块pgraph->addfilter(pwrite,l”file writer”);//将file writer加入filter graph中(2)视频的采集和回放:使用directshow技术,选择视频画面的大小为176*144真彩色,每秒捕获30帧。cocreateinstance(clsid_filtergraph,null,clsctx_inproc_server,iid_igraphbuilder,(void**)&pgraph);//创建filter graph manager实例pgraph->addfilter(psrc,l”vsourcefilter”);//将vsource filter加入filter graph中以实现视频捕获pgraph->addfilter(prender,l”vrenderfilter”);//将vrender filter加入filter graph中以实现
H.264网络监控 手机监控 设置向导
4.手机监控采用辅码流技术,进行手机监控,可支持通道切换。
(以windows mobile手机系统为例)步骤一:DV R设置。
【主菜单】>【系统设置】>【编码设置】,选择启用辅码流;步骤二:启用手机监控功能。
【主菜单】>【系统设置】>【网络服务】>【手机监控设置】,设置端口号;备注:该端口号须进行路由器映射,方可这次手机访问;步骤三:安装配套的手机监控软件。
从光盘获取相应的客户端软件,(WINDOWS MOB ILE对应的智能手机监控客户端MEYE_WM.cab),在手机上进行安装;步骤四:安装成功后,在手机的【开始】>【程序】找到并运行相应的客户端软件(wind ows mob ile 为Moveeye),出现图14界面;图13 手机客户端界面步骤五:手机客户端设置,点击图14右上角设置键,出现图15界面:图14 客户端设置界面用户名:登录设备的用户名;密码:登录设备的密码;服务器:设备的公网I P地址或者域名;端口:为步骤二中设置的端口号;自动连接:选中自动连接时,当打开客户端时会自动连接设备,并调出默认通道的图像;备注:手机监控时DV R需要处于公网联网状态;1.1术语表DDNS(Dynamic Domain Name Server):动态域名服务DNS(Domain Name Server):域名服务器ADSL(Asymmetrical Digital Subscriber Loop):非对称数字用户环线DVR(Disk V ideo Record):硬盘录像机1.简单外网访问设置本功能可以在不需要申请复杂的动态DDNS域名也无需在路由器设置端口映射或者DMZ主机,通过自动获取的域名即可在公网访问设备。
注:使用本功能时,如果设备挂在路由器下面,请确保路由器的UPnP功能处于启用状态。
2.1启用UPNPUPNP设置在路由器“转发规则”-〉“UPNP设置”,启用该服务,如图:2.高级外网访问设置如果您的设备在工厂,而您想在家里访问设备,对设备进行远程监视,则需要进行外网访问设置。
DirectShow的RTP发包(H264)Filter转
DirectShow的RTP发包(H264)Filter转基于DirectShow的框架H.264 RTP Sender Filter开发框架与环境:1.VS2017——⼯具集为V120-VS20132.jrtplib-3.11.1 jthread-1.3.3 编译为32位版3.程序为32位程序4.DirectShow链路图如下(控制台为RTP发送地址与本机端⼝)5.RTP拆包⽅式为FU-A6.x264编码filter为ffdshow codec(本filter⽀持输⼊为H264的sample)7.本程序开源(部分实现借鉴了许多CSDN博客与⼤⽜的程序),请遵守开源协议实现部分有空的话应该会整理个更详细的版本,这⾥主要就说⼀下遇到的问题好了。
实现DirectShow+jrtplib的H264收发包程序,总共⽤时约两周,主要的精⼒和时间花在了RTP协议、RTP拆包与H.264字节流处理、H.264格式的解析上。
1.H.264的NAL单元(NALU)H.264编码实现了⽹络层也就是NAL,其中每⼀个单元(NALU)适⽤于⽹络传输,详细的这⾥不阐述了,捡重点的⽅便⼤家快速理解。
编码器对原始采集视频(图像)进⾏处理后,输出的每⼀帧即是⼀个NALU。
这⾥的每⼀帧包括编码器初始化输出的PPS和SPS。
实际上,我们需要⽤RTP实现的传输,就是从输⼊pin中的数据,提取每⼀帧(NALU),对NALU进⾏打包发送。
H.264编解码,怎样完成?需要怎样保持数据的发送?⾸先,H.264的编码,除了初始化编码器后,输出PPS和SPS外,之后的所有NALU单元,都为I-P-B帧的组合。
其中,I帧为关键帧,解码器遇到这⼀帧后,会清除重置解码器的预测基准(具体请参考H.264编码与运动预测模型),⽽P 帧和B帧则是前向预测帧和双向预测帧。
H.264由于进⾏了运动预测,因此除了I帧外,P帧和B帧仅需要较少的bit进⾏编码,从⽽减少传输的数据量。
基于H.264的网络视频监控系统
基于H.264的网络视频监控系统随着社会的发展,人们对安全的需求不断提高,网络视频监控设备得到不断广泛的应用;同时,以H.264视频压缩标准为代表的视频压缩技术为视频的网络应用提供了良好的应用支持;在应用平台方面,以TI的DM6437为代表的DSP视频开发平台为视频编解码程序的开发、调试和应用提供了良好的环境。
本文设计了基于H.264的网络视频监控系统,该系统是在DM6437EVM平台下开发的。
本文的工作主要包含以下几个方面:1)首先深入学习了视频压缩标准的发展历程和重要的几种视频压缩标准,包括H.120、H.261、MPEG-1、H.262/MPEG-2、H.263、MPEG-4、H.264、H.265等视频压缩标准。
2)研究了DM6437EVM的设计原理包括存储映射、EMIF接口、视频接口和以太网接口以及视频预处理硬件模块TVP5146的结构和功能,设计了视频处理的总体流程。
3)研究了H.264编码技术,包括基本的编解码流程,结构框架,档和层、支持的视频格式、码流格式、帧结构以及H.264可供优化的关键部分包括帧内预测编码、P条带的帧间宏块预测、变换和量化。
相应的理论基础可以应用于H.264码流传输的具体实施和编码优化的实现。
在此基础上设计了H.264标清视频网络监控的软件实施方案。
4)在对X264编码器进行深入研究的基础上,以X264编码器为软件参考模型,经裁剪后成功移植到了DM6437EVM平台上,以实现编码功能。
编码任务同视频采集任务以及网络传输任务相配合,完成编码板的功能;任务间依靠信号灯和队列进行通信。
针对编码效果选择了时延、压缩比和帧率三个指标并分别设计了两种方案去测量。
5)针对X264编码器设计了项目级优化和指令级优化,优化后的测试证明优化手段的有效性。
基于DirectShow的网络视频监测系统的设计与实现
格 式 转 换 、 输 ; ed r gFls主要 负 责 数 据 的 最 终 去 向 , 传 R n e n ie i t 我
S se Usn r c S o y t m i g Die t h w
Xio Zh n h n Lin i a ezo g a g Jn ( c arnc & I fr t n ቤተ መጻሕፍቲ ባይዱe e rh I si t fXi n Ja tn iest . 'n 7 0 4 Me h t is o nomai sac n t ue o " ioo g Unv ri Xi 1 0 9) o t a y a
Ke wo d : vd o mo i r g, i c S o vd o t n miso y r s i e n t i d r t h w,i e r s s i n on e a
l 引 言 伴随着微机和 网络的普及, 流媒体在网络上得 到了广泛 应 用 ,怎样使流媒 体的处理变得简单而 高效 逐渐成为了焦点 问
摘 要 介 绍 了使 用 Drc hw技 术 实现 网络视 频监 测 系统 。 出 了 系统 的体 系结 构 和 具 体 开发 实例 并 重 点介 绍 视 频 i to eS 给
.
传 输 系统 的 基 本 结构 和 实现 过 程 细 节 。
关 键 词 视 频监 测
Drc hW 视 频 传 输 i t0 eS
替 换 硬 件 时 软 件 需 要 做 较 大 改 动 , 限性 很 大 。 ( ) 于 V W 局 2基 F
基于directshow的视频播放器设计与实现
基于directshow的视频播放器设计与实现作者:伍开胜罗宇刘斌来源:《科技视界》 2015年第31期伍开胜罗宇刘斌(西华师范大学计算机学院,四川南充 637000)【摘要】设计并实现了一款基于Directshow的视频播放器,在资源占用上较占优势。
给出了Directshow利用Filter和Filter Graph播放视频的步骤。
之后给出了媒体播放器的基本模块,最后给出了播放器几个功能的具体实现并对比同类软件进行了性能测试。
【关键词】Directshow;Filter;FilterGraph0 引言随着信息技术的发展,多媒体播放器迎来新的挑战。
在多媒体应用技术中,对多媒体大量的数据传输、高效的数据处理、音视频流的同步、媒体流的格式转换,一直是需要解决的主要问题,怎样使流媒体的处理变得简单而富有成效逐渐成为了焦点问题。
而选择一种合适的应用方案,将事半功倍。
本文以微软的Visual C++作为开发工具,以Directshow为框架设计一个能播放RMVB,MP4,AVI等常见格式的播放器。
1 DirectShow概述在DirectShow中,一个应用程序必须实例化一个或者多个过滤器,并将它们连接起来.所有这些过滤器和它们之间的连接被称为过滤器图表(FilterGraph)。
应用程序通过过滤器图表管理器(Filter Graph Manager)来创建相应的Filter Graph.其中,Filter Graph Manager也是个COM组件,它为应用程序提供了建立Filter Graph的各种方法,控制着FilterGraph的运行。
2 Filter和Filter GraphDirectShow是基于模块化,每个功能模块都采取COM组件方式,称为过滤器(Filter)。
Directshow提供了一部分标准的过滤器可直接使用,开发者也可开发自己的功能Filter来扩展Directshow的应用。
下面用一个简单的小例子来说明如何使用Filter来播放一个格式为AVI的视频文件。
基于DirectShow的远程视频监控系统的设计与实现
”l_一应用科掌基于D i r e ct S h o w的远程视频监控系统的设计与实现黄晶晓刘嘉宝傅雷田静陈博逊(四川大学四川成都610065)[摘要】随着第三代监控系统的成熟.利用视频流技术的实时远程视频监控系统也应运而生。
直接使用解压缩算法支持实时播放通用性和移植性差.[关键词]D i r ec t Show远程监控M PE G一4过滤器中图分类号:TP3文献标识码:^文章编号:1671--7597(2∞8)1220123一02一、引曹数字视频压缩编码技术日益成熟,多媒体计算机性能不断提高,网络带宽逐步增大,以网络为依托的第三代监控系统[1]已日趋成熟。
利用视频流技术实现远程实时监控的视频监控系统也应运而生。
直接使用解压算法对视频流实时解压预览,做到边下边看,这种方法效率高,支持实时播放但算法复杂,缺少通用性.软件可移植性较差。
D i r e ct Sh ow是微软公司设计的多媒体开发工具。
简化多媒体应用程序的开发.使开发者不必考虑复杂的流数据格式和不同的终端设备,以及数据同步的问题。
给多媒体程序开发员提供了标准的、统一的、高效的API接口,具有较好的通用性和可移植性.=、宴现曩疆D i re ct S how是基于模块化,每个功能模块都采取c伽组件方式,称Fi l t er,在Di r ec t Sho w中只要拥有相应的分析和解码Fi I t er就可以支持任何多媒体的格式。
Di r ect Show分别提供了Sour ce F i I t er s、T r ans f or m F i l t e r s和Rende r i ng Fi l t er s来支持多媒体数据的采集功能、格式转换传输功能以及显示存储功能这三大功能C2]。
D i r e ct Show对数据的处理实际上就是把不同功能的过滤器连接起来,依次对数据进行相应的处理,然后再传递给下一级的过滤器,其体系结构如图1所示。
Sour ce Fi l t er s主要负责取得媒体数据,它从外部设备获取原始数据并作简单处理,再将数据往下一级过滤器送。
基于directshow的视频播放器设计与实现
DeviceFilter。
图1播放AVI文件的过滤器图管理器
图1中的箭头表示Filter链表中的数据流的方向。
在DirectShow 像上面的这样一个Filter链表我们称为Filter Graph。
一般分为下面几种类型。
(1)源过滤器(Source Filter):源过滤器引入数据到过滤器图中据来源可以是文件、网络、照相机等。
不同的源过滤器处理不同类型的数据源。
(2)变换过滤器(Transform Filter):变换过滤器的工作是获取输入
处理数据,并生成输出流。
变换过滤器对数据的处理包括编解码格式转换、压缩解压缩等。
(3)提交过滤器(Renderer Filter):提交过滤器在过滤器图里处于最后一级,它们接收数据并把数据提交给外设。
Filter有三种状态:运行、暂停、停止,Filter Graph中所有的
图2
具体功能实现
媒体播放器的定位接口的获取、全屏实现、音量控制和静音设置关键代码实例。
首先获取Filter Graph的各个控制接口,查询接口函数的代码如得到播放器控制接口、定位接口等CDXGraph::QueryInterfaces(void)
(mGraph)
HRESULT hr=NOERROR;
得到播放控制接口
|=mGraph->QueryInterface(IID_IMediaControl,
&mMediaControl);
得到媒体事件接口
能上相对于同类软件有一定优势。
DirectShow编程实现摄像头视频捕捉
第三步、配置Sample Grabber以捕获数据。
视频捕捉类CCaptureVideo的具体实现
// CCaptureVideo视频捕捉类头文件/////////////////////////////////////////////////////////////////////#if !defined(AFX_CAPTUREVIDEO_H__F5345AA4_A39F_4B07_B843_3D87C4287AA0__INCLUDED_)#define AFX_CAPTUREVIDEO_H__F5345AA4_A39F_4B07_B843_3D87C4287AA0__INCLUDED_/////////////////////////////////////////////////////////////////////// CaptureVideo.h : header file/////////////////////////////////////////////////////////////////////#if _MSC_VER > 1000#pragma once#endif // _MSC_VER > 1000#include <atlbase.h>#include <windows.h>#include <dshow.h>#ifndef SAFE_RELEASE#define SAFE_RELEASE( x ) /if ( NULL != x ) /{ /x->Release( )
基于DirectShow的H.264视频压缩的实现
filter。
pDevEr删Ⅱ_・咖d口心E叫r眦mor(CLSID一、rldaoInputDevieeCalegOry
&pEnum,0);
pEnup)Next(I,&11Mm.M皿);
pMotl一>BindToObject(0,0,lID—IBaseFih目,(void**)
&gcap
gx_=z,p
如更换成网络传输,就可实现远程的监控或名视 控制整个系统的运行。到此为止,所有的准备工 作都完成了,然后就可以让整个系统开始工作了。
gcap
pMc—Rm();
频会议,所有的这一切都可以在DirectSho、‘r下完
成,这正是DirectShow带给我们的方便。 [参考文献]
执行完这一句后,整个系统开始了运作。然
H2f“E::s呷s,。嘶() I-n64E::T姗djm(IMedia,Cmnpie。pln,IMediaSompie
基于Directshow的H.264解码器的设计与实现
基于Directshow的H.264解码器的设计与实现刘辉;魏玉琛;蒲布【期刊名称】《电子技术应用》【年(卷),期】2011(37)9【摘要】In video surveillance system,for the realization of decoding the video in video surveillance system presents a program for the realization of H.264 video decoder by using Directshow technology. Directshow is a good streaming media construction, which belongs to Windows.It provides the whole solution for returning the separate format media, video/voise collection, and other high quality multimedia application on Windows.%为实现视频监控系统中视频的解码,提出了一个H.264视频解码器在Directshow中的实现方案.Directshow应用程序编程接口是一个基于Windows平台的优秀流媒体架构,它为在Windows 平台上处理各种格式的媒体文件回放、音视频采集等高性能要求的多媒体应用提供了完整的解决方案.【总页数】4页(P139-141,148)【作者】刘辉;魏玉琛;蒲布【作者单位】重庆邮电大学,重庆400065;重庆信科通信工程有限公司,重庆400065;重庆邮电大学,重庆400065;重庆邮电大学,重庆400065【正文语种】中文【中图分类】TP311.1【相关文献】1.CATV网络MPEG-2系统目标解码器在DirectShow上的设计与实现 [J], 赵忠伟2.基于CUDA的H.264并行解码器设计与实现 [J], 陈勇;吴晓民;杨坚;奚宏生3.H.264解码器软件平台的设计与实现 [J], 袁超;周开伦;林涛4.H.264视频解码器的设计与实现 [J], 陈海燕;黄超5.基于DirectShow的H.264视频流过滤器的设计与实现 [J], 鲁漫红;段益群因版权原因,仅展示原文概要,查看原文内容请购买。
基于H.264的视频点播系统客户端的设计
基于 H.264 的视频点播系统客户端的设计陈 彬北京邮电大学电信工程学院,北京(100876) 摘 要:本文通过研究多媒体传输协议、DirectShow 技术和 H.264 标准,设计出一种基于 H.264 的视频点播系统的客户端软件。
实际使用结果表明本文设计的客户端软件具有很好的 可靠性,能提供高质量的视频服务。
关键词:视频点播、客户端、RTP/RTCP、RTSP、DirectShow、H.2641. 引言随着宽带技术的发展, 基于流媒体技术的多媒体业务的应用在网络上也越来越广泛, 人 们追求高质量多媒体业务的脚步一刻也没有停止。
然而, 网络带宽的限制依然是目前Internet 上高清晰度视频业务发展的瓶颈。
如何在有限带宽上提供高质量的视频服务依然是研究的热 点。
H.264/AVC[1]是ITU-T 的视频编码专家组和ISO/IEC 的运动图像专家组联合提出的能同 时适合会话式与非会话式应用的视频编码标准,具有很高的压缩效率和很强的鲁棒性[2],非 常适合于网络传输。
基于这样的背景,我们研究开发了基于H.264 的视频点播系统。
本文将阐述视频点播系统中客户端软件的设计,在设计过程中充分考虑系统的可靠性。
2. VOD(Video On Demand)视频点播系统概述视频点播系统是以多媒体信息主要是视频信息的共享为目的, 实现远程多媒体信息在本 地的播放。
用户可以在客户端平台上以流媒体播放视频素材,其结构示意图如图 1 所示。
系 统采用 C/S 模型,为多用户系统。
一台服务器为多个客户端提供视频服务。
客户端 视频服务器 IP网络客户端图 1 VOD 系统结构本系统采用 H.264 作为视频编码格式。
H.264 采用先进的预测压缩算法,具有很高的视 频压缩效率。
在相同画质的情况下,H.264 的压缩率为 H.263、MPEG-4 的两倍。
H.264 标准 继承了以前视频编码标准中某些优秀的错误恢复工具,并改进和创新了多种错误恢复工具, 使得 H.264 视频流具有很强的鲁棒性。
基于DirectShow的网络视频监测系统的设计与实现
基于DirectShow的网络视频监测系统的设计与实现
肖振中;梁晋
【期刊名称】《计算机工程与应用》
【年(卷),期】2006(042)012
【摘要】介绍了使用DirectShow技术实现网络视频监测系统.给出了系统的体系结构和具体开发实例,并重点介绍视频传输系统的基本结构和实现过程细节.
【总页数】3页(P221-223)
【作者】肖振中;梁晋
【作者单位】西安交通大学信息机电研究所,西安,710049;西安交通大学信息机电研究所,西安,710049
【正文语种】中文
【中图分类】TP393
【相关文献】
1.基于DirectShow的多媒体监测系统软件的设计与实现 [J], 徐常春;邹建华
2.基于DirectShow的网络视频点播系统的设计与实现 [J], 雷文礼;任新成;张栋;高瑛
3.基于Directshow的H.264网络视频监控客户端实现 [J], 彭锋;林和志;黄联芬
4.基于DirectShow和UDP协议的网络视频监控系统 [J], 王安;仲丽媛;孙加军
5.基于DirectShow和RTP的网络视频监控系统 [J], 豆俊锋;赵辽英
因版权原因,仅展示原文概要,查看原文内容请购买。
基于H.264的网络视频监控系统的设计与实现的开题报告
基于H.264的网络视频监控系统的设计与实现的开题报告一、研究背景及意义:随着网络技术的不断发展,网络视频监控系统应用越来越广泛,如公共安全监控、工业监控、交通监控等领域。
作为一种新型的监控手段,网络视频监控系统将传统的视频监控系统完全替代。
网络视频监控系统不仅可以在传输上大大节省人力和物力成本,而且可以实现视频直播、远程访问等功能,进一步提高了监控安全性和效率。
基于H.264的网络视频监控系统,具备更高的压缩率、更低的传输带宽等优势,能够更好地支持高清视频的传输,从而使得监控图像更加清晰,更加准确。
二、研究内容及目的:本课题旨在设计与实现基于H.264的网络视频监控系统,主要包括以下几个方面:1. 分析网络视频监控系统的需求和特点;2. 研究H.264视频编解码技术的原理和实现;3. 设计和实现基于H.264的视频压缩与传输算法;4. 设计和实现网络视频监控系统的客户端和服务器端系统;5. 对系统进行测试和评估,分析系统性能和可靠性。
三、研究方法和步骤:1. 阅读相关文献、资料,了解网络视频监控系统、H.264编解码技术等相关知识;2. 细化系统需求,确定系统功能、性能等指标,并分析系统技术难点;3. 对H.264编解码技术进行深入研究,并寻找相应的编解码库;4. 设计和实现基于H.264的视频压缩与传输算法;5. 设计和实现系统客户端和服务器端,包括系统架构设计、协议设计、数据库设计、网络通信等;6. 对系统进行功能测试和性能测试,并对测试结果进行分析和总结;7. 完成论文写作和答辩准备。
四、预期研究结果本研究将设计和实现基于H.264的网络视频监控系统,具备以下特点:1. 通过H.264编解码技术实现高效的视频压缩和传输,提高监控图像的清晰度和准确度;2. 实现监控视频的实时直播、远程访问等功能,提高监控的效率和安全性;3. 可以有效提高网络资源的利用率,降低网络传输带宽成本,提高系统的可扩展性和稳定性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
修改其中媒体的类型,以及Samlpes的大小和个数。
HRESULT
CNet()utputPin::GetMediaType(int iPosition,
Manager来控制整个数据处理过程并与
应用程序交互。【60按照功能来分,Filter大致可分为3种
类型:
(1)Source
2011年4月15日 第34卷第8期
现代电子技术
Modern Electronics’l'echnique
Apr.2011 V01.34 No.8
基于Directshow的H.264网络视频监控客户端实现
彭 锋,林和志,黄联芬
(厦门大学,福建厦门361005)
摘要:为了实现视频监控客户端对H.264实时播放,采用Direetshow与MFC相结合的方法,用Directshow作为视频 播放的驱动。从网络接收数据,完成缓存,解码显示及封装成MFC可调用的API,MFC用来设计户界面.对播放过程进行相 应的控制,达到了播放从网络接收到的H.264视频的目的.经过PC机上验证。可以流畅地从网络上接收播放H.264视频 流,并且丢包率很小。在此用Directshow来实时流畅的播放从网络上接收到的H.264视频流。 关键词:H.264;Directshow;MFC;网络视频监控
to
control the
of playing.Af—
rate
verification
on
PC,the player
paper
can
smoothly play the H.264 video stream received from network。and the packet loss
use
is
low.The innovation of this
接,pull filter向source filter请求数据,source filter回
{return E_INVALIDARG; ) }
用于Pin上媒体类型的检查,如果主媒体为 Stream,次媒体为H.264,则Pin可以连接成功。 CNetworkReciverFilter为没有注册的Filter,因此 其创建过程如下:
Source
Filter的输出Pin的实现类为CnetOutput—
Pin,由CBaseOutputPin继承而来,主要是完成对Pin
上媒体类型的设置以及Pin连接时媒体类型的检查,其
图2
Directshow系统框图
实现函数是GetMediaType和CheckMediaType,主要
Directshow基本原理是流水线,即将单元滤波器 Filter串联起来建立起相应的Filter Graph,然后通过
流提交给外部设备。外部设备包括文件系统、显卡、声
卡及网卡[7]。
&MEDlASUBTYPE—
Filter的工作模式可分为推模式和拉模式。在推 模式中,source filter产生数据,并将其递交给下游的 filter,下游的filter被动地接收数据并处理它们,再将 数据传递给它的下游filter。其中数据传输的单位为 Sample。在拉模式下,source filter与一个pull filter连
CMediaType。pmt) {/**"R-******************* pint’>InitMediaType(): pmt一>SetType(&MEDIATYPE—Stream); pmt一>SetSubtype(&MEDIASUBTYPE_H264); }
Filters:主要负责获取数据。数据源可
图3推模式下的Filter及数据传送流图 Source Filters从指定的端口号接收网络视频数
据,每接收到一帧就把数据对Samples进任填充,并推 给下一级的Filter。Source Filter的实现类为Cnet— workReciverFilter,由CBaseFilter继承而来。 CNetworkReciverFilter主要是实现了Filter的构 架。它由GetPinCount,GetPin等函数构成[9]。
网络视频监控系统由前端监控设备、视频服务器和
2.1
收稿日期:2010-11.20
万方数据
第8期
彭
锋等:基于Directshow的H.264网络视频监控客户端实现
119
rectX家族一员,是一套基于CoM(Component 0bject Model)的编程接口。Directshow为Windows平台上 处理各种格式媒体文件的回放、音视频采集等高性能要 求的多媒体应用提供完整的解决方案,目前可支持多种 数据格式有ASF、MPG、AVI、MP3和WAV[5],典型的 Directshow系统如图2所示。
7月的H.264—10标准支持多视频流解码,即用户可以
圳
I
Dl。。劬。、v
通过一个视频流采集到多个摄像机的监控情况,因此开 发H.264网络视频监控客户端是安防监控中的重要
部分。
I接收数据I
I传给上芷
M k接收数据
图1
1
客户端系统框图
系统组成与功能
2
Directshow开发 Directshow开发简介 Direetshow是一个开放性的应用框架,属于Di-
is
to
Directshow
to
play smoothly real—time
H.264 stream received from network.
Keywords:H.264;Directshow;MFC;network video monitoring
0引
言
监控终端三大部分组成014 3基于Directshow的H.264 网络视频监控客户端系统组成如图l所示。网卡从网 络接收数据后根据供Directshow的SoureeFilter读取 作为数据源,Diretshow完成对接收数据的处理,包括 存储、解码、显示等部分,并且封装成相应的API,供 MFC调用。MFC完成了界面的设计,以及把Direct— show封装的API作为相应的消息响应函数。而本系 统的重点及难点就在于利用Direetshow完成网络数据
的要求。
Filter以及数据的传送流程如图3所示,根据各个功能 模块分为多个Filter进行开发,最后构建成一个Filter— Graph链路。
Filter的创建用CoCreateInstance函数。代码
万方数据
现代电子技术 如下:
1IKESImI h r
NUlI。
放嵌』℃雄个Hh e r运衍n
process
MFC is adopted.Directsheo player receives
to
—cache.decoding and display,and provides the API for
ter
MFC,which is used
design UI
据分流/合成、解码/编码等。
(3)Rendering
diaType。pMediaType) { if(pMediaType->majortype!一MEDIATYPE-Stream) {return E—INVAI。IDARG; } if(pMediaType->subtype!
H264) =
Filters:主要负责将处理后的数据
2.2
civerFiher((NUI。L.&hr):
CNetOutputPin*NEtoutPutPin=new CNetOutputPin
(&hr。REeirveFilter,L“264Stream’‘);
复分解Filter和解码Filter的创建:下载Elecard
公司的MPEG Push Demultiplexer以及ffdshow的解
(Xiamen University,Xiamen 36
1 005.China)
Abstract:In order rectshow with
tO
realize the real—time broadcasting of H.264
as a
at
video monitoring client。a method that combines Di- data from the network,performs
以是本地文件,网络接收数据,采集卡及数字摄像机。
(2)Transform Filters:主要负责数据的格式转换。
设置了主媒体类型Stream,次媒体类型为H.264。
HRESULT
它是整个滤波器图(Filter Graph)的处理核心,完成数
CNetOutputPin::CheckMediaType(const CMe—
—L
H…r(;ral}h册创也.BuildG ravh荫敏竹先创建r
个Fitte rllr*-ph组仆,然后扶褂一系列的控制接¨接
F米址把自l畦h…rce}’ilIer“段MPE(t I’¨h 建ffdshow蝌码Fiher井H把MI’EG
p
Ih r¨Ll|Ii,
黾
#0
plexer.井将其瀑肌进FiherGraph此时”小能直{妾创
CNetworkReeiverFilter*REeirveFiher=newCNetworkRe—
应请求并传递数据。推模式使用IMemlnputPin接13, 而拉模式使用IAsyncReader接口[8]。 两个滤波器相连的接口是Pin,可以分为输入Pin 和输出Pin且两个相连的Pin必须不同类型。每个Pin 都是滤波器私有对象,滤波器可以动态地创建Pin,销 毁Pin,自由地控制Pin的生存时间。两个滤波器的 Pin相连时。需协商统一数据流的类型、缓存的大小、数 据传送的机制等。