基于DirectShow的MPEG-4视频传输系统的研究与实现

[10-10 20:42:03]   来源:http://www.88dzw.com  电子制作   阅读:8219

文章摘要: RTP协议具有如下特点[5]:(1)灵活性 RTP协议的数据报文和控制报文使用不同的端口,数据流和控制流分离,这样大大地提高了协议的灵活性,处理也简单。(2)支持多播 如果下层网路支持,可以支持多播。(3)可扩展性 RTP协议通常为一个具体的应用提供服务,通过一个具体的应用进程实现,而不作为OSI体系结构中单独的一层来实现,RTP只提供协议框架,开发者可以根据应用的具体要求对协议进行充分的扩展。3 关键技术的实现 该系统的发送端实现思路如下:用USB摄像头采集数据,用Divx 5.1.1 Codec 对采集到的数据进行MPEG-4的编码,然后连到一个发送Filt

基于DirectShow的MPEG-4视频传输系统的研究与实现,标签:电子小制作,http://www.88dzw.com
    RTP协议具有如下特点[5]:
(1)灵活性
    RTP协议的数据报文和控制报文使用不同的端口,数据流和控制流分离,这样大大地提高了协议的灵活性,处理也简单。
(2)支持多播
    如果下层网路支持,可以支持多播。
(3)可扩展性
    RTP协议通常为一个具体的应用提供服务,通过一个具体的应用进程实现,而不作为OSI体系结构中单独的一层来实现,RTP只提供协议框架,开发者可以根据应用的具体要求对协议进行充分的扩展。

3 关键技术的实现

    该系统的发送端实现思路如下:用USB摄像头采集数据,用Divx 5.1.1 Codec 对采集到的数据进行MPEG-4的编码,然后连到一个发送Filter把编码后的数据发送出去。其Filter Graph如图1所示 :

                      图1   发送端的Filter Graph

www.88dzw.com

                  
     在网络带宽比较低的情况下(如十几KBps),数据丢帧现象比较严重,这对于图像质量有很大的影响。我们采用拆帧(拆成1400个字节)以后再发送的方法,来降低丢帧率。接收端收到数据后,再把属于同一视频帧的数据再组起来。
    网络发送接收程序流程图如图3所示:

     
                             图3  网络发送接收程序流程图


    对程序流程图的说明如下:
(1)发送端拆帧的算法如下:

     

   然后把属于同一视频帧的数据组好,发送到解码Filter。
   经过测试(在CDMA1.X网络下),采用拆帧方法传输视频数据比直接发送丢包率更低,传输质量有了很大的提高。
3.3 数据解码及回放的实现
    解码Filter使用的是Divx提供的开源解码器,在接收Filter的后面接上该解码Filter即可,最后接上Renderer Filter就可以把接收到的数据回放出来。
3.4 实现帧率控制功能
    通过在采集设备和编码Filter(DivX Pro(tm) 5.1.1 Codec)之间加入一个帧率控制Filter来实现帧率的控制,该Filter相当于一个视频帧数计数器,每接收到一帧,并不立即把该帧发给下游的编码Filter,而是把计数器的值加1,当计数器的值达到最大值时才把当前收到的帧发出去。在接收端发控制帧率命令给采集端可以很方便的实现帧率的远端控制。
    程序片断如下:

上一页  [1] [2] [3] [4]  下一页


Tag:电子制作电子小制作维修教程知识 - 电子制作