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

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

文章摘要: (3) 实现继承自CBaseFilter::GetPin,用于返回Filter上各个Pin的数量。 定义一个继承自CRenderedInputPin的类CMpeg4InputPin,用于实现CFilterMpeg4Sender上的输入pin,发送Filter通过该输入pin接收编码Filter输出的数据,然后按一定的规则发送。 这个类必须实现以下功能[2]: (1) 重写方法EndOfStream。 (2) 实现IPin::BeginFlush和IPin::EndFlush两个函数。 (3) 重写方法CBasePin::CheckMediaType进行连接时媒体类

基于DirectShow的MPEG-4视频传输系统的研究与实现,标签:电子小制作,http://www.88dzw.com
   (3) 实现继承自CBaseFilter::GetPin,用于返回Filter上各个Pin的数量。
    定义一个继承自CRenderedInputPin的类CMpeg4InputPin,用于实现CFilterMpeg4Sender上的输入pin,发送Filter通过该输入pin接收编码Filter输出的数据,然后按一定的规则发送。
    这个类必须实现以下功能[2]:
   (1) 重写方法EndOfStream。
   (2) 实现IPin::BeginFlush和IPin::EndFlush两个函数。
   (3) 重写方法CBasePin::CheckMediaType进行连接时媒体类型的检查。
   (4) 重写方法CBasePin:: Receive(),接收Sample并发送
3.2.2 数据的接收Filter的实现
数据的接收其实是要编写一个Source Filter, 这个Source Filter名称为CFilterMpeg4Receiver,也继承自CBaseFilter。这跟发送Filter的实现有些类似,有一点需要注意的是该Filter输出的MediaType的设置。
     Char  MediaType[]=//媒体数据类型,通过在发送端把媒体类型写到一个文件中而得到然后通过语句:CFilterMpeg4Receiver::SetupMediaType((char *)MediaType,88)设置输出数据的MediaType。
    CFilterMpeg4Receiver::SetupMediaType再调用CMpeg4OutPin::SetupMediaType()设置、接收到的媒体数据的格式,
3.2.3 数据的网络传输的实现
 
 
     数据的发送我们采用开源代码JRTPLIB【6】提供的RTP协议栈。最新的JRTPLIB对RFC3550的实现进行了封装,开发人员只要初步了解RTP协议就可以开发出高质量的音视频传输程序。使用JRTPLIB时,只需要通过继承RTPSession类,再重新以下几个函数就可以实现视频数据的接收。

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


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