IPTV机顶盒终端技术说明.doc
《IPTV机顶盒终端技术说明.doc》由会员分享,可在线阅读,更多相关《IPTV机顶盒终端技术说明.doc(35页珍藏版)》请在三一办公上搜索。
1、IPTV机顶盒终端技术说明1 引言机顶盒终端可以实现“网络电视”的功能,具有良好的人机交互界面,方便用户操作。具体为:终端接收来自IPTV平台服务器的音频视频流,将音视频流解码并将码流输出到电视上显示。用户采用遥控器来实现所有的操作功能。终端功能如下: 实现网络电视功能,即通过建立多个频道接收不同类型节目的音频/视频流,支持的媒体解码格式包括:MP3、WMA/WMV、MPEG-2、MPEG-4、AVI。 实现VOD(视频点播),用户可以根据喜好自行点播喜爱的电影。支持的媒体解码格式同上。 实现硬盘数字播放器功能,通过外接SATA硬盘,终端可以直接读取硬盘媒体内容并播放。支持的媒体解码格式同上。
2、 实现图片浏览功能,用户可随意浏览移动存储介质中的图片,支持的图片格式包括:PNG,JPG,GIF,BMP。 实现家庭视频监控功能,通过外接摄像头可以记录被监控区域的图像变化并保存在外接存储设备上。 实现用户对系统参数的自由调节。 实现业务分级的节目管理控制。2 终端系统终端由流媒体编解码芯片(DSP)、流媒体接入模块与流媒体接入软件平台构成。研发工作分为两部分:研制支持多种编解码格式的流媒体编解码芯片;编写支持硬件平台运行,可实现良好人机交互的流媒体接入软件平台。2.1 终端的层次结构图2.2.1.1 终端系统的层次结构整个终端的层次结构如图2.2.1.1所示,分为三个层次:内核层:主要包括
3、流媒体接入模块的硬件与流媒体解码芯片(机顶盒硬件),以及一个控制硬件的基本Linux内核(版本2.6.xx)。中间层:包括一个用于音视频直播/点播使用的视频传输协议栈;用于驱动流媒体解码芯片的驱动程序和外接存储设备以及摄像头的驱动程序;用于绘制界面、将解码后的数据显示并输出到电视上的DirectFB库。应用层:包括基于中间层开发的一个核心主程序以及模块化的各个模块。2.2 流媒体接入软件的系统结构图2.2.2.1 终端的系统结构由于嵌入式平台下面没有集成类似MFC的基础类库和完善的消息响应机制,故我们借助于DirectFB实现了一套自己的事件响应、处理机制。下面详细述之。用户事件缓冲区:基于D
4、irectFB库的一个事件缓冲区,内建了遥控器、键盘、鼠标等事件的二进制码,在程序中会根据事先定义好的命令码将用户事件的二进制码转化为预定义的命令码,机顶盒终端只解析这些命令码,具体码表2.2.2.2如下:命令码功能命令码功能commandMenu,显示菜单commandDigit0数字 0 commandUp向上方向键commandDigit1数字 1commandDown向下方向键commandDigit2数字 2commandLeft向左方向键commandDigit3数字 3commandRight向右方向键commandDigit4数字 4commandPrevious选择前一级菜单
5、commandDigit5数字 5commandChannelUp选择上一频道commandDigit6数字 6commandChannelDown选择下一频道commandDigit7数字 7commandVolume显示音量进度条commandDigit8数字 8commandVolumeUp增大音量commandDigit9数字 9commandVolumeDown减小音量commandShutdown关机commandMute静音commandPause播放中暂停commandOK确定commandFullscreen全屏commandInfo显示所选节目/频道的信息commandNo
6、ne空命令表2.2.2.2 机顶盒接收的命令码表应用程序全局环境配置表:将一些全局需要的环境变量集中起来管理,在程序中具体为一个名为appControlInfo的数据结构。其包含的各个数据成员(全局环境变量参数)如表2.2.2.3:环境变量说明audioStatus描述音量状态(是否为静音)ipInfoscreenOutputs包含2个成员的数组,分别描述直播/点播播放的状态及网络信息soundInfo描述音量与音频解码选项的信息mediaInfo描述本地媒体文件的信息digitInfo描述使用遥控器时数字按键状态的信息timeInfo描述时间信息pictureInfo描述设置图像的信息out
7、putInfo描述输出图像选项的信息imageInfo描述本体图片文件的信息scanActive目前未使用timeout描述流媒体解码芯片内部连接超时的标志displayCount描述显示图层的个数enableWatchdog是否启用watchdog线程表2.2.2.3 全局环境变量表应用程序管理器:负责整个程序的总体管理,如各个模块的初始化以及退出的销毁工作,其核心为一个消息命令循环。通过判断一个消息命令开关是否为真来决定是否继续执行消息命令的循环。其消息循环机制如图2.2.2.4所示:图2.2.2.4 应用程序管理器的消息循环机制菜单结构与控制模块:构建菜单(如菜单的大小,颜色,边框等参数
8、),菜单的跳转控制等操作。机顶盒的流媒体接入软件平台的菜单结构是一个状态机,如图2.2.2.5所示:图2.2.2.5 菜单结构状态转移图每一个菜单界面是一个结构体menuContainer,记录了菜单的一些基本参数。其成员如下表2.2.2.6所示:成员名称说明_menuContainer *prev一个指向自己前一个菜单的指针,通过记录自己的前一个菜单来实现菜单的跳转int width定义了菜单的宽度int height定义了菜单的高度int posX定义菜单左上角的x坐标int posY定义菜单左上角的y坐标int highlight菜单目前是否高亮int selected菜单目前是否被选中
9、int numEntries菜单包含几个菜单项int firstShownIndex菜单中的第一个显示的菜单项索引int lastShownIndex菜单中的最后一个显示的菜单项索引menuEntry menuEntryNUM_MENU_ENTRIES菜单中菜单项构成的数组menuHighlightFunction *pHighlight高亮菜单项的执行动作函数menuDrawFunction *pDraw菜单的自绘制函数表2.2.2.6 menuContainer结构的成员描述表其中menuEntry表示一个菜单项,同样它记录了一个菜单项所拥有的一些基本参数。其成员如下表2.2.2.7所示:
10、成员名称说明char infoMENU_ENTRY_INFO_LENGTH菜单项的描述信息char iconMENU_ENTRY_ICONNAME_LENGTH菜单项的图标的描述信息menuActionFunction *pAction菜单项的执行动作函数void *pArg传递给执行动作函数的参数表2.2.2.7 menuEntry结构的成员描述表网络传输模块:接收并处理来自网络的数据流。媒体播放模块:包含了直播/点播/本地播放的解码播放处理与控制。移动检测模块:包含了启动监控设备、监控区域的图像采集、图像码流转码、图片比较分析、图片显示、整个模块的控制等功能。详细技术说明见3.2。图片浏览
11、模块:分幻灯片与缩略图两种模式浏览图片。系统设置模块:分别实现对系统视频的亮度、对比度、饱和度、音量的设置。图形图像显示模块:使用封装好的DirectFB API接口直接将图形图像数据解码并显示。2.3 终端初始化2.3.1 应用程序管理器应用程序管理器为整个终端软件平台的核心,负责终端软件应用平台与操作系统的交互;接收用户的响应并分发命令给相应的模块执行;初始化并销毁各个模块。其初始化过程和销毁流程并非一一对应,原因主要是很多在堆栈中分配的空间会随着程序退出自动销毁,只有在堆上分配的空间才需要手工销毁。如涉及DirectFB的各个菜单与模块,随着DirectFB的销毁会自动销毁。其处理流程为
12、图2.3.1.1所示:图2.3.1.1 应用程序管理器流程以下几个小结分别就重要的操作进行详细叙述。2.3.2 远程登录与EPG光纤到户流媒体接入系统支持用户认证与业务分级管理机制。通过在机顶盒终端内嵌用户名与授权密码,可以对用户进行身份授权认证,通过查询用户在服务器端的用户等级,可以实现不同用户有不同业务级别的分级管理机制,即不同级别的用户获取的EPG节目信息并不相同,可以收看的节目、使用的功能也不相同,从而实现了业务分级管理。终端机顶盒首先登录服务器端系统获取EPG节目信息数据(点播节目信息与直播节目信息),然后通过人机界面交互模块将节目信息显示到界面供用户选择。终端远程登录服务器端并获取
13、EPG的流程如图2.3.2.1所示:图2.3.2.1 终端远程登录服务器并获取EPG流程(0.1&1)客户端网络连接初始化&客户端登录验证:由于传送的EPG节目信息为文本信息,故客户端与服务器端的连接采用可靠的TCP传送,服务器端通过固化的验证字符串对客户端进行验证。目前暂定的格式为:LOG#usernamepassword。如:LOG#whu12345。其初始化流程主要如图2.3.2.2所示:图2.3.2.2 客户端网络连接初始化流程(2)验证用户信息: 验证过程主要由服务器端通过数据库的查询来对客户端进行验证。其验证过程如图2.3.2.3所示:图2.3.2.3 服务器端对客户端的验证过程(
14、5)客户端存储EPG数据到本地:EPG文件格式存储为文本格式,一共有2个,LIVE.TXT存储直播节目信息。VOD.TXT存储点播节目信息。其格式分别如图2.3.2.4和2.3.2.5格式:ChannelEntrychannelnameurlpidvpidapidpvformataformatchannel_descriptionprograms_contains_by_channelprogramname1programname2示例:ChannelEntryTiYuurl=rtsp:/192.168.101.188:554/musicpidv=1000pida=1002pidp=0fffv
15、format=0003aformat=0001entertainment channelprogNum=3dangerous_gameFor_My_Dearzc2图2.3.2.4 直播节目信息格式格式:VoDEntryprogramnameurlpidvpidapidpvformataformatprogram,_description示例:VoDEntryMr.Smith.by.20th.FOXurl=rtsp:/192.168.101.188:8554/0122pidv=0044pida=0045pidp=0044vformat=0003aformat=0002Mr.Smith is a
16、movie which describes a killer couple.图2.3.2.4 点播节目信息格式对于任何一个直播节目和点播节目,都是采用ts流格式对原有的音视频流进行封装,而对ts码流进行解码,需要提供5个参数。它们分别是video_pid, audio_pid, pcr_pid, video_type, audio_type。分别对应上述的pidv,pida,pidp,vformat,aformat。(6)客户端解析EPG数据:将EPG文件解析为系统所要求的数据结构。 2.3.3 初始化DirectFBDirectFB是流媒体接入软件中图像显示的核心技术,同时为上层应用提供了音
17、视频解码的接口调用,使得音视频编解码器的开发和上层应用开发完全隔离开来,方便了系统的扩展并缩短了应用开发的周期。下面就DirectFB的初始化工作做一个详细的介绍。其初始化流程如图2.3.3.1所示:图2.3.3.1 DirectFB的初始化流程 创建IDirectFB对象:任何一个使用DirectFB进行显示操作的应用都需要首先创建一个IDirectFB对象,它为整个DirectFB操作提供接口。 设置DirectFB的操作级别:将操作级别设置为全屏,因为在电视上显示的图像为全屏显示。 创建IDirectFBSurface对象:surface对象的接口,为渲染,状态控制,缓冲操作和调色板等提
18、供操作接口。 创建字体对象:创建字体并设置字体的大小、内容和编码格式。 获取IDirectScreen对象:IDirectScreen是不同显示输出、编码器等的操作接口。 获取显示层的个数:终端的DirectFB共有5层。编号为04,其中:0层为主层(fb_layer),2层为图像层(image_layer),3层为画中画层(pip_layer),4层为视频显示主层(main_layer)。(详细解释见3.1) 1层暂时未用。上述4层按照0层在最上层,4层在最下层的顺序叠加。故当设置上面一层为透明时可以看到它下面一层的内容。 获取输出配置的参数:将获取的输出配置参数直接写入应用程序全局环境配置
19、表。 清屏准备显示:实际上是在主层上绘制一个标准的全屏黑屏直接将其他层内容全部覆盖。 执行双缓冲互换操作并显示:DirectFB显示操作的一个特点支持双缓冲(甚至三缓冲)直接操作硬件的特点,将准备好的缓冲区内容通过IDirectFBSurface接口直接输出显示。2.3.4 建立信号处理器终端中直接调用Linux内核的signal函数将3个信号绑定到同一个信号处理器上,这个信号处理器用于终止主程序的命令循环,实际上就是退出程序。signal函数原型如下:sighandler_t signal (int signum, sighandler_t action)signum为绑定的信号,actio
20、n为被绑定的信号处理器。sighandler_t为信号处理器函数的类型。绑定的3个信号分别为:SIGINT:用户按下Ctrl-c产生的中断信号SIGTERM:引起程序中断的通用中断信号SIGSEGV:内存非法读写产生的信号当系统捕获到上述三种信号时,通过信号处理器signal_handler将keepCommandLoopAlive标识置为0来退出程序的循环。2.3.5 初始化图片浏览图片浏览模块有一个属于自身的一个控制环境配置表,如表2.3.5.1所示:成员名称说明int state图片浏览状态int keepAlive是否持续浏览pthread_t thread浏览图片的线程标识displ
21、ayWidth浏览图片的显示区域宽度displayHight浏览图片的显示区域高度char directory1024图片所处目录int imageFile当前图片的文件句柄int filter过滤选项int thumb方阵的个数int immediate立即切换图片选项int userFlickerFiltering是否防止显示图片抖动IDirectFBSurface* pImageBuffer动态创建的存储图片数据surface对象指针IDirectFBSurface* pFrameBuffer硬件图片缓冲区的surface对象指针表2.3.5.1 图片浏览模块的控制环境配置表在初始化图片
22、浏览模块的过程中,首先对上述的控制环境配置表中的参数进行初始化;然后获取图像层的层ID;然后将图像层的透明度设置为255(即完全不透明);进而获取图像层的配置信息并设置显示区域矩形大小;然后通过图像层的surface对象获取图像层的缓冲区大小,设置缓冲区的背景色,填充缓冲区;最后创建一个单独用于对图片进行解码的线程。整个流程如图2.3.5.2所示:图2.3.5.2 图片浏览初始化模块2.3.6 初始化所有菜单菜单的初始化和菜单的绘制是两个不同的概念,菜单的初始化是指构建menuContainer和menuEntry中的各项参数内容,而绘制则是通过使用DirectFB技术将构建好的各个菜单显示出
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- IPTV 机顶盒 终端 技术 说明

链接地址:https://www.31ppt.com/p-4131732.html