视频服务器开发知识

视频服务器开发包括软件与硬件方面。
就硬件方面,主要是增加总线带宽,装载更多的内存等等,这些方面本文不讨论。本文关注视频服务器软件的开发。
1.功能
视频服务器或者称为流服务器(Streaming Server),其主要功能包括两个:
a.VOD(Video On Demand),也就是把用户请求的视频文件按播放速率发送给客户端。同时还要处理用户的
"Trick Play"请求。如快进,快退,暂停,SEEK播放等。
b.列表播放,即读取一组视频文件,按指定的播放模式(顺序,随机,加权等)向指定的目标地址发送

视频文件封装格式
目前,主流的视频文件封装格式有以下几种:
TS流:mpeg2的系统流,目前,考虑到与MPEG2设备的兼容等,MPEG4,H.264也采用了这种文件封装格式,TS流封装已成为
视频点播节目的主流.
MP4封装:ISMA组织认可的封装结构.同时也是3GPP的封装格式,如果在无线流媒体发展的话,应该重视之.
AVI封装:古老的封装格式,一般不做流文件格式.
RM封装:Real公司的封装格式,在互联网的流媒体点播上有很大的市场.
ASF/wmv封装:微软公司的Media 9封装格式,在互联网的流媒体点播上也有很大的市场.
文件系统
通常,视频服务器处理的是大文件,采用通用的文件系统并不合适.所以如果有提高服务器的吞吐能力,需要开发专用的文件系统.
视频编解码
从本质上来说,视频服务器是一个网络播放器.
这个播放器的特点是:1.不需要解码显示;只需按播放次序把视频流数据发送到网络上;2.单机要支持很多并发的播放.
基于这个特点,我们必须对本地播放一个节目在显示支持的流程非常清楚,才能更好地设计视频流数据传送模型.

利用开源项目快速掌握视频服务器开发
目前,网上与视频服务器开发相关的开源项目比较多,著名的有:
a.Darwin Streaming Server
该项目开发很久了.主要处理mp4文件的点播,列表播放
b.FFMpeg
该项目好像很久没有进展了
c.VLC
这个项目,大家一般以为是一个播放器的项目,其实他包括了列表播放的功能.同时,有助于大家理解各种文件封装格式.