一种播放视频的方法、系统及对应的机顶盒 【技术领域】
本发明涉及电子领域,尤其涉及一种播放视频的方法、系统及对应的机顶盒。
背景技术
随着现代数字电视技术的不断发展,IPTV技术的日益成熟,人们通过机顶盒即可观看视屏节目和浏览网页,电视用户收看视频节目时,通过切换遥控器选择浏览节目指南,相继实现了视频点播,卡拉OK点播方式,然而这样的方式,还是不能满足人们对数字电视日益增长的功能需求,所以为了满足人们日益增长的功能需求,数字电视机顶盒也需要提供多功能的点播系统及其实现方法,这也使得现阶段的数字电视更加依赖于嵌入式浏览器。
目前数字电视机顶盒的点播系统通过嵌入式浏览器模块浏览可点播的节目清单,并通过相应节目清单的连接,向服务器发送点播请求,服务器根据相应的请求,推送给机顶盒播放模块相应的节目数据流,机顶盒的将节目数据流还原为视频图像后在电视上进行播放。
但是,发明人在实施本发明的过程中发现,现有的数字电视机顶盒通过嵌入式浏览器浏览点播节目的技术存在明显缺点:
现有技术实现数字电视机顶盒的点播系统和网页浏览器是独立的,用户在播放视频节目的过程中想浏览网页,必须先停止播放视频节目,切换到嵌入式浏览器,然后才能浏览网页。不能满足大家庭成员一边收看视频节目一边浏览网页内容的要求。
【发明内容】
随着电子技术的发展,数字电视发展到宽屏时代,但目前的机顶盒及其播放视频的方法使用户不能在收看视频的同时浏览网页内容,不能满足大家庭成员一边收看视频节目一边浏览网页内容的要求。
为了用户在同一个数字电视上收看视频节目的同时浏览网页内容的需要,本发明提供一种播放视频的方法、系统及对应的机顶盒。该播放视频的方法包括:
接收用户在嵌套有视频窗口的页面窗口上触发的视频提取指令,在显示屏上创建独立于所述页面窗口的独立视频窗口;
从所述页面窗口绑定的数据流中分离出视频数据,在所述独立视频窗口中进行播放。
相应的,本发明还提供可以实施上述方法的机顶盒,该机顶盒包括:
窗口创建模块,用于接收用户在嵌套有视频窗口的页面窗口上触发的视频提取指令,在显示屏上创建独立于所述页面窗口的独立视频窗口;
数据处理模块,用于从所述页面窗口绑定的数据流中分离出视频数据,在所述窗口创建模块创建的独立视频窗口中进行播放。
最后,本发明还提供一种应用上述方法和机顶盒的视频播放系统,该系统包括:
机顶盒,用于接收用户在嵌套有视频窗口的页面窗口上触发的视频提取指令,在显示屏上创建独立于所述页面窗口的独立视频窗口;从所述页面窗口绑定的数据流中分离出视频数据,在所述独立视频窗口中进行播放;
电视机,用于在所述机顶盒的控制下播放视频或页面;
服务器,用于向机顶盒推送数据流,并在所述机顶盒从数据流中分离出视频数据之后,将页面窗口中的其他数据重新排版,填补页面窗口中的视频窗口处的版面。
实施本发明提供的播放视频的方法、系统及对应的机顶盒,可以满足用户在一个数字电视上收看视频节目的同时浏览网页内容的需要,给用户更好的使用体验。
【附图说明】
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明地一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的播放视频的方法第一实施例流程示意图;
图2为本发明提供的播放视频的方法第二实施例流程示意图;
图3为本发明提供的视频播放系统实施例结构示意图;
图4为本发明提供的机顶盒第一实施例结构示意图;
图5为本发明提供的机顶盒第二实施例结构示意图。
【具体实施方式】
随着电子技术的发展,数字电视发展到宽屏时代,但目前的机顶盒及其播放视频的方法使用户不能在收看视频的同时浏览网页内容,不能满足大家庭成员一边收看视频节目一边浏览网页内容的要求。
为解决上述技术问题,满足用户在同一个数字电视上收看视频节目的同时浏览网页内容的需要,本发明提供一种播放视频的方法及对应的机顶盒。
参见图1,为本发明提供的播放视频的方法第一实施例流程示意图,如图1所示:
在步骤100,接收用户在嵌套有视频窗口的页面窗口上触发的视频提取指令。
在步骤101,在显示屏上创建独立于所述页面窗口的独立视频窗口。
在步骤102,从所述页面窗口绑定的数据流中分离出视频数据。
在步骤103,将所述视频数据还原为视频,在所述独立视频窗口中进行播放。
本发明实施例提供的播放视频的方法,通过创建独立于原网页窗口的独立视频窗口,并将原网页窗口中的视频数据在独立视频窗口中进行播放,从而达到同时打开两个窗口的效果,使用户可以收看视频节目的同时浏览其它网页,给用户更好的使用体验。
参见图2,为本发明提供的播放视频的方法第二实施例流程示意图,在本实施例中,将更为详细的描述该播放视频的方法的具体流程,如图2所示:
在步骤200,机顶盒接收用户在嵌套有视频窗口的页面窗口上触发的视频提取指令。更为具体的,在本发明实施例中,用户通过点击电视机显示屏上显示的网页窗口中的“提取视频播放”按钮,触发的视频提取指令,该视频提取指令被发送给机顶盒。优选的,该视频提取指令被发送给机顶盒的同时,也被发送给提供该网页的服务器。
在步骤201,机顶盒接收视频提取指令,分析页面窗口中的视频窗口的尺寸大小。该视频窗口的尺寸必然小于其所在的页面窗口的尺寸。
在步骤202,机顶盒在电视机的显示屏上创建独立于页面窗口的独立视频窗口,该独立视频窗口的尺寸小于所述页面窗口的尺寸。更进一步的,该机顶盒中的脚本可如下:
<script>
Function resposePickupVideoClick()
{
MediaPlayer.PickUpVideo();
MediaPlayer.MoveVideoPosition(200,0,200,200);
}
当机顶盒执行到MediaPlayer.PickUpVideo()的JavaScript扩展时,就会调用相关的图形绘制模块去创建一个独立视频窗口。
在步骤203,机顶盒从所述页面窗口绑定的数据流中分离出视频数据。更为具体的,因为页面窗口中不仅有文字信息,也有视频信息,所以其绑定的数据流中必然包含多种格式的数据。例如:文本信息以超文本传输协议(HTTP,Hypertext Transfer Protocol)格式传送,视频信息以实时流传输协议(RTSP,RealTime Streaming Protocol),数据格式传递。机顶盒根据数据格式的不同,区分出视频数据和非视频数据,并将视频数据从原数据流中分离出来。
在步骤204,机顶盒将该视频数据与独立视频窗口绑定。更为具体的,机顶盒将该视频数据与独立视频窗口绑定,而嵌套在页面窗口上的视频窗口中则没有对应的视频数据,即机顶盒将该视频数据与独立视频窗口绑定后,嵌套在页面窗口上的视频窗口中将不再有视频图像。
在步骤205,机顶盒将视频数据还原为视频图像,在独立视频窗口中进行播放。
在步骤206,服务器将页面窗口中的其他数据重新排版,填补页面窗口中的视频窗口处的版面。更为具体的,机顶盒将该视频数据与独立视频窗口绑定后,嵌套在页面窗口上的视频窗口中将不再有视频图像,所以服务器将对原页面窗口中的视频窗口部分通过JavaScript函数进行插入图片,或者插入文字信息,后者把网页进行拉伸,或者留白等处理,实际应用中视具体网页的排版需要进行不同的处理。
需要说明的是,步骤204、205由本地的机顶盒执行,步骤206由网络侧的服务器执行。步骤204、205与步骤206是并列的。
在步骤207,机顶盒根据用户指令,用其它窗口替换所述页面窗口。更为具体的,在机顶盒将网页窗口中的视频获取该在独立视频窗口中播放后,用户可能要求浏览其他的页面窗口,此时,机顶盒根据用户的操作,向服务器发送相应的页面获取请求,并接收服务器推送的对应页面信息数据流,机顶盒将该页面信息数据流解析新的页面窗口,替换原有的页面窗口,在电视上进行显示。
在本发明实施例中,页面窗口中显示的是网页内容。
优选的,本发明实施例提供的方法还包括步骤208.
在步骤208,服务器和机顶盒提供对独立视频窗口的缩放大小,拖动,设置和取消置顶,恢复到页面播放,快进快退等功能,并根据用户的操作执行各种功能。更进一步的,在本发明实施例中,可以通过调用JavaScript扩展函数来实现上述各种功能。
更为具体的,在本实施例中,对于独立视频窗口的缩放,服务器可以通过调用ZoomOutInVideoWindow(scale)的JavaScript扩展函数来实现。其网页脚本参考如下:
<script>
Function resposeZoomOutInVideoClick()
{
MediaPlayer.ZoomOutInVideoWindow(150%);
}
</script>
当服务器执行到MediaPlayer.ZoomOutInVideoWindow(150%);这个脚本语句时,就会去获取该独立视频窗口句柄,然后获取该独立视频窗口的原有大小,例如原来窗口的宽和高分别为200px,那缩放后的独立视频窗口的宽和高就是300px,(PX像素一种相对长度单位),可以根据一定的算法,如保持窗口的中心点位置不变,然后来进行对窗口的重新排版。
对于独立视频窗口的置顶,服务器可以通过调用SetTopVideoWindow()的JavaScript扩展函数实现视频窗口置顶显示。此时独立视频窗口就在最前面显示,与独立视频窗口有重叠的其他网页窗口就被覆盖在后面了。对于独立视频窗口取消置顶,服务器可以通过调用CancelTopVideoWindow()的JavaScript扩展函数进行取消置顶操作,此时,焦点落在哪个窗口上面,哪个窗口就是置顶窗口。
对独立视频窗口设置置顶显示,其网页脚本参考如下:
<script>
Function resposeSetTopVideoClick()
{
MediaPlayer.SetTopVideoWindow();
}
</script>
当浏览器执行到MediaPlayer.SetTopVideoWindow()这个脚本语句时,就会去查找当前的所有窗口,为独立视频窗口设置一个特殊的标志位,表示该窗口的Z-index最高,应该显示在所有窗口的最前面。而当浏览器执行到MediaPlayer.CancelTopVideoWindow()这个脚本语句时,就会复位该独立视频窗口的标志位,根据用户选择了哪个窗口,哪个窗口就在最前面。
其对独立视频窗口进行取消置顶操作的网页脚本可参考如下:
<script>
Function respose CancelTopVideoWindowClick()
{
MediaPlayer.CancelTopVideoWindow();
}
</script>
对于独立视频窗口中播放的视频进行快进、快退等操作,服务器可以通过调用fastForward(speed)和fastRewind(speed)等JavaScript扩展函数来实现。
其快进操作的网页代码可参考如下:
<script>
Function resposefastForwardClick()
{
MediaPlayer.fastForward(2);
}
</script>
MediaPlayer.fastForward(2)表示用2倍数播放,但前提是服务器支持倍数播放,一般这个参数的范围为(2到32),各个服务器不同,支持的倍数播放也不同,如果该服务器不支持快进,快退,那即使该接口调用了,视频流还是按照当前的播放速率进行播放。fastRewind(speed)的实现方式类似于fastForward(speed)。
机顶盒也可以调用ReconvertVideoWindow()的JavaScript扩展函数来还原独立视频窗口到原来的页面窗口中。
其代码可参考如下:
<script>
Function resposeReconvertVideoWindowClick()
{
MediaPlayer.ReconvertVideoWindow();
}
</script>
当机顶盒执行到MediaPlayer.ReconvertVideoWindow()这条语句时,机顶盒就会去查找历史记录中该独立视频窗口的原始网页地址URL,重新解析执行该网页,把独立视频窗口还原到原始的页面窗口中,然后取消该独立视频窗口。实现独立视频窗口中的视频还原到原来的网页窗口中播放。
本发明实施例提供的播放视频的方法,通过创建独立于原网页窗口的独立视频窗口,并根据数据格式的不同,将原网页窗口中的视频数据在独立视频窗口中进行播放,从而达到同时打开两个窗口的效果,使用户可以在看视频节目的同时浏览其它网页,给用户更好的使用体验。同时,本实施例提供的方法还为用户提供各种针对独立视频窗口的操作,帮助用户方便的对独立视频窗口进行调整,使之更符合自己的习惯,让用户使用更方便,收看更舒适。
参见图3,为本发明提供的视频播放系统实施例结构示意图,在该视频播放系统中包括:
机顶盒1,用于接收用户在嵌套有视频窗口的页面窗口上触发的视频提取指令,在显示屏上创建独立于所述页面窗口的独立视频窗口;从所述页面窗口绑定的数据流中分离出视频数据,在所述独立视频窗口中进行播放。
电视机2,用于在所述机顶盒1的控制下播放视频或页面。
服务器3,用于向机顶盒1推送数据流,并在所述机顶盒1从数据流中分离出视频数据之后,将页面窗口中的其他数据重新排版,填补页面窗口中的视频窗口处的版面。
本发明实施例提供的视频播放系统,机顶盒在电视机中创建独立于原网页窗口的独立视频窗口,并从服务器推送的数据流中将视频数据分离出来,在独立视频窗口中进行播放,从而达到同时打开两个窗口的效果,使用户可以收看视频节目的同时浏览网页,给用户更好的使用体验。
参见图4,为本发明提供的机顶盒第一实施例结构示意图,如图4所示,该机顶盒包括:
窗口创建模块11,用于接收用户在嵌套有视频窗口的页面窗口上触发的视频提取指令,在显示屏上创建独立于所述页面窗口的独立视频窗口。
数据处理模块12,用于从所述页面窗口绑定的数据流中分离出视频数据,在所述窗口创建模块创建的独立视频窗口中进行播放。
实施本发明实施例提供的机顶盒,可以支持用户在看视频节目的同时浏览网页,给用户更好的使用体验。
参见图5,为本发明提供的机顶盒第二实施例结构示意图,在本实施例中,将更为详细的描述该机顶盒的结构,和各个单元模块的功能。如图5所示,该机顶盒包括:
窗口创建模块11,用于接收用户在嵌套有视频窗口的页面窗口上触发的视频提取指令,在显示屏上创建独立于所述页面窗口的独立视频窗口。该窗口创建模块11具体包括:
尺寸分析单元111,用于接收视频提取指令后,分析页面窗口中的视频窗口的尺寸。更为具体的,用户通过点击电视机显示屏上显示的网页窗口中的“提取视频播放”按钮,触发的视频提取指令,该视频提取指令发送给机顶盒窗口创建模块11。优选的,该视频提取指令发送给机顶盒的同时也发送给提供该网页的服务器。窗口创建模块11收到视频提取指令后,首先由尺寸分析单元111分析页面窗口中的视频窗口的尺寸大小。该视频窗口的尺寸必然小于其所在的页面窗口的尺寸,并将结果反馈给窗口创建单元112。
窗口创建单元112,用于根据尺寸分析单元111反馈的结果,在显示屏上创建独立于页面窗口的独立视频窗口,该独立视频窗口的尺寸小于页面窗口。更为具体的,窗口创建单元112执行的脚本可如下:
<scnpt>
Function resposePickupVideoClick()
{
MediaPlayer.PickUpVideo();
MediaPlayer.MoveVideoPosition(200,0,200,200);
}
当窗口创建单元112执行到MediaPlayer.PickUpVideo()的JavaScript扩展时,就会调用相关的图形绘制模块去创建一个独立视频窗口。
数据处理模块12,用于从所述页面窗口绑定的数据流中分离出视频数据,在所述窗口创建模块创建的独立视频窗口中进行播放。该数据处理模块12具体包括:
数据分离单元121,用于根据页面窗口绑定的数据流中各种数据的不同格式,分离出视频数据。更为具体的,因为页面窗口中不仅有文字信息,也有视频信息,所以其绑定的数据流中必然包含多种格式的数据。例如:文本信息以HTTP数据格式传送,视频信息以RTSP数据格式传递。数据分离单元121根据数据格式的不同,区分出视频数据和非视频数据,并将视频数据从原数据流中分离出来。
数据绑定单元122,用于将数据分离单元121分离出的视频数据与独立视频窗口绑定。更为具体的,数据绑定单元122将数据分离单元121分离出的视频数据与独立视频窗口绑定,而嵌套在页面窗口上的视频窗口中则没有对应的视频数据,即数据绑定单元122将该视频数据与独立视频窗口绑定后,嵌套在页面窗口上的视频窗口中将不再有视频图像。
视频播放单元123,用于将视频数据还原为视频,在独立视频窗口中进行播放。
在另一方面,数据分离单元121将原页面窗口绑定的数据流中的视频数据分离出来之后,嵌套在页面窗口上的视频窗口中将不再有视频图像,所以位于网络侧的服务器将对原页面窗口中的视频窗口部分通过Java Script函数进行插入图片,或者插入文字信息,后者把网页进行拉伸,或者留白等处理,实际应用中视具体网页的排版需要进行不同的处理,填补页面窗口中的视频窗口处的版面。
优选的,本发明实施例提供机顶盒还包括控制模块13,用于根据用户操作,用其它窗口替换所述页面窗口。
更为具体的,在数据处理模块12将网页窗口中的视频获取该在独立视频窗口中播放后,用户可能要求浏览其他的页面窗口,此时,控制模块13根据用户的操作,向服务器发送相应的页面获取请求,并接收服务器推送的对应页面信息数据流,控制模块13将该页面信息数据流解析新的页面窗口,替换原有的页面窗口,在电视上进行显示。
更进一步的,该控制模块13还与网络侧的服务器一起配合,实现对独立视频窗口的缩放大小,拖动,设置和取消置顶,恢复到页面播放,快进快退等功能,并根据用户的操作执行各种功能。更进一步的,在本发明实施例中,控制模块13与网络侧的服务器可以通过调用JavaScript扩展函数来实现上述各种功能。
更为具体的,在本实施例中,对于独立视频窗口的缩放,服务器可以通过调用ZoomOutInVideoWindow(scale)的JavaScript扩展函数来实现。其网页脚本参考如下:
<script>
Function resposeZoomOutInVideoClick()
{
MediaPlayer.ZoomOutInVideoWindow(150%);
}
</script>
当服务器执行到MediaPlayer.ZoomOutInVideoWindow(150%);这个脚本语句时,就会去获取该独立视频窗口句柄,然后获取该独立视频窗口的原有大小,例如原来窗口的宽和高分别为200px,那缩放后的独立视频窗口的宽和高就是300px,(PX像素一种相对长度单位),可以根据一定的算法,如保持窗口的中心点位置不变,然后来进行对窗口的重新排版,控制模块13将根据服务器的推送的数据流,调整独立视频窗口的大小。
对于独立视频窗口的置顶,服务器可以通过调用SetTopVideoWindow()的JavaScript扩展函数实现视频窗口置顶显示。此时独立视频窗口就在最前面显示,与独立视频窗口有重叠的其他网页窗口就被覆盖在后面了。对于独立视频窗口取消置顶,服务器可以通过调用CancelTopVideoWindow()的JavaScript扩展函数进行取消置顶操作,此时,焦点落在哪个窗口上面,哪个窗口就是置顶窗口。
对独立视频窗口设置置顶显示,其网页脚本参考如下:
<script>
Function resposeSetTopVideoClick()
{
MediaPlayer.SetTopVideoWindow();
}
</script>
当浏览器执行到MediaPlayer.SetTopVideoWindow()这个脚本语句时,就会去查找当前的所有窗口,为独立视频窗口设置一个特殊的标志位,表示该窗口的Z-index最高,应该显示在所有窗口的最前面。而当浏览器执行到MediaPlayer.CancelTopVideoWindow()这个脚本语句时,就会复位该独立视频窗口的标志位,根据用户选择了哪个窗口,哪个窗口就在最前面。控制模块13将根据服务器的推送的数据流,实现独立视频窗口的置顶或取消置顶。
其对独立视频窗口进行取消置顶操作的网页脚本可参考如下:
<script>
Function respose CancelTopVideoWindowClick()
{
MediaPlayer.CancelTopVideoWindow();
}
</script>
对于独立视频窗口中播放的视频进行快进、快退等操作,服务器可以通过调用fastForward(speed)和fastRewind(speed)等JavaScript扩展函数来实现。
其快进操作的网页代码可参考如下:
<script>
Function resposefastForwardClick()
{
MediaPlayer.fastForward(2);
}
</script>
MediaPlayer.fastForward(2)表示用2倍数播放,但前提是服务器支持倍数播放,一般这个参数的范围为(2到32),各个服务器不同,支持的倍数播放也不同,如果该服务器不支持快进,快退,那即使该接口调用了,视频流还是按照当前的播放速率进行播放。fastRewind(speed)的实现方式类似于fastForward(speed)。
控制模块13也可以调用ReconvertVideoWindow()的JavaScript扩展函数来还原独立视频窗口到原来的页面窗口中。
其代码可参考如下:
<script>
Function resposeReconvertVideoWindowClick()
{
MediaPlayer.ReconvertVideoWindow();
}
</script>
当控制模块13执行到MediaPlayer.ReconvertVideoWindow()这条语句时,控制模块13就会去查找历史记录中该独立视频窗口的原始网页地址URL,重新解析执行该网页,把独立视频窗口还原到原始的页面窗口中,然后取消该独立视频窗口。实现独立视频窗口中的视频还原到原来的网页窗口中播放。
本发明实施例提供的机顶盒,通过创建独立于原网页窗口的独立视频窗口,并根据数据格式的不同,将原网页窗口中的视频数据在独立视频窗口中进行播放,从而达到同时打开两个窗口的效果,使用户可以在看视频节目的同时浏览其它网页,给用户更好的使用体验。同时,本实施例提供的机顶盒还与网络侧服务器配合,为用户提供各种针对独立视频窗口的操作,帮助用户方便的对独立视频窗口进行调整,使之更符合自己的习惯,让用户使用更方便,收看更舒适。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的硬件平台的方式来实现,当然也可以全部通过硬件来实施。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。