试论基于RTP协议和MPEG-4的流媒体(下)
来源:互联网 发布:淘宝上卖坚果怎么样 编辑:程序博客网 时间:2024/05/16 17:41
4、系统实现
本系统由3个部分构成:压缩编码、流媒体服务器和客户端播放软件构成。
4、1 压缩编码
压缩编码部分采用optibase公司的MPEG-4MovieMaker400实时编码器,基于PCI视频编码平台的MPEGMovieMaker400使用BSP-15芯片Optibase视频编码运算法则和音频软件编码,它在低码流下提供高质量的视频传输。一个MPEGMovieMaker400编码卡有能力去同时编码两路MPEG-4ISMA,而且每一路可以按3种不同的编码流传输,在同一PC机中最多可插入6块MPEGMovieMaker400编码卡且从12个不同的源提供36个编码流的输出,为各种应用程序提供了广阔的编码容量和应用前景,另外只需使用板卡附带提供的SDK就可对其进行进一步的设计和实现。在MPEG-4MovieMaker400实时编码器中要通过RTP传输MPEG-4音视频流,因此需要对MPEG-4音视频数据进行打包,加上时间、同步等信息。由于在MPEG-4中是对每个VOP单独进行编解码的,因此以VOP为单位进行打包既提高了效率又充分利用了MPEG-4的编码特性。另外为了不造成IP碎片,包长必须不超过该网络路径的MTU(MaxiumTransitUnit)。考虑到传输的高效性和丢包的鲁棒性,取包长为当前VOP大小与路径MTU值的较小值,采用如下组包机制:若当前VOP能放入单个RTP包,就把此VOP单独放入一个RTP包中;若放不下,则把VOP分段,放入多个RTP包,此时须把VOP头部信息复制到每个RTP包,以去除包间的相关性,达到丢包的鲁棒性;为减小包数,降低开销,一包中能放入多少宏块就尽可能多地放入多少宏块,但即使最后一个包中仍有剩余空间,也不能把另一VOP中的宏块放入此包中。
RTP包封装MPEG-4数据的算法描述如下:
While(MPEG-4数据流结束前)
{If(发现下一个VOP起始码)
{If(当前分段长度≤去除头部字段长度的路径MTU值)
{把此段数据打入RTP包}
else
{把尽可能多的宏块打入RTP包}
}
else
{对剩余数据打包}
}
另外,只要使用插件,目前MPEGMovieMaker400能够传输到一般播放器中如:QuickTime,RealOne以及WindowsMediaPlayers,因此只需客户端安装optibase提供的专门的MPEGMovieMaker400插件,就可以使用多种主流播放器观看本流媒体系统提供的流媒体文件了。
- 试论基于RTP协议和MPEG-4的流媒体
- 试论基于RTP协议和MPEG-4的流媒体(下)
- 试论基于RTP协议和MPEG-4的流媒体 (上)
- 基于RTP协议和MPEG-4的流媒体系统分析与实现
- 基于RTP协议和MPEG-4的流媒体系统分析与实现
- 基于RTP协议和MPEG-4的流媒体系统分析与实现
- 基于RTP协议和MPEG-4的流媒体系统分析与实现
- 基于RTP协议和MPEG-4的流媒体系统分析与实现
- RTP协议和MPEG-4的流媒体分析与实现
- 基于MPEG-4和RTP的网络视频监控系统研究
- 基于MPEG-4和RTP的网络视频监控系统研究
- 基于MPEG-4和RTP的网络视频监控系统研究
- 基于MPEG-4和RTP的网络视频监控系统研究
- 基于rtp的h264流媒体的传输机制和实现
- 基于rtp的h264流媒体的传输机制和实现
- 流媒体协议rtp、rtsp和rtcp
- 基于TCP的RTSP/RTP流媒体传输
- 基于HTTP的流媒体协议
- Foj 1649 Prime number or not
- FindControl的几种用法(zzfrom:http://hi.baidu.com/stylelee/blog/item/290817a774160396d1435831.html)
- 轻量级 Web 服务器(转)
- IBATIS
- 试论基于RTP协议和MPEG-4的流媒体 (上)
- 试论基于RTP协议和MPEG-4的流媒体(下)
- Linux下RTP编程(上)
- Linux下RTP编程(下)
- 想象有多美好人生就有多美好
- 正则表达式口诀及教程
- 内核线程
- 实时传输协议RTP相关资料
- 利用VC++实现局域网实时视频传输
- jquery实现div跟随滚动条移动 不闪烁