- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
网络电视系统中实现延时续播功能的方案
1 引言
随着IT 的发展,互联网已进入千家万户,人们希望通过互联网来收听收看喜闻乐见的电视节目,流媒体(real-time media)技术的发展为人们提供了这种可能。电视作为典型的多媒体以其丰富的节目内容更加充实了互联网本身,电视和互联网的结合,将逐渐成为发展趋势,网络电视应运而生。网络电视,也叫IPTV,是利用宽带互联网的基础设施,以家用电视机作为主要终端,通过互联网协议(IP)来提供包括电视节目在内的多种数字媒体服务及其增值业务的技术。IPTV最大的优势在于"互动性"和"按需观看",彻底改变了传统电视单向广播的特点。IPTV现在支持直播电视以及基于IP网络的视频点播业务。网络电视已成为当今互联网的亮点,越来越引起各级电视台的重视。
2 网络直播电视基本原理
网络直播电视针对电视台的现场节目(如娱乐晚会,体育比赛等),提供互联网接入方式。直播节目在网络传输上通常采用UDP组播方式,以达到节省网络带宽的目的。
图1中Broadcaster负责对直播节目的模拟信号进行采集、编码,并实时将编码后的数字信号采用RTP/RTCP协议组播出去。对于每一个直播节目频道,Broadcaster会生成一个SDP协议描述文件,描述该频道组播数据流的相关参数,包括组播网络地址、音视频的采样频率等。Player是支持组播功能的流媒体播放器。接收直播电视节目时,Player首先得到该直播频道的SDP文件,通过对SDP文件的解析,获得该直播频道的组播参数,加入组播组,接收组播数据流,收看直播节目。
3 延时续播电视设计与实现
通过网络直播电视,用户可以收看现场节目,突破了传统电视节目的传输模式,但还无法发挥出网络电视"互动性"和"按需观看"的优势。
由于某些原因,用户不能连续收看直播电视节目,比如在收看过程中需要接听电话或者处理其他紧急事务。传统的网络直播电视不能针对这种情况对电视节目做相应的调整,用户只能错过部分直播电视节目。而延时续播电视在这种情况下,可以对直播电视节目做"暂停"处理,当用户处理完手中的事情后再进行"续播"操作就可以从刚才中断的地方继续收看直播电视节目。
3.1 基本原理
延时续播电视的实现需要流媒体服务器的参与,在Broadcaster组播直播节目的过程中,流媒体服务器不间断地接收组播流,对组播流做缓冲处理。当用户进行"延时续播"操作的时候,播放器从接收组播模式转入延时续播模式,将延时的时间参数发送到流媒体服务器,接下来的电视节目数据由流媒体服务器从接收缓冲池中读取,并发送至播放器。
3.2 功能模块设计
3.2.1 接收组播流模块
系统启动时,流媒体服务器读取并解析SDP文件,获得每个直播频道的组播参数,加入组播组,开始接收组播流数据。针对组播的网络特性,在该模块中设置接收缓冲队列,根据接收RTP包的序号对组播流做排序处理,确保将RTP数据按照发送顺序写入缓冲文件。
3.2.2 缓冲文件操作模块
该模块包括将数据写入缓冲文件和从缓冲文件中读取数据的功能。本方案采用了缓冲技术对文件读写操作做优化。对缓冲文件读取时,为了快速定位,需要对缓冲文件按照时间建立索引。由于缓冲文件不断增长变化,缓冲文件的索引也要同步更新,因此需要单独生成索引文件、音频数据文件和视频数据文件。索引项数据结构如下:
typedef struct tagRTPFileIndex
{
time_t lTime; // 索引时间(秒)
int iVideoFileNum; // 视频文件序号
int iVideoOffset; // 视频文件偏移
int iAudioFileNum; // 音频文件序号
int iAudioOffset; // 音频文件偏移
}RTP_FILE_IDX_T;
3.2.3 延时续播请求处理模块
流媒体服务器处理延时续播的流程与正常点播流程大致相同,但是操作的文件由普通流媒体文件改为缓冲文件,定位文件的时间参数也有所不同。本方案的实现中与播放器端约定以点播文件名后缀为"TS"标识延时续播点播请求。同时约定定位文件的时间参数表示点播时间据当前时间的间隔时长。
来源:维库开发网
上一篇:简单网络管理协议的研究与应用
下一篇:激光二极管、稳压二极管检测方法