AVS流媒体系统研究与实现

2022-09-12

为了实现及验证AVS在流媒体领域的应用, 推进AVS在IPTV、网络视频等领域的产业化进程, 我们设计并实现了一套基于ISMA规范的AVS流媒体系统。下面分别从协议框架、服务器端的方案、客户端的设计和实现等几个方面对系统进行阐述。

1 协议框架

为了尽量与ISMA体系结构兼容, 在我们所设计的AVS流媒体传输框架中, 除了媒体编码格式外其它部分都基本保持了与ISMA的一致性。

(1) 媒体格式:视频部分采用AVS标准第二部分定义的编码格式。由于A V S的音频部分还没有最终定稿, 系统暂时采用M P 3音频格式替代。

(2) 媒体传输:同时支持R T P/A V P/U D P传输模式和R T S P&R T P/A V P/T C P交织传输模式。

AVS视频的RTP净载格式采用了一种与RFC 3984 (H.264 RTP净载格式) 相兼容的净载格式。为了兼容于H.264的N A L (网络抽象层) 语法, 在这种净载格式中将AVS视频比特流中每两个相邻的起始码前缀之间的数据 (不包含起始码前缀, 但包括起始码值) 映射成一个NAL单元, 并在起始码值前添加一个字节的N A L单元头。

(3) 媒体控制:采用RTSP协议来控制AVS流媒体会话过程。

(4) 媒体描述:采用SDP协议描述AVS流媒体会话。SDP会话描述信息通过RTSP命令交互传输。

(5) 媒体存储:基于ISO基媒体文件格式和M P E G-4文件格式并与A V C文件格式相兼容。

2 服务器端实现

服务器端同时支持点播和广播方式的流媒体传输, 其中广播又可分为现场直播和播放列表广播 (文件轮播) 两种方式。两种方式都需要事先生成的会话描述文件 (.sdp) 来交换连接和媒体信息。客户端则可以通过指定不同的会话描述文件来选择收看不同的广播节目。

服务器端的实现主要包含流媒体服务器、音视频编码器以及媒体文件封装及媒体内容实时打包几个部分。其中, 流媒体服务器采用了支持ISMA规范的Darwin Streaming Server作为流媒体服务器, 其可以针对上文所述的主要功能生成符合ISMA规范的点播源、直播源和广播源, 并能够较完整地支持ISMA规范中所规定的其他操作和内容。

应的gg视频编码器采用联合信源AVS编码器作为标准编码核心, 其不仅可以生成符合A V S第二部分标准的视频节目流, 还可以完成框架中的离线文件编码和实时视频编码两大功能。

在媒体文件封装及媒体内容实时打包的实现上, 我们自主开发了AVSCreator和AVSLive系统, 其网络传输方式和文件格式分别符合AVS规定并兼容于I S M A规范中的相应要求, 其中AVSCreator主要针对静态媒体文件的封装和复用;而AVSLive则针对实时媒体码流封装成符合要求的ISMA码流。

Avs Creator负责将AVS基本流文件封装为符合AVS媒体存储格式的文件 (.asm) , 并实现音视频等多路媒体流的复用。为了让流媒体服务器在发送文件时感知如何封装RTP分组, Avs Creator程序还需要根据不同媒体的RTP净载格式规范为复用后媒体文件中的每一个媒体流 (轨道) 创建一个提示轨道 (hint track) 。

A V S L i v e用作与音视频实时编码器配合的R T P实时打包, 其根据相应的R T P净载格式规范将音视频编码器输出的基本流打包为一系列R T P分组并提交流媒体服务器实时广播出去。在初始工作时, AVSLive模块首先将解析到的画面尺寸、帧率等视频信息以及采样率、码率等音频信息编辑成一个sdp文件存于流媒体服务器处, 当用户向流媒体服务器请求该s d p文件时, 流媒体服务器随即建立转发关系, 即通过流媒体服务器完成将AVSLive模块实时打包的直播节目转发到用户的工作。

3 客户端

客户端的任务是与流媒体服务器交互并接收ISMA规范的码流以及提取出音视频ES流分别送至相应的解码器解码。在实现中我们采用Direct Show开发了与基于Windows Media Player插件的完全兼容的基于ISMA网络接口的AVS流媒体播放器, 其具体由两个filter构成——负责解析协议并接收处理数据的RTSP_source filter和负责AVS流媒体解码的AVS_decodecfilter, RTSP_source负责与流媒体服务器进行交互、建立连接、分析码流并解复用出AVS视频基本流和MP3音频基本流分别送至相应的解码器解码并还原。

当客户端要点播或收看服务器上的某个AVS节目时, 播放器首先与流媒体服务器之间建立一条RTSP会话连接, 并发送RTSP命令向服务器请求自己想要的内容。在点播方式中, 服务器根据播放器所请求的.asm文件生成一组SDP (会话描述协议) 信息并发送至客户端;在广播方式中, 服务器直接从播放器所请求的.sdp文件中读取SDP信息并发送至客户端。播放器在正确解析收到的SDP描述信息之后, 再次请求服务器以RTP/AVP/UDP传输模式将节目中的不同媒体流分别发送至不同的U D P端口, 或者以R T S P&R T P/A V P/T C P交织传输模式将所有媒体流的RTP分组复用后以单个流的形式通过T C P连接发送过来。在后一种传输模式中, 播放器需要首先将收到的媒体流进行解析复用。A V SR T P和M P 3R T P分别负责对收到的A V SR T P分组和MP3 RTP分组进行解析, 并重新组装为一个完整的视频帧或音频帧, 然后分别提交相应的解码器进行解码。媒体同步机制根据不同媒体RTP分组中所携带的时间戳信息来协调解码器操作, 以实现音视频媒体的时间同步和实时连续播放。

摘要:本文首先通过媒体格式、媒体传输、媒体控制、媒体描述和媒体存储五个方面对ISMA流媒体体系结构进行分析和介绍, 随后提出了兼容于ISMA规范的完整的端到端AVS流媒体系统的设计方案, 并就介绍了该方案在现实工作中的具体实现。

关键词:ISMA,AVS,流媒体

参考文献

[1] http://www.isma.tv.

[2] GB/T 20090.2-2006, 先进音视频编码, 第2部分:视频[S].信息技术, 2006.

本文来自 99学术网(www.99xueshu.com),转载请保留网址和出处

上一篇:情感表达在声乐演唱中的重要性研究下一篇:浅谈“互联网+”中小企业发展电子商务的问题