一种基于机顶盒的支持远程移动预约高清录像***及方法
技术领域
本发明涉及通信技术领域,尤其涉及一种基于机顶盒的支持远程移动预约高清录像机顶盒***。
背景技术
高清数字电视机顶盒作为一种依托于电视终端提供综合信息业务的家电设备,走进千家万户,为用户提供交互式的数字化娱乐、教育和商业化活动。目前通过机顶盒为用户提供各种个性化订制服务已得到极大的发展,而用户对家电娱乐要求越来越高,针对机顶盒编程使其服务多样化已成为一种行业趋势。
手机作为一种移动通信设备,功能越来越多样化。通过手机等移动终端与家用电器联网实现远程控制,是智能家居发展的一个趋势。广义上的高清数字机顶盒就是一个与电视连接的网络终端,其联入网络与手机进行通信将成为移动终端控制家用电器的第一步。
目前市面上出现很多手机电视的应用,该应用成本低、便于携带,但是却需要第三方软件的支持,而且具有图像分辨率低、频道少、不稳定等缺点。而且手机电视所需要的流量较大,目前我国运营商提供的无线网络带宽难以满足用户对高清电视的需求。
其次目前通信领域通过无线传输技术控制电视机顶盒的应用都有其局限性。无线传输技术主要有红外、蓝牙、Wlan等,红外传输需要点对点操作,传输距离短,且其传输路线上不能有障碍物;蓝牙传输传输距离短,且安全性弱,容易受到外界干扰;Wlan硬件设备价格昂贵,不适宜大范围推广。因此,这些技术都不适宜远程控制。
发明内容
有鉴于此,本发明基于移动终端通信与机顶盒编程,实现了一种基于机顶盒的支持远程移动预约高清录像***,更好的满足了用户对高清数字电视机顶盒娱乐的要求,实现了家庭电器智能化。本发明是这样实现的
一种基于机顶盒的支持远程移动预约高清录像***,包括:
移动终端,用于通信控制以实现远程配置功能,具有连入互联网功能;
机顶盒,用于接收控制信息并实现录制功能。
进一步的,所述移动终端为远程手机客户端,该远程手机客户端进一步包括:
UI模块,用于提供人机交互的接口;
预约通信模块,用于客户端与机顶盒的通信;
手机控制模块,用于转换用户输入的控制信号并进行控制处理。
进一步的,所述机顶盒包括:
基于嵌入式linux平台的服务器,用于与远程手机客户端实现远程配置;
10/100M自适应网络适配器,用于实现连入互联网;
SATA/IDE外接硬盘接口,用于支持外接80G以上的大容量硬盘以存放录制好的高清电视。
进一步的,所述服务器包括:
频道信息采集模块,用于采集当前所有的电视频道信息并定时对机顶盒管理机顶盒端的节目列表进行更新;
机顶盒码流接收模块,用于接收高清电视码流并存储到外接硬盘上;
机顶盒预约通信模块,用于机顶盒与移动预约客户端的通信;
录像存储模块,用于录像存储的定时任务;
出错处理模块,用于处理***发生异常时的情况。
进一步的,上述服务器的频道信息采集模块负责定时对机顶盒管理机顶盒端的节目列表进行更新。机顶盒预约通信模块负责网络监听,当手机预约客户端通信模块通过互联网向机顶盒发起请求时,机顶盒预约通信模块允许手机端接入,并返回当前节目列表,手机端预约通信模块同时将节目列表交给手机端UI模块交给用户进行浏览,手机端控制模块监听用户的设置,并将结果对应的信息进行封装后发送到机顶盒预约通信模块,机顶盒预约通信模块将信息送到录像存储模块,录像存储模块通过对节目列表进行查询,设置定时器,并更新预约时间表,等待节目时间后触发录像存储。服务器端的出错处理模块处理通讯中断、机顶盒控制失灵、断电等突发情况,并把出错信息记录在日志文件里,并根据预约时间表中的设置好的处理方式,进行远程通知用户等处理。
进一步的,本发明所述机顶盒预约通信模块通过TCP协议(流控制传输协议)与移动终端进行通信。机顶盒预约通信模块提供以下方法接口供服务器或者用户调用:Listen()方法用于通过调用TCP/IP网络的API Socket()接口,不断监听TCP的8008端口,发现有数据传输过来然后返回true,否则返回fasle给出错处理模块;accept()方法用于机顶盒服务器与数据建立连接,accept()方法监视的socket收到连接请求时,socket()接口将建立一个新的socket,同时把这个新socket和请求连接进程的地址联系起来,同时为该socket建立一个输入数据队列,将到达的服务请求保存在此队列中,直到服务器其他模块处理它们;DataRecieve()方法用于接收accept()方法队列中的数据;DataSend()方法用于发送控制模块发送过来的数据信号。
进一步的,本发明所述机顶盒频道信息采集模块,首先在硬盘上建立一个节目列表文件存储列表,该列表通过机顶盒预约通信模块按行读取,并以XML形式封装后返回给用户;当机顶盒预约通信模块接到用户连接请求时,该模块调用query()方法查询是否存在节目列表存储文件,发现存在该文件则返回0,否则返回-1;当接到query()方法返回值0后,调用createChannel()方法,该方法创建一个先入先出队列,并按行读取节目列表文件,把所有节目列表按时间先后,存在该队列当中,该序列通过ChannelSend()方法发送到机顶盒预约通信模块,并通过UI模块更新显示到移动手机终端。
本发明所述的码流接收模块通过连接指定的节目频道,接收该节目频道的视频码流数据,并存放到外接硬盘里,视频采取AVI编码压缩格式;当硬盘容量不足时,发送消息到出错处理模块。
进一步的,本发明所述机顶盒录像存储模块接到机顶盒预约通信模块的信号后,调用query()方法对频道列表文件进行并将结果返回;若query()方法返回0,机顶盒录像存储模块将一个新的任务加到任务队列当中,并设置录像定时器跟节目时间一致,等到节目开始时,定时器触发,录像存储模块调用码流接收模块并开始录像;该机顶盒控制模块有一个计时器,用户发送选择该频道并开始录制时该模块获取该段视频的持续时间,计时器开始计时录像,当时间段用完,录像停止;用户也可用移动终端提前设置录像时间和频道,当所设置时间到达,计时器开始计时录像。
进一步的,本发明所述的手机控制模块通过clic_to_response()方法,监听客户通过UI模块传递过来的控制信号,并调用transfer()方法把信号转成文件格式传到手机预约通信模块;当接收到手机预约通信模块的数据时,通过transfer()方法转换为相应的信息。
本发明的有益效果如下:
1、本发明实现了一种基于机顶盒的支持远程移动预约高清录像***,该***有效解决了现代人工作繁忙而不能及时观看喜爱的电视节目的问题,通过提前预约设定把喜爱的电视节目录制下来,***具有可靠性、稳定性,且仅仅需要很小的流量以供通信。
2、本发明通过移动手机终端与高清电视机顶盒的良好交互,实现了移动终端远程配置家具电器的功能,为今后提供了更多更好的应用建立了良好的基础,符合了智能家居发展的方向。
附图说明
图1是本发明所述***的整体模块框架图;
图2是本发明所述***各个模块之间的流程图。
具体实施方式
下面结合附图对本发明做进一步的说明。
图1是本发明所述的基于机顶盒的支持远程移动预约高清录像***的整体模块框图,本实例所基于的硬件架构包括:具有连入互联网功能的移动手机终端和具有网卡网口的高清交互数字电视机顶盒。移动手机终端的软件架构包括:UI模块、手机预约通信模块和手机控制模块;高清数字机顶盒里拥有一个服务器平台,该服务器平台包括码流接收模块、频道信息采集模块、预约通信模块、录像存储模块和出错信息处理模块。
移动手机终端的软件架构实施方式如下:其中,
UI模块,用于用户操作界面。该模块以html网页形式显示用户所需信息。它包括三个页面:一个页面用于显示机顶盒返回的频道列表信息并且提供频道选择功能,然后把用户选择信息发送到手机控制模块;第二个页面用于设定预约录像时间,用户只需要提前设定好录像时间和频道信息,手机预约通信模块把信息发送给机顶盒服务器,当时间段到后机顶盒会自动录制电视节目;第三个页面用于显示出错信息。
手机控制模块通过click_to_response()方法,监听客户通过UI模块传递过来的控制信号,并调用transfer()方法把信号转成文件格式传到手机预约通信模块;当接收到手机预约通信模块的数据时,通过transfer()方法转换为相应的信息。
手机预约通信模块调用Listen()方法,该方法通过调用TCP/IP网络的APISocket()接口,不断监听TCP的8008端口,发现有数据传输过来然后返回true,否则返回fasle给出错处理模块;accept()方法监视的socket收到连接请求时,socket()接口将建立一个新的socket,同时把这个新socket和请求连接进程的地址联系起来,同时为该socket建立一个输入数据队列,将到达的服务请求保存在此队列中,直到服务器其他模块处理它们;DataRecieve()方法用于接收accept()方法队列中的数据;DataSend()方法用于发送控制模块发送过来的数据信号。
机顶盒服务器组件实施方式如下:如附图2所示,其中,
机顶盒预约通信模块通过TCP协议(超文本传输协议)与移动终端进行通信。机顶盒预约通信模块提供以下方法接口供服务器或者用户调用:Listen()方法用于通过调用TCP/IP网络的API Socket()接口,不断监听TCP的8008端口,发现有数据传输过来然后返回true,否则返回fasle给出错处理模块;accept()方法用于机顶盒服务器与数据建立连接,accept()方法监视的socket收到连接请求时,socket()接口将建立一个新的socket,同时把这个新socket和请求连接进程的地址联系起来,同时为该socket建立一个输入数据队列,将到达的服务请求保存在此队列中,直到服务器其他模块处理它们;DataRecieve()方法用于接收accept()方法队列中的数据;DataSend()方法用于发送控制模块发送过来的数据信号。
机顶盒频道信息采集模块通过在硬盘上建立一个节目列表文件存储列表,该列表通过机顶盒预约通信模块按行读取,并以XML形式封装后返回给用户。当机顶盒预约通信模块接到用户连接请求时,该模块调用query()方法查询是否存在节目列表存储文件,发现存在该文件则返回0,否则返回-1;当接到query()方法返回值0后,调用createChannel()方法,该方法创建一个先入先出队列,并按行读取节目列表文件,把所有节目列表按时间先后,存在该队列当中,该序列通过ChannelSend()方法发送到机顶盒预约通信模块,并通过UI模块更新显示到移动手机终端。
码流接收模块连接指定的节目频道,实时接收当时播放的电视视频,并存放到外接硬盘里,视频采取AVI编码压缩格式;当硬盘容量不足时,发送消息到出错处理模块。
录像存储模块接到机顶盒预约通信模块的信号后,调用query()方法对频道列表文件进行并将结果返回;若query()方法返回0,机顶盒录像存储模块将一个新的任务加到任务队列当中,并设置录像定时器跟节目时间一致,等到节目开始时,定时器触发,录像存储模块调用码流接收模块并开始录像;该机顶盒控制模块有一个计时器,用户发送选择该频道并开始录制时该模块获取该段视频的持续时间,计时器开始计时录像,当时间段用完,录像停止;用户也可用移动终端提前设置录像时间和频道,当所设置时间到达,计时器开始计时录像。
出错处理模块,当应用程序或硬件发生错误时通知用户并提醒用户采取相应措施,保障了程序的健壮性。出错处理包括以下几个错误:InvalidCommandException()用户命令错误;ChannelException()是频道错误;TimeException()时间设置错误;IllegalSignalException()是机顶盒断电或不能检测到错误;NoCapacityException()是硬盘容量不足错误。以后还可以根据应用实际增加错误类别。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁盘或光盘等。
以上所述仅为本发明的实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所做的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。