视频流的显示模块

原创 2004年09月29日 15:50:00

网络服务器端接收到的MPEG-1数据,必须进行一定量的缓冲,然后才能交给DirectShow解码处理。系统动态地一边从网络接收数据,一边进行数据的解码回放。这里介绍一种使用的双缓冲队列技术。<?xml:namespace prefix = o />

双缓冲队列技术的工作原理是,建立两个队列,一个是PoolList,空闲的缓冲队列,用以接收存放数据;另一个是DataList,尚未处理的数据缓冲队列,等待DirectShow处理。当网络接收到一个包的数据,从PoolList队列头取出一个缓冲区,存放数据,并将这个缓冲区加入到DataList的尾部等待DirectShow的Filter读取。DirectShow从DataList队列的头区出一个缓冲区,读取数据,将读完的缓冲区加到PoolList的尾部,等待再一次地接收数据

DirectShow是一个基于COM系统,由许多模块化的软件组件组成的技术。在这个系统中,最基本的构造模块称为过滤器DirectShow将多媒体数据的处理过程分为若干步骤,每一步由一个过滤器来完成。在应用程序中,为了完成对多媒体数据的处理,需要将若干过滤器连接起来,一个的输出作为另一个的输入,这样连接在一起的一组过滤器称为过滤器图。过滤器之间数据传输的细节由插头来处理。插头实际上是一个COM对象,分为输入插头和输出插头。插头相当于过滤器之间的连结点,位于上游的过滤器的输出插头和位于下游的过滤器的输入插头连结在一起。插头知道它们支持的媒体类型并会在两个过滤器初始连接时协商媒体类型。当媒体类型协商完成后,插头会进一步商讨当过滤器图运行时如何传输数据。当原始数据被加入过滤器图时,无论这些数据是来自捕捉卡还是其他数据源,都必须先被解析成有意义的单元,即媒体样本,才能在过滤器图中传递。过滤器图的管理又是由一个更高一级组件来完成的,即过滤器图管理器(FilterGraph Manager)。过滤器图管理器可以对流经过滤器图的数据流执行一些较高级的调用,如运行、停止等.
通常完整的DirectShow过滤器图需要用到3种类型的过滤器:源过滤器、变换过滤器以及实施过滤器。源过滤器接收到原始数据后,经变换过滤器的处理,由实施过滤器输出处理后的数据。

服务器接收到MPEG-1视频源源不断的写入到双缓冲队列中,与此同时图3-14所示的过滤器图将在过滤器图管理器控制下开始运行。这时位于源过滤器MPEG1Source下游的MPEG1Stream Spliter就主动向源过滤器提出数据读取请求。源过滤器接到数据读取请求后就开始从双缓冲队列获取视频数据包,经解包重组后传递给MPEG-1 Stream SpliterMPEG-1StreamSpliter对获得的数据进行解析后转交给其下游的变换过滤器MPEG-1 Video Decoder,由它进行实际的MPEG-1解码。最后由实施过滤器Video Render把解压后的视频图像输出到服务器端的显示器上去。

 

openCV视频流显示

一、灰度图动态显示 灰度图像视频显示编程思路: 在USB接收线程中判断当四幅相移图像接收完成后,进行深度图像计算,并将数据保存在对话框类的成员数组中。同时循环接收USB数据与动态显示灰度图...
  • zengshaoqing
  • zengshaoqing
  • 2016年11月06日 12:07
  • 391

从摄像头或视频文件中读取视频流并显示

实验环境:Windows10 x64 vs2013 + openCV2.4.11实验目的:学习OpenCV使用VideoCapture打开视频流的两种方法,了解视频流的读取,异常检测与处理,图像帧...
  • u013777351
  • u013777351
  • 2016年02月28日 23:55
  • 3207

C# ddraw实现视频流的显示

private DxVBLib.DDSURFACEDESC2 m_sDDOverlayDesc;        private DxVBLib.DirectDrawSurface7 m_pDDOver...
  • feiyu0805
  • feiyu0805
  • 2010年09月02日 10:49
  • 2182

MFC+OpenGL显示视频流图片

由于想做一个应用软件,把目前自己的算法应用出去,给给为研究者提供一丢丢便利,需要在MFC中显示视频流文件。我尝试了两种方法:opencv+MFC;openGL+MFC;这两种方法都可行。但是在使用op...
  • t1234xy4
  • t1234xy4
  • 2016年04月06日 13:47
  • 1434

Android 播放网络视频,视频流的处理

Android支持播放网络上的视频。在播放网络上的视频时,牵涉到视频流的传输,往往有两种协议,一种是HTTP,一种是RTSP。这 两种协议最大的不同是,HTTP协议,不支持实时流媒体的播放,...
  • zhq1363790125
  • zhq1363790125
  • 2015年11月12日 17:24
  • 4008

视频流媒体加密方案

背景: FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证(依据你选择的组件)。它提供了录制、转换以及流化音视频的完整解决方案。 概述: 方案包括视频加...
  • yue471948812
  • yue471948812
  • 2015年01月04日 12:52
  • 2553

Android中获取手机视频流数据

导读:通过MediaRecorder录制。然后绑定一个localsocket,可以获取编码后的视频数据传输;代码如下:package com.pei;import java.io.DataInputS...
  • mengzhengjie
  • mengzhengjie
  • 2014年04月22日 23:15
  • 1223

opencv显示视频流

CvSize cs;   cs.width = nWidth;   cs.height = nHeight;   if (img == NULL)   {    img = cvCreate...
  • du_bingbing
  • du_bingbing
  • 2015年11月20日 17:49
  • 267

树莓派+官方摄像头模块+VLC串流实时输出网络视频流

sudo apt-get update sudo apt-get install vlc sudo raspivid -o - -t 0 -w 640 -h 360 -fps 25|cvlc -vvv...
  • Bobsweetie
  • Bobsweetie
  • 2016年03月06日 19:29
  • 10087

opencv+树莓派+自带摄像头 获取视频

树莓派自带摄像头读取视频 以前没有接触的树莓派的时候觉得这货应该和在Ubuntu差不多,就先写完了程序,调试好了放到树莓派上运行的时候,结果死活不能得到视频一帧,在网上找了很多资料,整理如下。 ...
  • NCTU_to_prove_safety
  • NCTU_to_prove_safety
  • 2017年03月22日 18:44
  • 689
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:视频流的显示模块
举报原因:
原因补充:

(最多只允许输入30个字)