流媒体平台设计方案.docx
《流媒体平台设计方案.docx》由会员分享,可在线阅读,更多相关《流媒体平台设计方案.docx(51页珍藏版)》请在冰豆网上搜索。
流媒体平台设计方案
IPTV流媒体平台STB设计方案
版本历史
版本/状态
作者
参与者
起止日期
备注
审核
1.0
初稿
1需求分析
1.1STB功能需求
硬件要求:
音视频编解码格式可升级、预留应用扩展能力、安全可管理。
本项目采用基于媒体处理器/DSP的方案。
存储空间:
基本型机顶盒flash要求16MB以上,RAM要求64MB以上;增强型机顶盒flash要求32MB以上,RAM要求128MB以上。
按键及状态指示:
机顶盒前面板有基本的按键、红外接收指示,有指示灯能指示机顶盒当前的工作状态。
接口要求:
机顶盒后面板有音视频接口、网络、电源、TV等接口,前面板有USB等接口;可选接口:
麦克风、SmartCard、IDE硬盘接口。
遥控器:
可进行声音控制、节目控制,具有上、下、左右、进入和返回操作功能;可选功能:
支持鼠标功能、支持无线电话、手柄等功能。
功耗等其他要求:
基本型机顶盒小于15瓦,增强型机顶盒小于30瓦。
禁用风扇散热。
待机功耗小于8瓦。
机顶盒作为终端设备必须符合在一定条件下(电源、安全、温度、湿度、噪声、电磁)的工作能力。
软件要求:
机顶盒的软件结构应具有方便的可移植性和可扩展性,可以灵活地支持各种应用功能的增减。
机顶盒软件结构可分为三层,依次为实时操作系统、中间层和应用层。
EPG浏览器:
支持管理STB提供的所有业务功能,包括音视频点播内容、音视频广播内容、视频通信、节目查找、节目购买、机顶盒功能设置等。
可选功能:
短信和互动游戏。
2设计目标
2.1IPTV机顶盒总体设计目标
接收来自IPTV系统平台服务器的音频视频流,并将画面输出到电视上显示。
用户采用遥控器来实现所有的操作功能。
具体功能如下:
1.实现机顶盒的基本设置,例如音量、画面、喜爱风格、用户信息注册、查询等功能。
2.接收广播的音频/视频流,实现网络收音机和网络电视,支持媒体格式有:
MP3、WMA/WMV、MPEG-1、MPEG-2、MPEG-4、DivX、XviD。
3.接收点播的音频/视频流,实现网络音频/视频的点播,支持媒体格式如上述。
4.实现个人视频录制功能(PVR)。
5.实现视频会议功能。
6.实现即时通讯功能。
2.2第一阶段目标
实现机顶盒的点播和直播演示功能和简单的终端配置,使用现有的流媒体服务器作为系统平台实现整个系统的演示。
硬件基础:
飞利浦STB810芯片
操作系统:
嵌入式Linux操作系统(内核2.6.xx)。
应用软件:
自行开发终端的EPG导航系统和流媒体播放器。
EPG系统要求支持多级菜单。
播放器的具体支持标准如下:
视频格式:
WMV、MPEG-1、MPEG-2、MPEG-4、DivX、XviD
音频格式:
MP3、WMA
传输协议:
TCP,UDP,RTP,RTSP
3STB体系结构
终端系统主要包括ADSLMODEM、机顶盒、电视机、游戏终端等。
ADSLMODEM主要用于ADSL的调制解调。
机顶盒和电视机最为IPTV内容的解码与输出设备。
机顶盒是媒体流操作的末端设备,分为基本型和增强型两种:
基本型的STB应该包含有一个电子节目指南(EPG)代理用于节目浏览,一个解码器用于解码音频/视频的压缩码流,一个媒体播放器用于与流服务器交互并控制节目选择、特殊播放模式操作和数据流等。
在机顶盒中,还应有一个TV编码器用于将解码后的数字信号转换成模拟电视信号。
而增强型的机顶盒中则可以加入视频电话,视频会议,网络游戏等功能,这样我们还需要做音视频编码,并需要通过呼叫服务器与相应的设备建立信令连接。
视频电话可以单独处理语音信号。
游戏模块可以是一个单独的设备,也可以集成在机顶盒以内。
游戏终端通过其内的嵌入式游戏客户端软件或通过游戏服务器下载相应的客户端软件,通过游戏手柄或遥控器操作,以电视为显示屏,即可玩各种网络游戏,体验真实的网游魅力。
3.1终端的硬件结构
图3.1机顶盒的硬件结构
图3.1给出了一个基本的终端硬件结构,各部分功能如下:
网络接口:
用于IPSTB与宽带网络之间的通信。
基本要求是能够提供ADSL双绞线接口,未来可以支持10/100以太网接口、WiFi无线接口等,对网络通信接口有传输带宽的要求,在下行传送方向上(网络到用户),应能提供足够的带宽,以便音频、视频等流媒体在传送过程中,满足基本的QoS要求,不对用户正在享受的音频、视频造成影响。
在上行方向上(用户到网络),应能保证用户对网络侧流媒体文件的控制操作没有明显的延迟,不会影响用户的娱乐体验。
中心控制单元:
是承载软件的硬件平台,它要求具有一定的处理能力,使得操作系统、协议解析软件、媒体编解码软件和各种应用程序的处理能力得到较好的保证。
同时中心控制单元还要支持足够的Flash和Memory。
音视频输出模块:
完成音频、视频的编码输出。
媒体输出接口用于提供IPSTB向用户媒体播放设备的输出接口,如:
电视、音响、显示器等。
媒体输出接口应包含目前市场主流的视频和音频接口。
用户控制接口:
用于用户通过这些接口完成对IPSTB的控制和操作,这些接口至少要包括红外线遥控接口、面板按键接口、可附加的智能卡接口等,通过这些接口,要保证用户能完成全部的使用操作过程。
IPSTB可以提供扩展的可选用户控制接口,如:
鼠标、键盘等,让用户的操作能够更加简便和快捷。
扩展接口:
主要用于保证IPSTB扩展功能的实现,如:
提供USB口、硬盘接口等,能够在IPSTB上实现音视频节目存储、扩展可视通信终端等。
3.2终端的软件结构
由于Linux强大的功能和开源,免费等特性,拟采用嵌入式Linux来作为STB的软件平台,下面是STB的软件结构。
图3.2机顶盒的软件结构
根据本平台需求,STB的软件结构划分为3层:
内核层:
一个Linux内核,具备内存管理,进程管理和定时器服务;具备硬件的驱动程序;具备文件系统;具备TCP/IP协议栈;具备存储设备。
通常我们不使用XWindow来构建图形系统,所以需要FrameBuffer子模块来直接操作显示区域。
中间层:
提供库函数、必要的系统命令、GUI界面和图形库。
应用层:
提供面向最终用户的各种应用程序,包括Web浏览器,流媒体播放器,Web服务器,本地HTML页面。
对于增强型的机顶盒,可以加入游戏模块,增值业务等模块。
3.3飞利浦IP机顶盒参考平台STB810(拟用方案)
NexperiaSTB810IP参考平台具有以下主要特性:
1.支持H.264MainPro3PAL/NTSC分辨率解码,CABAC解码速率达2Mbps,CAVLC解码速率达2.5Mbps;
2.支持WM9MainandAdvancedProPAL/NTSC分辨率解码;
3.专用2路SDMPEG-2和1路HD流解复用和解码硬件:
高达6倍SD解码;
4.针对所有分辨率的高质量图像定标和解交叉;
5.包括肤色校正、灰度校正、CTI和LTI等画面增强功能;
6.MontaVistaLinux操作系统,WinCE可选;
7.支持常用的中间件如IP、DVB及ATSC;
8.支持条件接收:
DVB、Multi2、DES/3DES和AES;
9.智能卡接口。
NexperiaSTB810IP参考平台包含强大的PNX8550家庭娱乐引擎(HEE)以及最新的AV编解码器,支持视频电话、画质改善、时移录像、DVD回放、存储、个人录像、联网及VoIP等先进功能。
支持高质量H.264及WM9视频格式,具有流媒体及基于ASDL的按次计费电影收看等功能。
STB810包含一个硬件开发平台、软件基础架构、主要编解码器和一些参考实例。
它基于工程师们熟悉的Linux操作系统和基于Linux的软件环境,可加快产品开发,并可与流行的中间件(IP/DVB/MHP)及其它STB软件接口。
STB810在一个单芯片上进行所有数字音/视频处理,提供复杂的视频缩放、解交叉和画质增强功能。
支持广泛的调谐前端,单一平台使制造商能够以最低的开发成本生产出多种终端产品。
该板具有多个接口,如USB1.1、一个用于以太网、WiFi控制器及其它扩展设备的PCI总线,以及用于处理智能卡的专用UART接口。
其视频输出与HDMI设备兼容,使基于该平台的解决方案可以与平板电视和显示器连接。
图3.3STB810的结构
4STB的业务流程
4.1STB首次开通业务注册流程
4.2STB登陆流程
1.机顶盒发送请求消息StbCertifyRequest到接入认证模块.参数包括:
Account、AccountPass、IPAddress、STBID.
2.接入认证模块发送请求消息StbidCertifyRequest到设备认证模块,设备认证模块通过STBID验证机顶盒的合法性。
3.设备认证模块发送请求消息DbStbidCertifyRequest到机顶盒数据库模块,机顶盒数据库模块检验STBID是否存在数据库中。
4.机顶盒数据库模块返回结果消息DbStbidCertifyAnswer到设备认证模块,告知STBID的有效性
5.设备认证模块返回结果消息StbidCertifyAnswer到接入认证模块,告知STBID的有效性。
6.接入认证模块发送请求消息AccountCertifyRequest到客户服务模块,验证帐户的有效性。
参数包括:
Account、AccountPass,IPAddress
7.客户服务模块发送请求消息DbAccountCertifyRequest到客户数据库模块,客户数据库模块通过Account、AccountPass验证机顶盒付费帐户的合法性。
8.客户数据库模块返回结果消息DbAccountCertifyAnswer到客户服务模块,告知帐户的有效性。
9.客户服务模块发送请求消息AccountInfoRequest到门户epg,客户服务模块下发UserToken到门户EPG。
参数包括:
UserToken、BizTypeID、Result。
10.门户EPG根据客户服务模块下发的相关信息,产生IPTVToken;同时根据用户的EPG版本信息,生成电子节目单信息。
返回结果消息到机顶盒StbCertifyAnswer。
参数为:
IPTVToken、UserToken和EPG
客户服务模块发送到门户EPG的一些数据
Name
Sizeinbytes
Defaultvalue
Comment
UserToken
Datastructure
客户端票据
Result
Int
获取登录票据结果
0:
成功
-1000:
帐号不对
-10000:
网络连接失败
其他负值:
未规定的错误
ErrorDescription
String(<=256)
错误/异常的详细描叙
IPTVToken
String(<=3000)
IPTV票据
UserToken
Name
Sizeinbytes
Defaultvalue
Comment
UserID
Varchar(11)
帐户号即AccountId
NickName
Varchar(40)
帐户昵称
ExpireTime
Varchar(18)
Token的失效时间
StbCertifyRequest消息
请求验证机顶盒有效性:
机顶盒标识和帐户
Name
Sizeinbytes
Defaultvalue
Comment
Type
1
0x30
OS_STBCERTIFYREQUEST
Account
Varchar(255)
机顶盒帐户
AccountPass
Varchar(255)
机顶盒帐户密码
IPAddress
Varchar(15)
机顶盒地址
STBID
Varchar(32)
机顶盒标识
StbidCertifyRequest消息
请求验证机顶盒有效性:
机顶盒标识
Name
Sizeinbytes
Defaultvalue
Comment
Type
1
0x31
OS_STBIDCERTIFYREQUEST
STBID
TCHAR(32)
机顶盒帐户
DbStbidCertifyRequest消息
向机顶盒数据库请求检测这个机顶盒标识
Name
Sizeinbytes
Defaultvalue
Comment
Type
1
0x32
OS_DBSTBIDCERTIFYREQUEST
STBID
TCHAR(32)
机顶盒帐户
DbStbidCertifyAnswer消息
机顶盒数据库返回检查结果
Name
Sizeinbytes
Defaultvalue
Comment
Type
1
0x33
OS_DBSTBIDCERTIFYANSWER
Result
Int
0
验证结果
StbidCertifyAnswer消息
机顶盒标识检测返回检查结果
Name
Sizeinbytes
Defaultvalue
Comment
Type
1
0x34
OS_STBIDCERTIFYANSWER
Result
Int
0
验证结果
AccountCertifyRequest消息
请求验证机顶盒有效性:
帐户
Name
Sizeinbytes
Defaultvalue
Comment
Type
1
0x35
OS_ACCOUNTCERTIFYREQUEST
Account
Varchar(255)
机顶盒帐户
AccountPass
Varchar(255)
帐户密码
IPAddress
Varchar(15)
机顶盒地址
DbAccountCertifyRequest消息
向客户数据库请求检测这个帐户
Name
Sizeinbytes
Defaultvalue
Comment
Type
1
0x36
OS_DBACCOUNTCERTIFYREQUEST
Account
Varchar(255)
机顶盒帐户
AccountPass
Varchar(255)
帐户密码
DbAccountCertifyAnswer消息
客户数据库返回检查结果
Name
Sizeinbytes
Defaultvalue
Comment
Type
1
0x37
OS_DBACCOUNTCERTIFYANSWER
Result
Int
0
验证结果
AccountInfoRequest消息
通知门户EPG准备下发页面到机顶盒
Name
Sizeinbytes
Defaultvalue
Comment
Type
1
0x38
OS_ACCOUNTINFOYREQUEST
UserToken
Datastruct
用户端票据
BizTypeID
Varchar
(2)
接入方式
Result
Int
获取登录票据结果
0:
成功
-1000:
帐号不对
-10000:
网络连接失败
其他负值:
未规定的错误
StbCertifyAnswer消息
下发数据到机顶盒
Name
Sizeinbytes
Defaultvalue
Comment
Type
1
0x38
OS_STBCERTIFYREANSWER
UserToken
Datastruct
用户端票据
IPTVToken
Varchar(20)
接入方式
EPG
Varchar(255)
具体网页信息的描叙
4.3STB注销流程
1.机顶盒发出一个请求消息DestroyAccountRequest给门户EPG,要求进行销户。
参数包括:
UserToken.
2.门户EPG检查UserToken的合法性
3.门户EPG发出一个请求消息DestroyAccountCertifyRequest给客户管理模块,进行帐户未欠款的检查。
参数包括:
UserToken。
4.客户管理模块发出一个请求消息DbAccountCertifyRequest给客户数据库模块,进行所有与本帐户关联的用户的信用度或者押金是否为负数,参数包括:
UserID
5.客户数据库返回本帐户关联的用户的信用度或者押金字段给客户管理模块,返回消息为
DbAccountCertifyAnswer,参数包括:
CreditQuotient,Deposit,Prepay。
6.客户管理模块检查这三个字段,判断是否允许销户。
7.客户管理模块返回一个结果消息DestroyAccountCertifyAnswer给门户EPG,参数包括:
Result。
8.门户EPG根据Result值,返回一个结果消息DestroyAccountAnswer给机顶盒,参数包括:
HttpDestroyAccount。
DestroyAccountRequest消息
Name
Sizeinbytes
Defaultvalue
Comment
Type
1
0x51
OS_DESTROYACCOUNTQUEST
UserToken
Datastructure
客户端票据
DestroyAccountCertifyRequest消息
Name
Sizeinbytes
Defaultvalue
Comment
Type
1
0x52
OS_DESTROYACCOUNTCERTIFQUEST
UserToken
Datastructure
客户端票据
DbAccountCertifyRequest消息
Name
Sizeinbytes
Defaultvalue
Comment
Type
1
0x53
OS_DBACCOUNTCERTIFYQUEST
UserID
Varchar(11)
帐户号即AccountId
DbAccountCertifyAnswer消息
Name
Sizeinbytes
Defaultvalue
Comment
Type
1
0x54
OS_DBACCOUNTCERTIFYANSWER
CreditQuotient
Varchar(11)
信用度
Deposit
押金
Prepay
预付费
DestroyAccountCertifyAnswer消息
Name
Sizeinbytes
Defaultvalue
Comment
Type
1
0x55
OS_DESTROYACCOUNTCERTIFYANSWER
Result
1
结果
DestroyAccountAnswer消息
Name
Sizeinbytes
Defaultvalue
Comment
Type
1
0x56
OS_DESTROYACCOUNTANSWER
HttpDestroyAccount
Varchar(255)
下发的页面地址
4.4STB查询用户信息流程
4.1.1用户信息查询
1.机顶盒发出一个请求消息InquireUserInfoRequest给门户EPG,要求进行用户信息查询。
参数包括:
UserToken.
2.门户EPG检查UserToken的合法性
3.门户EPG发出一个请求消息InquireUserRequest给客户管理模块,进行用户信息的请求。
参数包括:
UserToken。
4.客户管理模块发出一个请求消息DbInquireUserRequest给客户数据库模块,进行数据库中和本帐户有关的所有用户信息的搜索,参数包括:
UserID
5.客户数据库返回本帐户关联的用户的所有字段给客户管理模块,返回消息为DbInquireUserAnswer,参数包括:
用户表中所有字段。
6.客户管理模块返回一个结果消息InquireUserAnswer给门户EPG,参数包括:
用户表中所有字段。
门户EPG根据得到值,返回一个结果消息InquireUserInfoAnswer给机顶盒,参数包括:
HttpInquireUserInfo。
4.4.2客户信息查询
1.机顶盒发出一个请求消息InquireClientInfoRequest给门户EPG,要求进行用户信息查询。
参数包括:
UserToken.
2.门户EPG检查UserToken的合法性
3.门户EPG发出一个请求消息InquireClientRequest给客户管理模块,进行用户信息的请求。
参数包括:
UserToken。
4.客户管理模块发出一个请求消息DbInquireClientRequest给客户数据库模块,进行数据库中和本帐户有关的所有用户信息的搜索,参数包括:
UserID
5.客户数据库返回本帐户关联的用户的所有字段给客户管理模块,返回消息为DbInquireClientAnswer,参数包括:
用户表中所有字段。
6.客户管理模块返回一个结果消息InquireClientAnswer给门户EPG,参数包括:
用户表中所有字段。
7.门户EPG根据得到值,返回一个结果消息InquireClientInfoAnswer给机顶盒,参数包括:
HttpInquireClientInfo。
InquireUserInfoRequest消息
Name
Sizeinbytes
Defaultvalue
Comment
Type
1
0x57
OS_INQUIREUSERINFOQUEST
UserToken
Datastructure
客户端票据
InquireUserRequest消息
Name
Sizeinbytes
Defaultvalue
Comment
Type
1
0x58
OS_INQUIREUSERQUEST
UserToken
Datastructure
客户端票据
DbInquireUserRequest消息
Name
Sizeinbytes
Defaultvalue
Comment
Type
1
0x59
OS_DBINQUIREUSERQUEST
UserID
Varchar(11)
帐户号即AccountId
DbInquireUserAnswer消息
Name
Sizeinbytes
Defaultvalue
Comment
Type
1
0x60
OS_DBINQUIREUSERANSWER
ClientID
Varchar(255)
客户编号
Acco