OTT技术规范.docx
《OTT技术规范.docx》由会员分享,可在线阅读,更多相关《OTT技术规范.docx(13页珍藏版)》请在冰豆网上搜索。
OTT技术规范
OTT软件技术规范V1.0
2012年8月
天华世纪传媒
天华雅歌
修订记录
版本
发布日期
发布人
发布记录
1.0
2012.8.4
王波
1.引言
传统机顶盒都是基于Linux的操作系统,其基本的界面框架、媒体框架以及底层驱动在不同的厂商提供的系统都是不同的。
因此,开发应用系统需要依赖于各家厂家或者中间件厂家提供的底层接口,这样就造成了应用开发与具体的厂家关联性非常强,导致运营商不能更开放的汇集更丰富的应用服务。
随着技术的发展,以Google等国际软件服务商提供了更完整的、完备的操作系统,而且免费提供给各家用户,因此,一经推出,就成为业界的事实标准。
目前,Google的Android系统已经成为最流行的手机和平板电脑操作系统,也即将成为机顶盒领域中最流行的操作系统。
如果采用了Android系统,就可以利用Android提供的完整的界面框架、媒体框架、底层驱动等等一系列完整的接口,应用开发商无需和具体的设备厂家或者中间件厂家进行技术交流,就可以开发出完整的应用系统了,因此,这种基于Android的机顶盒系统,已经成为了OTT技术的最关键的核心技术。
当然,为了支撑机顶盒的运营服务,还需要按照一定的规范将应用与系统提供的服务相对接。
本文档定义了应用于运营级别的OTT软件规范,应用开发只需要采用标准Android进行开发,并遵循本OTT规范,就可以和我们的运营服务完整的集成在一起了。
2.OTT设计原则
由于机顶盒系统是为了电视用户提供的服务,因此,其设计的时候必须要要考虑到电视用户易用、清晰、方便的使用习惯。
这种习惯导致设计电视应用的时候和为电脑或者手机设计的应用有着不同的设计原则。
因此,所有的电视界面和应用设计面向95%的使用者和使用习惯,但是也考虑到5%的玩家和高级用户,为他们提供高级入口,这些用户可以成为设备管理者,他们可以将更多的手机或者电脑用户引入到电视中去,为家庭其他用户提供更多应用挖掘和培训支持;
●界面设计原则
通过使用图形化UI,排列简单易懂,文字尽量简化,并足够的大小,满足电视用户在3-5米的距离能够清晰的查看。
●操控设计原则
以遥控器操控为主,绝大部分操作集中在6键范围内,“傻瓜化”的操控方式更加贴近电视用户。
●内容服务原则
以视频内容为主,其他信息为辅;但通过提供交互、社交功能,将手机用户和平板电脑用户引到电视端。
●应用服务原则
后台系统通过PUSH功能,减少不必需的输入,最大限度满足被动使用者的95%需求;
3.OTT终端软件架构
为了最大范围的支持更灵活、更多范围的应用开发,运行在机顶盒上的OTT终端软件可以允许三个不同级别的应用开发。
这包括:
⏹基于本地化环境的应用开发,通过Android的NDK提供最底层的驱动和应用开发能力。
⏹基于标准开发环境的应用开发,通过Android的SDK提供标准的应用开发能力。
⏹基于HTML5/Javascript的应用开发,通过TVASDK提供的开发矿建进行应用开发。
因此,整个OTT终端系统就包括从系统模块,到应用框架,等多个模块完整的组成。
下图为终端系统架构的示意图:
应用
OTT服务层
Android系统层
AndroidSDK
Linux系统层
本地流媒体服务
AndroidNDK
第三方应用。
。
互动社区
数字电视应用系统
影视点播
电视直播
终端管控系统
桌面
事件服务
TVASDK
网络管理
存储管理
HTML引擎
应用管理
媒体框架
Linux服务
。
。
。
设备驱动
媒体播放器
上图中仅列出OTT中最基本的应用及功能模块,以及其参考结构,各个功能模块并符合下文相关技术要求。
OTT终端软件框架包括Linux系统层、Android系统层、OTT服务层及应用层。
下面将对各个组成部分进行简要的描述。
3.1Linux系统层
Linux系统为整个系统的底层系统,包括系统的驱动程序和一些标准的Linux服务。
正常情况下,Linux系统层是由系统平台提供商来提供的,OTT软件规范基本上不涉及这个领域。
除非一些应用需要特别的底层驱动,或者特殊的Linux服务。
3.2Android系统层
在Android系统中,真正为用户提供服务的是AndroidFramework,通过Android虚拟机的方式来对应用系统提供支持。
Android框架中,提供了多种完整的服务来支持整个应用系统,包括UI库,应用程序之间的数据共享,播放音视频的媒体框架,支持浏览器的HTML引擎,等等。
Android系统通过SDK和NDK两种方式来支持应用的开发。
3.2.1AndroidSDK
AndroidSDK就是通过提供标准的JavaAPI接口,来对上层应用提供服务。
上层应用基于Java语言进行开发,由编译器首先编译成Java虚拟机的伪代码,然后再编译成AndroidDalvik虚拟机支持的DEX代码。
直接使用AndroidSDK就可以直接用来为OTT开发应用,只需要注意电视应用的开发原则就可以了。
AndroidSDK中,就可以使用Android提供的各种功能,包括HTML/Javascript引擎,存储管理,音视频播放的媒体框架,应用生命周期管理等等。
3.2.2AndroidNDK
使用AndroidSDK,只能应用Android本身提供的服务,以及Java语言本身定义的功能,如果需要使用系统本身的功能,基于Linux本身的功能进行扩展开发,就需要通过C/C++语言来编写一些本地代码,而C/C++语言就需要通过AndroidNDK进行编译。
通常AndroidNDK可以直接把C/C++程序编译成Linux的标准程序,作为Linux服务来提供,或者可以把C/C++库编译成动态链接库,通过Java的标准本地接口JNI规范,在AndroidSDK中通过Java进行调用。
3.3OTT服务层
虽然,直接使用AndroidSDK或者NDK,就可以直接为机顶盒开发应用,但是由于很多OTT应用具备一些共性,这包括:
●界面采用HTML/Javascript可以简化应用开发;
●同样都有几乎一致的媒体播放的需求;
因此,通过提供一个以HTML/Javascript作为基本界面开发元素,提供Javascript扩展功能作为HTML应用与Android应用调用的桥梁,从而形成一个完整的OTTSDK---TVASDK,从而简化了应用开发。
同时加上通用的媒体播放,本地流媒体服务等常用的元素作为支撑,就构成了OTT服务层。
3.3.1TVASDK
TVASDK从逻辑上和之前Linux上的中间件有些类似,但是不同的是,这个SDK只需要支持AndroidSDK/NDK,因此它无需考虑多平台而自然而然在所有Android平台上都是通用的。
TVASDK在标准HTML/Javascript的基础上提供以下跟电视相关的特殊处理:
⏹对遥控器操作的规范,正常HTML应用主要支持鼠标/触摸屏,而电视应用对于遥控器的操作是基本操作。
⏹对音视频播放的特殊处理,虽然在HTML5规范中,提供了对音视频操作的定义,但是为了更灵活的处理音视频,还需要额外的特殊规范来处理音视频。
⏹其他的系统接口,包括各种形式访问网络、访问本地存储和数据库、访问系统功能等多种扩展接口。
3.3.2本地服务
由于OTT需要访问的双向网络是互联网,正常情况下并没有严格的服务质量保证,因此,大部分情况下需要采用多种技术来保证服务质量,例如,采用本地流媒体缓冲技术。
因此,OTT服务层通过提供一些本地服务的办法,来解决最常遇到的网络媒体问题。
3.4OTT应用层
OTT应用层可以采用TVASDK来进行开发,也可以完全采用AndroidSDK进行开发,当然,更常见的情况是在TVASDK上,一些特殊功能再采用AndroidSDK进行补充。
以下介绍了一些特别的应用系统。
3.4.1终端管控系统
为了更好的支持OTT的运营,需要通过终端管控系统来实现。
终端管控系统负责机顶盒应用软件的动态版本检查和更新服务,它完成应用程序的动态下载和安装、卸载。
这包含以下功能:
✧完成在服务端应用软件列表中应用的版本检查;
✧提供必需软件的下载和安装;
✧检查系统,卸载不允许安装的软件;
终端管控系统也负责软件的初始化,他负责初始化机顶盒系统,建立网络连接,为应用的鉴权和安全策略初始化设备相关的唯一ID。
3.4.2媒体播放器
为应用层的点播、直播以及回放等业务提供服务,包括会话管理、流控、媒体管理等。
该模块包含以下主要功能:
✧媒体流管理,如媒体流会话的建立、VOD控制、直播、时移等;
✧解码管理;
✧媒体流呈现和控制模块管理,如播放、停止、暂停、快进等;
✧媒体缓存管理;
✧实时存储管理。
3.4.3数字电视应用系统
OTT系统主要通过IP网络来访问服务,如果要和数字电视完美的结合在一起,就需要在机顶盒中增加数字电视的支持硬件,并通过底层驱动、AndroidNDK,最后集成成一个完整的数字电视应用,就可以和OTT系统集成在一起了。
数字电视应用系统包括两个基本的包含软硬件的模块:
⏹解复用模块
解复用模块是对TS流中的各项复用内容,如音视频流、MPEG-2段数据、图文流及字幕流等进行解析复原的一个功能模块。
本模块并通过特定的过滤器过滤出特定数据,以供上层调用。
解复用设备底层主要由解复用控制、解服用过滤器、解复用通道等几个部分组成。
此模块要求具有数据过滤机过滤器管理和CRC校验功能。
⏹CA模块
CA(ConditionalAccess)条件接收,即加密认证系统。
对节目流进行加密处理,并辅助以加密控制信息,从而达到可以实现按频道收费、按节目收费、按收视次数收费的目的。
同时也保证了非法用户、不付费用户不能收看收费电视。
DVB与OTT的集成
为了达到最理想的完整集成,需要OTT和DVB提供双向的API来进行相互集成。
这包括以下功能:
●从OTT直接访问DVB的指定频道,可以实现直接从OTT中访问具体的某个直播频道或者QAM点播内容。
●从DVB中的某个频道,可以调用OTT的某个服务,这样就可以直接在DVB的直播播放中,直接调用OTT提供的时移或者回看内容。
4.机顶盒资源
由于硬件技术的发展,目前硬件设备的计算能力已经大大的增强了,同时,价格也得到了极大的降低。
这样,就导致OTT软件可以打破硬件的限制,更自由的发挥软件的能力。
4.1硬件要求
OTT系统应有足够的可扩展能力来支撑复杂的软件系统。
◆最小运行环境:
基于ARMCotexCPU,1GHz,1GBytesSDRAM,1GBytesFlashROM;
◆如果需要DVB功能,需要对应的tuner和CA;
◆机顶盒必须提供至少一个RJ45口或者内置CableModem设备,可选Wifi接口;
◆机顶盒必须提供至少两个USB2.0或以上USB接口,且必须支持2个不同种类的USB设备同时工作,如USB鼠标、USBDisk等。
◆支持外接USB存储设备,如USBDisk、移动硬盘,支持上述存储设备中的媒体浏览和文件管理等功能;
◆支持外接USB鼠标、键盘设备、空中鼠标,此项要求为可选项;
◆机顶盒必须提供至少一个符合HDMISpecificationVersion1.3a要求的HDMI接口。
4.2媒体协议与解码
4.2.1音频解码
音频解码模块用来控制音频解码,并将解码后的结果输出。
音频压缩数据流可以是DVB的TS流里解复用出来的音频部分数据流,也可以是OTT应用系统中提供的音频流。
音频解码模块能够接收的输入流编码格式主要有以下几种:
◆MPEG-2Audiolayer1/2
◆MPEG-1AudioLayer1/2/3
◆DolbyDigitalAudio
◆DTSAudio
◆WAVEPCM
4.2.2视频解码
视频解码模块用来控制视频解码,解码后的结果由应用控制显示的位置和方式等。
视频压缩数据流可以是从DVBTS流里解复用出来的视频部分数据流,也可以是OTT应用系统提供的视频流。
视频解码模块能够接收的输入流格式主要有以下几种:
◆MPEG-2视频PES流和ES流
◆MEPG-1视频流
◆H.264视频流
对于上述视频编码格式,视频解码器应能实现自动识别和选择、视频解码控制、冻结画面、静止图像解码显示、画面的剪切、缩小与放大、画面位置调整等。
4.2.3流媒体协议
音视频的流媒体协议应该支持以下方式:
HTTP协议:
通过HTTP下载的方式,直接接受音视频数据;
HLS协议:
通过HTTP流协议的方法,按流的方法接受音视频流;
可选的支持P2P流媒体协议,通过P2P的方法,来最大限度的保证服务质量;
4.3输入设备
4.3.1红外遥控器
OTT系统的最基本的输入设备仍然是遥控器,通常应用只需要支持最基本的6个按键就应该可以正常运行。
这个六个按键为:
Left,Right,Up,Down,Enter,Escape。
此外,系统通常还需要Home,Power,Mute,Volume+/-等常用功能键。
4.3.2USB鼠标和键盘
USB鼠标和键盘也是标准的输入设备,OTT系统需要支持。
4.3.3空中鼠标与体感操纵杆
这些设备通常被映射为对应的键盘和鼠标设备,理论上设备应该都可以支持。
4.3.4手机应用
通过特定的手机应用,可以将手机映射为鼠标或者键盘,提供更方便的操作体验。
5应用规范
OTT应用系统至少应该支持以下的应用:
5.1视频类应用
视频点播,在服务器上可以放置自己拥有合法版权的内容,提供给客户点播。
视频聚合和导航,通过聚合互联网上已经免费提供给网络用户资源,可以进一步给用户提供最丰富的内容资源。
网络直播,通过服务器可以提供直播服务,OTT机顶盒可以访问服务器来获得直播内容。
直播的时移和回看,通过服务器来提供指定的内容,以便实现直播的时移和回看。
这些应用支持系统的安全机制,包括用户程序的鉴权和安全策略、用户认证、网络安全等。
安全认证管理模块包含以下功能:
✧用户认证及相关信息管理;
✧应用业务授权;
✧软件升级和下载时认证;
✧网络安全策略管理;
✧密钥、口令字及注册信息管理;
✧家长控制;
5.2应用商店
由于采用开放的Android系统来作为OTT的基础平台,最具备特色的一点就是可以直接安装Android系统现有的多种应用平台。
但是目前的Android系统主要是运行在手机端的应用,因此如果直接安装到机顶盒中,很可能不能提供很好的使用体验。
因此,就需要对用户的终端中的应用进行筛选,只选择适合电视的应用系统非常重要。
此外,由于系统中存在的终端管控系统,事实上并不允许用户随意安装应用,正常情况下只有自己架设的应用商店中的应用才可以安装。
这样就可以把应用商店系统被每个用户都用起来。
6.网络规范
由于广电网络的特殊性,实施系统需要考虑到Internet/Intranet之间的访问成本等范围,这样原来的那种简化模式就需要修改,因此这需要支持一些额外的资源。
●代理服务器支持
●流媒体缓冲服务器支持
TVAOTT已经实现对点播数据的自动化缓冲,实现方法是通过P2P的自动缓冲机制来完成的。
7.编程接口
7.1AndroidSDK接口
AndroidSDK已经被google免费发布,任何人都可以免费获得。
7.2AndroidNDK接口
AndroidNDK已经被google免费发布,任何人都可以免费获得。
7.3TVASDK接口
TVASDK包括一个浏览器模块,能够实现对标准HTML的解析和渲染,并通过Javascript实现界面编程。
标准的HTML/Javascript应该支持以下部分:
●支持HTML4.01、XHTML1.0;
●支持ECMAscript262第三版及JavaScript1.5的相关扩展;
●支持CSS2.0;
●支持DOM2.0;
●支持Ajax的主要特性。
●支持cookies应用;
此外,TVASDK也提供了扩展的Javascript接口,这包括
●媒体播放器控制
●网络访问API
●本地存储资源访问API
●更多。
。
。