CN104219579B - 一种视频切换方法和装置 - Google Patents
一种视频切换方法和装置 Download PDFInfo
- Publication number
- CN104219579B CN104219579B CN201410413259.9A CN201410413259A CN104219579B CN 104219579 B CN104219579 B CN 104219579B CN 201410413259 A CN201410413259 A CN 201410413259A CN 104219579 B CN104219579 B CN 104219579B
- Authority
- CN
- China
- Prior art keywords
- video
- current video
- player
- backstage
- time point
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明提供了一种视频切换方法和装置,其中,所述方法包括:在当前视频的播放过程中,预测前台播放器播放的当前视频和待播放的当前视频的下一个视频之间进行切换的时间点;前台播放器用于播放当前视频,当前视频的下一个视频由待创建的后台播放器播放;当前视频的下一个视频为当前视频的不同码流的视频,或者为与当前视频不同的视频;创建后台播放器,获取当前视频的下一个视频的播放数据,并通过后台播放器对当前视频的下一个视频的播放数据进行初始化渲染;当当前视频播放到指定时间点时,终止显示前台播放器的播放界面,显示后台播放器的播放界面;指定时间点为切换的时间点,或者为当前视频的结束时间点。本发明实现了无缝观影的用户体验。
Description
技术领域
本发明涉及视频处理技术领域,特别是涉及一种视频切换方法和装置。
背景技术
在现有的在线视频播放过程中,若要对正在播放的视频进行切换,通常分为两种情况。
一、在当前视频的播放过程中,停止播放当前视频,对待播放的视频进行初始化后播放待播放的视频。
这种情况的缺点是:停止播放当前视频会导致画面停止在最后一帧或黑屏,对待播放的视频进行初始化播放会导致重新加载视频数据,整个过程影响用户观影体验。
二、在当前视频的播放过程中,将当前视频切换为不同码流后继续播放。
这种情况的缺点是:将当前视频切换为不同码流后继续播放,需要从服务器获取不同码流的当前视频,获取的过程需要缓冲视频数据,并且要先停止播放当前视频,待不同码流的当前视频缓冲就绪后播放不同码流的当前视频,期间会由于网速慢的原因致使画面暂停,整个过程影响用户观影体验。
发明内容
本发明提供一种视频切换方法和装置,以解决在当前视频播放的过程中,将当前视频切换为当前视频的下一个视频进行播放的过程影响用户观影体验的问题。
为了解决上述问题,本发明公开了一种视频切换方法,包括:
在当前视频的播放过程中,预测前台播放器播放的所述当前视频和待播放的当前视频的下一个视频之间进行切换的时间点;所述前台播放器用于播放所述当前视频,所述当前视频的下一个视频由待创建的后台播放器播放;所述当前视频的下一个视频为所述当前视频的不同码流的视频,或者为与所述当前视频不同的视频;
创建所述后台播放器,获取所述当前视频的下一个视频的播放数据,并通过所述后台播放器对所述当前视频的下一个视频的播放数据进行初始化渲染;
当所述当前视频播放到指定时间点时,终止显示所述前台播放器的播放界面,显示所述后台播放器的播放界面;所述指定时间点为所述切换的时间点,或者为所述当前视频的结束时间点。
优选地,所述在当前视频的播放过程中,预测前台播放器播放的所述当前视频和待播放的当前视频的下一个视频之间进行切换的时间点,包括:
当所述当前视频的下一个视频为所述当前视频的不同码流的视频时,在当前视频的播放过程中,根据y=m×pow((m-e)/m,2),e<m,或者y=m,e≥m,预测所述切换的时间点;
其中,y为所述切换的时间点,m=(x×b/v),x为所述不同码流的视频预缓存的时间,b为所述不同码流的带宽,v为播放下载的速度,m为按照所述播放下载的速度v,在所述不同码流的带宽为b时,预缓存x时间的不同码流的视频需要的时间,e为所述当前视频已缓存的时间,pow((m-e)/m,2)为2的(m-e)/m次方;
当所述当前视频的下一个视频为与所述当前视频不同的视频时,在当前视频的播放过程中,预测所述切换的时间点为所述当前视频的最后n秒,n>0。
优选地,所述创建所述后台播放器,包括:
创建后台渲染窗口和后台视频流播放器;
将所述后台渲染窗口和所述后台视频流播放器进行关联,得到所述后台播放器。
优选地,所述获取所述当前视频的下一个视频的播放数据,包括:
当所述当前视频的下一个视频为所述当前视频的不同码流的视频时,根据所述切换的时间点和所述不同码流,从服务器端获取所述当前视频的下一个视频的播放数据;所述当前视频的下一个视频的播放数据为,以所述当前视频已播放的时间与所述切换的时间点之和,为开始时间的视频数据。
优选地,所述通过所述后台播放器对所述当前视频的下一个视频的播放数据进行初始化渲染,包括:
通过所述后台播放器对所述当前视频的下一个视频的播放数据的第一帧画面进行渲染后,暂停渲染操作。
优选地,所述当所述当前视频播放到指定时间点时,终止显示所述前台播放器的播放界面,显示所述后台播放器的播放界面,包括:
若所述当前视频的下一个视频为所述当前视频的不同码流的视频,则当所述当前视频播放到所述切换的时间点时,终止显示所述前台播放器的播放界面,显示所述后台播放器的播放界面;
若所述当前视频的下一个视频为与所述当前视频不同的视频,则当所述当前视频播放到所述当前视频的结束时间点时,终止显示所述前台播放器的播放界面,显示所述后台播放器的播放界面。
本发明还公开了一种视频切换装置,包括:
时间预测模块,用于在当前视频的播放过程中,预测前台播放器播放的所述当前视频和待播放的当前视频的下一个视频之间进行切换的时间点;所述前台播放器用于播放所述当前视频,所述当前视频的下一个视频由待创建的后台播放器播放;所述当前视频的下一个视频为所述当前视频的不同码流的视频,或者为与所述当前视频不同的视频;
后台渲染模块,用于创建所述后台播放器,获取所述当前视频的下一个视频的播放数据,并通过所述后台播放器对所述当前视频的下一个视频的播放数据进行初始化渲染;
播放控制模块,用于当所述当前视频播放到指定时间点时,终止显示所述前台播放器的播放界面,显示所述后台播放器的播放界面;所述指定时间点为所述切换的时间点,或者为所述当前视频的结束时间点。
优选地,所述时间预测模块,包括:
第一时间预测模块,用于当所述当前视频的下一个视频为所述当前视频的不同码流的视频时,在当前视频的播放过程中,根据y=m×pow((m-e)/m,2),e<m,或者y=m,e≥m,预测所述切换的时间点;
其中,y为所述切换的时间点,m=(x×b/v),x为所述不同码流的视频预缓存的时间,b为所述不同码流的带宽,v为播放下载的速度,m为按照所述播放下载的速度v,在所述不同码流的带宽为b时,预缓存x时间的不同码流的视频需要的时间,e为所述当前视频已缓存的时间,pow((m-e)/m,2)为2的(m-e)/m次方;
第二时间预测模块,用于当所述当前视频的下一个视频为与所述当前视频不同的视频时,在当前视频的播放过程中,预测所述切换的时间点为所述当前视频的最后n秒,n>0。
优选地,所述后台渲染模块在创建所述后台播放器时,包括:
渲染窗口管理模块,用于创建后台渲染窗口;
数据流播放器模块,用于创建后台视频流播放器;
关联模块,用于将所述后台渲染窗口和所述后台视频流播放器进行关联,得到所述后台播放器。
优选地,所述后台渲染模块在获取所述当前视频的下一个视频的播放数据时,若所述当前视频的下一个视频为所述当前视频的不同码流的视频,则根据所述切换的时间点和所述不同码流,从服务器端获取所述当前视频的下一个视频的播放数据;所述当前视频的下一个视频的播放数据为,以所述当前视频已播放的时间与所述切换的时间点之和,为开始时间的视频数据。
优选地,所述后台渲染模块在通过所述后台播放器对所述当前视频的下一个视频的播放数据进行初始化渲染时,通过所述后台播放器对所述当前视频的下一个视频的播放数据的第一帧画面进行渲染后,暂停渲染操作。
优选地,所述播放控制模块在所述当前视频的下一个视频为所述当前视频的不同码流的视频时,当所述当前视频播放到所述切换的时间点时,终止显示所述前台播放器的播放界面,显示所述后台播放器的播放界面;在所述当前视频的下一个视频为与所述当前视频不同的视频时,当所述当前视频播放到所述当前视频的结束时间点时,终止显示所述前台播放器的播放界面,显示所述后台播放器的播放界面。
与背景技术相比,本发明包括以下优点:
在当前视频播放的过程中,预测前台播放器播放的当前视频和待播放的当前视频的下一个视频之间进行切换的时间点,创建后台播放器,获取当前视频的下一个视频的播放数据,并通过后台播放器对当前视频的下一个视频的播放数据进行初始化渲染;当当前视频播放到指定时间点时,终止显示前台播放器的播放界面,显示后台播放器的播放界面。在当前视频播放的过程中,预测切换的时间点,前台播放器继续播放当前数据,在切换的时间点到达之前,获取并初始化渲染当前视频的下一个视频的播放数据,当切换的时间点到达时,显示后台播放器播放的当前视频的下一个视频的画面,终止显示前台播放器播放的当前视频的画面。由于根据切换的时间点可以确定当前视频和当前视频的下一个视频相对应的关键帧,当前视频的关键帧与对应的当前视频的下一个视频的关键帧是一致的,实现了无缝观影的用户体验。
附图说明
图1是本发明实施例一中的一种视频切换方法流程图;
图2是本发明实施例二中的一种视频切换方法流程图;
图3是本发明实施例三中的一种视频切换装置结构图;
图4是本发明实施例四中的一种视频切换装置结构图;
图5是本发明实施例五中的一种视频切换装置结构图;
图6是本发明实施例五中的一种视频切换装置中的各模块执行后台数据初始化操作的流程图;
图7是本发明实施例五中的一种视频切换装置中的播放控制器模块执行切换操作的流程图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
下面通过列举几个具体的实施例详细介绍本发明提供的一种视频切换方法和装置。
实施例一
详细介绍本发明实施例提供的一种视频切换方法。
参照图1,示出了本发明实施例中一种视频切换方法流程图。
步骤100,在当前视频的播放过程中,预测前台播放器播放的所述当前视频和待播放的当前视频的下一个视频之间进行切换的时间点。
其中,所述前台播放器用于播放所述当前视频,所述当前视频的下一个视频由待创建的后台播放器播放。所述当前视频的下一个视频为所述当前视频的不同码流的视频,或者为与所述当前视频不同的视频。
所述前台播放器播放的当前视频可以为用户正在观看的视频,例如,当前视频为视频A,正在播放的当前视频的码流为720p,当前视频A的下一个视频可以为码流为1080p的视频A,或者为视频B。所述切换的时间点可以为码流为720p的视频A与码流为1080p的视频A之间进行切换的时间点,或者为码流为720p的视频A与视频B之间进行切换的时间点。其中,视频B的码流可以为任意码流,在此对视频B的码流不作限制。
步骤102,创建所述后台播放器,获取所述当前视频的下一个视频的播放数据,并通过所述后台播放器对所述当前视频的下一个视频的播放数据进行初始化渲染。
所述步骤102可以从服务器端获取当前视频的下一个视频的播放数据。
步骤104,当所述当前视频播放到指定时间点时,终止显示所述前台播放器的播放界面,显示所述后台播放器的播放界面。
其中,所述指定时间点为所述切换的时间点,或者为所述当前视频的结束时间点。
当所述当前视频的下一个视频为所述当前视频的不同码流的视频时,所述指定时间点可以为所述切换的时间点;当所述当前视频的下一个视频为与所述当前视频不同的视频时,所述指定时间点可以为所述当前视频的结束时间点。
例如,当前视频为码流为720p的视频A,当当前视频的下一个视频为码流为1080p的视频A时,指定时间点可以为切换的时间点TM,切换的时间点T1可以为视频A在播放过程中的某个时间点;当当前视频的下一个视频为视频B时,指定时间点可以为视频A播放结束的时间点TE,时间点TE可以为整个视频A播放结束的时间点。
综上所述,本实施例在当前视频播放的过程中,预测前台播放器播放的当前视频和待播放的当前视频的下一个视频之间进行切换的时间点,创建后台播放器,获取当前视频的下一个视频的播放数据,并通过后台播放器对当前视频的下一个视频的播放数据进行初始化渲染;当当前视频播放到指定时间点时,终止显示前台播放器的播放界面,显示后台播放器的播放界面。在当前视频播放的过程中,预测切换的时间点,前台播放器继续播放当前数据,在切换的时间点到达之前,获取并初始化渲染当前视频的下一个视频的播放数据,当切换的时间点到达时,显示后台播放器播放的当前视频的下一个视频的画面,终止显示前台播放器播放的当前视频的画面。由于根据切换的时间点可以确定当前视频和当前视频的下一个视频相对应的关键帧,当前视频的关键帧与对应的当前视频的下一个视频的关键帧是一致的,实现了无缝观影的用户体验。
实施例二
详细介绍本发明实施例提供的一种视频切换方法。
参照图2,示出了本发明实施例中一种视频切换方法流程图。
步骤200,在当前视频的播放过程中,预测前台播放器播放的所述当前视频和待播放的当前视频的下一个视频之间进行切换的时间点。
其中,所述前台播放器用于播放所述当前视频,所述当前视频的下一个视频由待创建的后台播放器播放。所述当前视频的下一个视频为所述当前视频的不同码流的视频,或者为与所述当前视频不同的视频。
例如,当前视频为视频A,正在播放的当前视频的码流为720p,当前视频A的下一个视频可以为码流为1080p的视频A,或者为视频B。所述切换的时间点可以为码流为720p的视频A与码流为1080p的视频A之间进行切换的时间点,或者为码流为720p的视频A与视频B之间进行切换的时间点。其中,视频B的码流可以为任意码流,在此对视频B的码流不作限制。
优选地,根据所述当前视频的下一个视频的不同情况,所述步骤200可以分为以下两种情况执行:
(一)所述当前视频的下一个视频为所述当前视频的不同码流的视频。
在当前视频的播放过程中,可以根据y=m×pow((m-e)/m,2),e<m,或者y=m,e≥m,预测所述切换的时间点。
其中,y可以为所述切换的时间点,m=(x×b/v),x可以为所述不同码流的视频预缓存的时间,b可以为所述不同码流的带宽,v可以为播放下载的速度,m可以为按照所述播放下载的速度v,在所述不同码流的带宽为b时,预缓存x时间的不同码流的视频需要的时间,e可以为所述当前视频已缓存的时间,pow((m-e)/m,2)为2的(m-e)/m次方。
例如,x=10s,b=1024kbit/s,v=512kbit/s,则m=(10×1024/512)=20s,若e=10s,e<m,则y=20×pow((20-10)/20,2)≈14s;若e=30s,e≥m,则y=m=20s。
(二)所述当前视频的下一个视频为与所述当前视频不同的视频。
在当前视频的播放过程中,预测所述切换的时间点为所述当前视频的最后n秒,n>0。
例如,当前视频A的总时长为5400s,所述切换的时间点可以为当前视频A的最后10s,此时n=10。
步骤202,创建所述后台播放器,获取所述当前视频的下一个视频的播放数据,并通过所述后台播放器对所述当前视频的下一个视频的播放数据进行初始化渲染。
优选地,所述步骤202中,创建所述后台播放器的过程可以包括下列步骤:
步骤2021,创建后台渲染窗口和后台视频流播放器。
所述步骤2021可以分为两个步骤执行,一个步骤为创建后台渲染窗口,另一个步骤为创建后台视频流播放器。
步骤2022,将所述后台渲染窗口和所述后台视频流播放器进行关联,得到所述后台播放器。
上述前台播放器也是由前台渲染窗口和前台视频流播放器进行关联得到。
优选地,所述步骤202中,获取所述当前视频的下一个视频的播放数据的过程可以为:
当所述当前视频的下一个视频为所述当前视频的不同码流的视频时,根据所述切换的时间点和所述不同码流,从服务器端获取所述当前视频的下一个视频的播放数据。
此时,所述当前视频的下一个视频的播放数据为,以所述当前视频已播放的时间与所述切换的时间点之和,为开始时间的视频数据。
例如,当前视频A的码流为720p,当前视频已经播放500s,当前视频的下一个视频为码流为1080p的视频A,切换的时间点为50s,则可以从服务器端获取开始时间在500+50=550s的,码流为1080p的视频A的播放数据。
优选地,所述步骤202中,通过所述后台播放器对所述当前视频的下一个视频的播放数据进行初始化渲染的过程可以为:
通过所述后台播放器对所述当前视频的下一个视频的播放数据的第一帧画面进行渲染后,暂停渲染操作。
步骤204,当所述当前视频播放到指定时间点时,终止显示所述前台播放器的播放界面,显示所述后台播放器的播放界面。
其中,所述指定时间点为所述切换的时间点,或者为所述当前视频的结束时间点。
根据所述指定时间点的不同情况,所述步骤204可以分为以下两种情况:
(三)所述当前视频的下一个视频为所述当前视频的不同码流的视频。
所述步骤204中可以隐含包含一个过程:实时检测所述当前视频是否播放到所述切换的时间点。当所述当前视频播放到所述切换的时间点时,终止显示所述前台播放器的播放界面,显示所述后台播放器的播放界面。
例如,当前视频为码流为720p的视频A,当当前视频的下一个视频为码流为1080p的视频A时,指定时间点可以为切换的时间点TM,切换的时间点T1可以为视频A在播放过程中的某个时间点,当所述当前视频A播放到T1时,终止显示所述前台播放器的播放界面,显示所述后台播放器的播放界面。
(四)所述当前视频的下一个视频为与所述当前视频不同的视频。
当所述当前视频播放到所述当前视频的结束时间点时,终止显示所述前台播放器的播放界面,显示所述后台播放器的播放界面。
例如,当前视频为码流为720p的视频A,当当前视频的下一个视频为视频B时,指定时间点可以为视频A播放结束的时间点TE,时间点TE可以为整个视频A播放结束的时间点,当所述当前视频A播放到时间点TE,即视频A播放结束时,终止显示所述前台播放器的播放界面,显示所述后台播放器的播放界面。
综上所述,本实施例在当前视频播放的过程中,预测前台播放器播放的当前视频和待播放的当前视频的下一个视频之间进行切换的时间点,创建后台播放器,获取当前视频的下一个视频的播放数据,并通过后台播放器对当前视频的下一个视频的播放数据进行初始化渲染;当当前视频播放到指定时间点时,终止显示前台播放器的播放界面,显示后台播放器的播放界面。在当前视频播放的过程中,预测切换的时间点,前台播放器继续播放当前数据,在切换的时间点到达之前,获取并初始化渲染当前视频的下一个视频的播放数据,当切换的时间点到达时,显示后台播放器播放的当前视频的下一个视频的画面,终止显示前台播放器播放的当前视频的画面。由于根据切换的时间点可以确定当前视频和当前视频的下一个视频相对应的关键帧,当前视频的关键帧与对应的当前视频的下一个视频的关键帧是一致的,实现了无缝观影的用户体验。
实施例三
详细介绍本发明实施例提供的一种视频切换装置。
参照图3,示出了本发明实施例中一种视频切换装置结构图。
所述装置可以包括:时间预测模块300,后台渲染模块302,播放控制模块304。
下面分别详细介绍各模块的功能以及各模块之间的关系。
时间预测模块300,用于在当前视频的播放过程中,预测前台播放器播放的所述当前视频和待播放的当前视频的下一个视频之间进行切换的时间点。
所述前台播放器可以用于播放所述当前视频,所述当前视频的下一个视频可以由待创建的后台播放器播放。
所述当前视频的下一个视频可以为所述当前视频的不同码流的视频,或者可以为与所述当前视频不同的视频。
后台渲染模块302,用于创建所述后台播放器,获取所述当前视频的下一个视频的播放数据,并通过所述后台播放器对所述当前视频的下一个视频的播放数据进行初始化渲染。
播放控制模块304,用于当所述当前视频播放到指定时间点时,终止显示所述前台播放器的播放界面,显示所述后台播放器的播放界面。
所述指定时间点可以为所述切换的时间点,或者可以为所述当前视频的结束时间点。
综上所述,本实施例在当前视频播放的过程中,预测前台播放器播放的当前视频和待播放的当前视频的下一个视频之间进行切换的时间点,创建后台播放器,获取当前视频的下一个视频的播放数据,并通过后台播放器对当前视频的下一个视频的播放数据进行初始化渲染;当当前视频播放到指定时间点时,终止显示前台播放器的播放界面,显示后台播放器的播放界面。在当前视频播放的过程中,预测切换的时间点,前台播放器继续播放当前数据,在切换的时间点到达之前,获取并初始化渲染当前视频的下一个视频的播放数据,当切换的时间点到达时,显示后台播放器播放的当前视频的下一个视频的画面,终止显示前台播放器播放的当前视频的画面。由于根据切换的时间点可以确定当前视频和当前视频的下一个视频相对应的关键帧,当前视频的关键帧与对应的当前视频的下一个视频的关键帧是一致的,实现了无缝观影的用户体验。
实施例四
详细介绍本发明实施例提供的一种视频切换装置。
参照图4,示出了本发明实施例中一种视频切换装置结构图。
所述装置可以包括:时间预测模块400,后台渲染模块402,播放控制模块404。
其中,所述时间预测模块400,可以包括:第一时间预测模块4001,第二时间预测模块4002。
所述后台渲染模块402,可以包括:渲染窗口管理模块4021,数据流播放器模块4022,关联模块4023。
下面分别详细介绍各模块的功能以及各模块之间的关系。
时间预测模块400,用于在当前视频的播放过程中,预测前台播放器播放的所述当前视频和待播放的当前视频的下一个视频之间进行切换的时间点。
所述前台播放器可以用于播放所述当前视频,所述当前视频的下一个视频可以由待创建的后台播放器播放。
所述当前视频的下一个视频可以为所述当前视频的不同码流的视频,或者可以为与所述当前视频不同的视频。
优选地,所述时间预测模块400,可以包括:
第一时间预测模块4001,用于当所述当前视频的下一个视频为所述当前视频的不同码流的视频时,在当前视频的播放过程中,可以根据y=m×pow((m-e)/m,2),e<m,或者y=m,e≥m,预测所述切换的时间点。
其中,y为所述切换的时间点,m=(x×b/v),x为所述不同码流的视频预缓存的时间,b为所述不同码流的带宽,v为播放下载的速度,m为按照所述播放下载的速度v,在所述不同码流的带宽为b时,预缓存x时间的不同码流的视频需要的时间,e为所述当前视频已缓存的时间,pow((m-e)/m,2)为2的(m-e)/m次方。
第二时间预测模块4002,用于当所述当前视频的下一个视频为与所述当前视频不同的视频时,在当前视频的播放过程中,预测所述切换的时间点为所述当前视频的最后n秒,n>0。
后台渲染模块402,用于创建所述后台播放器,获取所述当前视频的下一个视频的播放数据,并通过所述后台播放器对所述当前视频的下一个视频的播放数据进行初始化渲染。
优选地,所述后台渲染模块402,可以包括:
渲染窗口管理模块4021,用于创建后台渲染窗口。
数据流播放器模块4022,用于创建后台视频流播放器。
关联模块4023,用于将所述后台渲染窗口和所述后台视频流播放器进行关联,得到所述后台播放器。
优选地,所述后台渲染模块402在获取所述当前视频的下一个视频的播放数据时,若所述当前视频的下一个视频为所述当前视频的不同码流的视频,则根据所述切换的时间点和所述不同码流,从服务器端获取所述当前视频的下一个视频的播放数据;所述当前视频的下一个视频的播放数据为,以所述当前视频已播放的时间与所述切换的时间点之和,为开始时间的视频数据。
优选地,所述后台渲染模块402在通过所述后台播放器对所述当前视频的下一个视频的播放数据进行初始化渲染时,通过所述后台播放器对所述当前视频的下一个视频的播放数据的第一帧画面进行渲染后,暂停渲染操作。
播放控制模块404,用于当所述当前视频播放到指定时间点时,终止显示所述前台播放器的播放界面,显示所述后台播放器的播放界面。
所述指定时间点可以为所述切换的时间点,或者可以为所述当前视频的结束时间点。
优选地,当所述指定时间点可以为所述切换的时间点时,所述播放控制模块404还可以用于实时检测所述当前视频是否播放到所述切换的时间点。
优选地,所述播放控制模块404在所述当前视频的下一个视频为所述当前视频的不同码流的视频时,当所述当前视频播放到所述切换的时间点时,终止显示所述前台播放器的播放界面,显示所述后台播放器的播放界面;在所述当前视频的下一个视频为与所述当前视频不同的视频时,当所述当前视频播放到所述当前视频的结束时间点时,终止显示所述前台播放器的播放界面,显示所述后台播放器的播放界面。
综上所述,本实施例在当前视频播放的过程中,预测前台播放器播放的当前视频和待播放的当前视频的下一个视频之间进行切换的时间点,创建后台播放器,获取当前视频的下一个视频的播放数据,并通过后台播放器对当前视频的下一个视频的播放数据进行初始化渲染;当当前视频播放到指定时间点时,终止显示前台播放器的播放界面,显示后台播放器的播放界面。在当前视频播放的过程中,预测切换的时间点,前台播放器继续播放当前数据,在切换的时间点到达之前,获取并初始化渲染当前视频的下一个视频的播放数据,当切换的时间点到达时,显示后台播放器播放的当前视频的下一个视频的画面,终止显示前台播放器播放的当前视频的画面。由于根据切换的时间点可以确定当前视频和当前视频的下一个视频相对应的关键帧,当前视频的关键帧与对应的当前视频的下一个视频的关键帧是一致的,实现了无缝观影的用户体验。
实施例五
详细介绍本发明实施例提供的一种视频切换装置。
参照图5,示出了本发明实施例中一种视频切换装置结构图。
所述装置可以包括:播放控制器模块500,渲染窗口管理器模块502,数据流播放器模块504。
下面分别详细介绍各模块的功能以及各模块之间的关系。
播放控制器模块500,用于预测切换的时间点和监测播放时间点,并切换前后台数据流。
渲染窗口管理器模块502,用于管理渲染窗口并将渲染窗口与数据流播放器一同管理。
数据流播放器模块504,用于获取码流数据并将视频图像渲染到已知的渲染窗口上。
当视频发生切换时,播放控制器模块500根据目前播放的视频的时间点预测一个前后台播放器切换的时间点(也就是新码流开始播放的时间点)并向渲染窗口管理器模块502发送指令创建新的后台渲染窗口。
其中,新码流可以指用户在播放界面上点击的新的清晰度(播放界面提供给用户选择高清、超清、标清、1080p的选择。一个清晰度对应一个码流),它的作用就是让数据流播放器根据这个标识去服务器取对应的码流数据。
渲染窗口管理器模块502创建后台渲染窗口并通知数据流播放器模块504创建新的数据流播放器。
数据流播放器模块504根据预测的切换的时间点从该时间点重新获取新数据并初始化后台数据流播放器。
当预测的切换的时间点到达时,播放控制器模块500显示后台渲染窗口、开启后台数据流播放器并停止播放渲染前台渲染窗口。
需要说明的是,播放器=渲染窗口+数据流播放器,前台播放器就是显示给用户看的渲染窗口+对应的数据流播放器,后台播放器就是切换码流时隐藏的渲染窗口+对应的数据流播放器。
根据视频切换的不同,所述装置中的各模块可以执行下列功能。
1、当切换为当前视频的新码流的视频时。
播放控制器模块500接收到用户选择的新的码流标识(也就是新的清晰度)时,预测出新码流的视频开始播放的时间点。
渲染窗口管理器模块502创建一个渲染窗口。
数据流播放器模块504创建一个数据流播放器,并将渲染窗口和数据流播放器关联得到后台播放器。
其中,后台播放器可以根据开始播放的时间点和清晰度从服务器取该时间点开始的该清晰度对应的码流播放数据,取下数据并渲染完第一帧画面后,暂停渲染,等待播放控制器模块500将正在播放的前台播放器停止并切换到播放用户选择的新码流的后台播放器进行播放。
整个后台播放器的操作都是异步执行的,所以播放控制器模块500会每秒检测一次前台播放器的时间点,时间点到了预测的切换时间点就将前台播放器销毁,将后台播放器显示。由于后台播放器已渲染出画面并缓冲了数据,这样就达到了平滑切换的目标。
2、当切换为与当前视频不同的视频时。
各模块执行的流程与上述1中一样,只是预测的切换的时间点为当前视频的最后10s,也可以为其他时间,可以根据实际情况设定。也就是当前视频播放到还剩下10s时,开始建立后台播放器播放下一个视频的码流数据,当前视频播放到结尾就切换为下一个视频。
本发明实施例中的各模块执行的过程可以分为两个过程,分别为后台数据流初始化操作流程和切换操作流程。
参照图6,示出了本发明实施例中一种视频切换装置中的各模块执行后台数据初始化操作的流程图。
步骤30,播放控制器模块500预测切换的时间点。
播放控制器模块500还可以通知渲染窗口管理器模块502创建后台渲染窗口。
步骤32,渲染窗口管理器模块502创建后台渲染窗口。
渲染窗口管理器模块502还可以通知视频流播放器模块504创建后台数据流播放器。
步骤34,视频流播放器模块504创建后台数据流播放器并开始缓冲待播放的数据。
步骤36,视频流播放器模块504渲染待播放的数据并等待将后台数据流切换为前台数据流。
参照图7,示出了本发明实施例中一种视频切换装置中的播放控制器模块500执行切换操作的流程图。
步骤40,播放控制器模块500实时检测当前视频是否播放到预测的切换的时间点。若未到切换的时间点,执行步骤42;若到达切换的时间点,执行步骤44。
步骤42,播放控制器模块500控制前台播放器继续播放当前视频。
步骤44,播放控制器模块500控制前台播放器停止播放当前视频。
步骤46,播放控制器模块500将后台播放器切换到前台进行显示。
步骤48,播放控制器模块500控制后台播放器播放视频。
综上所述,本实施例在当前视频播放的过程中,预测前台播放器播放的当前视频和待播放的当前视频的下一个视频之间进行切换的时间点,创建后台播放器,获取当前视频的下一个视频的播放数据,并通过后台播放器对当前视频的下一个视频的播放数据进行初始化渲染;当当前视频播放到指定时间点时,终止显示前台播放器的播放界面,显示后台播放器的播放界面。在当前视频播放的过程中,预测切换的时间点,前台播放器继续播放当前数据,在切换的时间点到达之前,获取并初始化渲染当前视频的下一个视频的播放数据,当切换的时间点到达时,显示后台播放器播放的当前视频的下一个视频的画面,终止显示前台播放器播放的当前视频的画面。由于根据切换的时间点可以确定当前视频和当前视频的下一个视频相对应的关键帧,当前视频的关键帧与对应的当前视频的下一个视频的关键帧是一致的,实现了无缝观影的用户体验。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
以上对本发明实施例所提供的一种视频切换方法和装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种视频切换方法,其特征在于,包括:
在当前视频的播放过程中,预测前台播放器播放的所述当前视频和待播放的当前视频的下一个视频之间进行切换的时间点;所述前台播放器用于播放所述当前视频,所述当前视频的下一个视频由待创建的后台播放器播放;所述当前视频的下一个视频为所述当前视频的不同码流的视频,或者为与所述当前视频不同的视频;
创建所述后台播放器,获取所述当前视频的下一个视频的播放数据,所述获取所述当前视频的下一个视频的播放数据包括:当所述当前视频的下一个视频为所述当前视频的不同码流的视频时,根据所述切换的时间点和所述不同码流,从服务器端获取所述当前视频的下一个视频的播放数据;所述当前视频的下一个视频的播放数据为,以所述当前视频已播放的时间与所述切换的时间点之和,为开始时间的视频数据;
并通过所述后台播放器对所述当前视频的下一个视频的播放数据进行初始化渲染;
当所述当前视频播放到指定时间点时,终止显示所述前台播放器的播放界面,显示所述后台播放器的播放界面;所述指定时间点为所述切换的时间点,或者为所述当前视频的结束时间点,具体包括:若所述当前视频的下一个视频为与所述当前视频不同的视频,则当所述当前视频播放到所述当前视频的结束时间点时,终止显示所述前台播放器的播放界面,显示所述后台播放器的播放界面。
2.根据权利要求1所述的方法,其特征在于,所述在当前视频的播放过程中,预测前台播放器播放的所述当前视频和待播放的当前视频的下一个视频之间进行切换的时间点,包括:
当所述当前视频的下一个视频为所述当前视频的不同码流的视频时,在当前视频的播放过程中,根据y=m×pow((m-e)/m,2),e<m,或者y=m,e≥m,预测所述切换的时间点;
其中,y为所述切换的时间点,m=(x×b/v),x为所述不同码流的视频预缓存的时间,b为所述不同码流的带宽,v为播放下载的速度,m为按照所述播放下载的速度v,在所述不同码流的带宽为b时,预缓存x时间的不同码流的视频需要的时间,e为所述当前视频已缓存的时间,pow((m-e)/m,2)为2的(m-e)/m次方;
当所述当前视频的下一个视频为与所述当前视频不同的视频时,在当前视频的播放过程中,预测所述切换的时间点为所述当前视频的最后n秒,n>0。
3.根据权利要求1所述的方法,其特征在于,所述创建所述后台播放器,包括:
创建后台渲染窗口和后台视频流播放器;
将所述后台渲染窗口和所述后台视频流播放器进行关联,得到所述后台播放器。
4.根据权利要求1所述的方法,其特征在于,所述通过所述后台播放器对所述当前视频的下一个视频的播放数据进行初始化渲染,包括:
通过所述后台播放器对所述当前视频的下一个视频的播放数据的第一帧画面进行渲染后,暂停渲染操作。
5.根据权利要求1所述的方法,其特征在于,所述当所述当前视频播放到指定时间点时,终止显示所述前台播放器的播放界面,显示所述后台播放器的播放界面,包括:
若所述当前视频的下一个视频为所述当前视频的不同码流的视频,则当所述当前视频播放到所述切换的时间点时,终止显示所述前台播放器的播放界面,显示所述后台播放器的播放界面。
6.一种视频切换装置,其特征在于,包括:
时间预测模块,用于在当前视频的播放过程中,预测前台播放器播放的所述当前视频和待播放的当前视频的下一个视频之间进行切换的时间点;所述前台播放器用于播放所述当前视频,所述当前视频的下一个视频由待创建的后台播放器播放;所述当前视频的下一个视频为所述当前视频的不同码流的视频,或者为与所述当前视频不同的视频;
后台渲染模块,用于创建所述后台播放器,获取所述当前视频的下一个视频的播放数据,并通过所述后台播放器对所述当前视频的下一个视频的播放数据进行初始化渲染;所述后台渲染模块在获取所述当前视频的下一个视频的播放数据时,若所述当前视频的下一个视频为所述当前视频的不同码流的视频,则根据所述切换的时间点和所述不同码流,从服务器端获取所述当前视频的下一个视频的播放数据;所述当前视频的下一个视频的播放数据为,以所述当前视频已播放的时间与所述切换的时间点之和,为开始时间的视频数据;
播放控制模块,用于当所述当前视频播放到指定时间点时,终止显示所述前台播放器的播放界面,显示所述后台播放器的播放界面;所述指定时间点为所述切换的时间点,或者为所述当前视频的结束时间点,播放控制模块还包括:终止显示模块,用于在所述当前视频的下一个视频为与所述当前视频不同的视频时,当所述当前视频播放到所述当前视频的结束时间点时,终止显示所述前台播放器的播放界面,显示所述后台播放器的播放界面。
7.根据权利要求6所述的装置,其特征在于,所述时间预测模块,包括:
第一时间预测模块,用于当所述当前视频的下一个视频为所述当前视频的不同码流的视频时,在当前视频的播放过程中,根据y=m×pow((m-e)/m,2),e<m,或者y=m,e≥m,预测所述切换的时间点;
其中,y为所述切换的时间点,m=(x×b/v),x为所述不同码流的视频预缓存的时间,b为所述不同码流的带宽,v为播放下载的速度,m为按照所述播放下载的速度v,在所述不同码流的带宽为b时,预缓存x时间的不同码流的视频需要的时间,e为所述当前视频已缓存的时间,pow((m-e)/m,2)为2的(m-e)/m次方;
第二时间预测模块,用于当所述当前视频的下一个视频为与所述当前视频不同的视频时,在当前视频的播放过程中,预测所述切换的时间点为所述当前视频的最后n秒,n>0。
8.根据权利要求6所述的装置,其特征在于,所述后台渲染模块在创建所述后台播放器时,包括:
渲染窗口管理模块,用于创建后台渲染窗口;
数据流播放器模块,用于创建后台视频流播放器;
关联模块,用于将所述后台渲染窗口和所述后台视频流播放器进行关联,得到所述后台播放器。
9.根据权利要求6所述的装置,其特征在于,所述后台渲染模块在通过所述后台播放器对所述当前视频的下一个视频的播放数据进行初始化渲染时,通过所述后台播放器对所述当前视频的下一个视频的播放数据的第一帧画面进行渲染后,暂停渲染操作。
10.根据权利要求6所述的装置,其特征在于,所述播放控制模块在所述当前视频的下一个视频为所述当前视频的不同码流的视频时,当所述当前视频播放到所述切换的时间点时,终止显示所述前台播放器的播放界面,显示所述后台播放器的播放界面。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410413259.9A CN104219579B (zh) | 2014-08-20 | 2014-08-20 | 一种视频切换方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410413259.9A CN104219579B (zh) | 2014-08-20 | 2014-08-20 | 一种视频切换方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104219579A CN104219579A (zh) | 2014-12-17 |
CN104219579B true CN104219579B (zh) | 2018-03-06 |
Family
ID=52100652
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410413259.9A Active CN104219579B (zh) | 2014-08-20 | 2014-08-20 | 一种视频切换方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104219579B (zh) |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104469521B (zh) * | 2014-12-24 | 2018-05-29 | 青岛海信网络科技股份有限公司 | 一种多版式视频媒体贯播控制方法 |
CN104601999A (zh) * | 2014-12-31 | 2015-05-06 | 乐视网信息技术(北京)股份有限公司 | 一种基于关键帧的编码方法及装置 |
CN105992051B (zh) * | 2015-03-03 | 2019-04-02 | 广州市动景计算机科技有限公司 | 内容数据播放方法及装置 |
CN104967884B (zh) * | 2015-04-17 | 2018-01-26 | 北京奇艺世纪科技有限公司 | 一种码流切换方法和装置 |
CN105096982B (zh) * | 2015-09-28 | 2018-09-25 | 北京金山安全软件有限公司 | 一种音乐切换方法及装置 |
CN105407381B (zh) * | 2015-10-30 | 2019-02-22 | 北京奇艺世纪科技有限公司 | 一种视频节目播放方法及装置 |
CN105611393B (zh) * | 2015-12-21 | 2019-04-23 | 深圳Tcl数字技术有限公司 | 视频播放控制方法及装置 |
CN105657522B (zh) * | 2016-01-05 | 2019-06-28 | 深圳市金立通信设备有限公司 | 一种视频播放的方法以及终端 |
CN107197371B (zh) * | 2016-03-15 | 2019-12-13 | 广州市动景计算机科技有限公司 | 视频清晰度的切换方法及装置 |
CN106162232A (zh) * | 2016-06-29 | 2016-11-23 | 乐视控股(北京)有限公司 | 视频播放控制方法及装置 |
CN106231402A (zh) * | 2016-07-18 | 2016-12-14 | 杭州当虹科技有限公司 | 一种在终端上将多个视频无缝衔接播放的方法 |
CN109151556B (zh) * | 2017-06-16 | 2021-07-09 | 腾讯科技(深圳)有限公司 | 视频播放方法、装置、智能电视以及存储介质 |
CN107484014A (zh) * | 2017-07-25 | 2017-12-15 | 深圳Tcl数字技术有限公司 | 信源快速切换方法、电视设备及存储介质 |
CN107547940B (zh) * | 2017-09-13 | 2019-11-12 | 广州酷狗计算机科技有限公司 | 视频播放处理方法、设备及计算机可读存储介质 |
CN108235106B (zh) * | 2018-01-31 | 2020-10-30 | 聚好看科技股份有限公司 | 一种智能电视上控制视频遮挡图的方法及智能电视 |
CN108965907B (zh) * | 2018-07-11 | 2020-03-13 | 北京字节跳动网络技术有限公司 | 用于播放视频的方法、装置和系统 |
CN109168078B (zh) * | 2018-09-10 | 2022-07-12 | 苏宁智能终端有限公司 | 一种视频清晰度切换方法及装置 |
CN109451361B (zh) * | 2018-10-18 | 2022-01-04 | 武汉斗鱼网络科技有限公司 | Android系统的码流清晰度切换方法、装置、终端及可读介质 |
CN109413457B (zh) * | 2018-10-18 | 2021-11-09 | 武汉斗鱼网络科技有限公司 | Android系统的码流清晰度切换方法、装置、终端及可读介质 |
CN111479171B (zh) * | 2019-01-23 | 2022-05-20 | 上海哔哩哔哩科技有限公司 | Web播放不同视频源间的伪无缝切换方法、装置及介质 |
CN111954068B (zh) * | 2019-05-14 | 2023-01-24 | 阿里巴巴集团控股有限公司 | 用于视频清晰度切换的方法、设备及电子设备 |
CN112019858B (zh) * | 2019-05-31 | 2022-11-29 | 腾讯科技(深圳)有限公司 | 一种视频播放方法、装置、计算机设备和存储介质 |
CN110213659B (zh) * | 2019-07-01 | 2021-06-08 | 杭州当虹科技股份有限公司 | 一种可在不同视频流间快速切换播放器的实现方法 |
CN110996162A (zh) * | 2019-12-12 | 2020-04-10 | 国微集团(深圳)有限公司 | 多节目音视频流的无缝切换播放方法、媒体播放器 |
CN110996134B (zh) * | 2019-12-23 | 2022-09-09 | 腾讯科技(深圳)有限公司 | 视频播放方法、装置及存储介质 |
CN113225585B (zh) * | 2020-01-21 | 2024-08-23 | 腾讯科技(深圳)有限公司 | 一种视频清晰度的切换方法、装置、电子设备以及存储介质 |
CN113709556A (zh) * | 2020-05-20 | 2021-11-26 | 中兴通讯股份有限公司 | 频道切换方法、装置、设备、系统和存储介质 |
CN111918129B (zh) * | 2020-08-10 | 2022-04-01 | 四川长虹电器股份有限公司 | 视频间无缝衔接播放的方法、系统及终端 |
CN113794924A (zh) * | 2021-08-02 | 2021-12-14 | 乐融致新电子科技(天津)有限公司 | 视频播放方法、装置、设备和计算机可读存储介质 |
CN114513692A (zh) * | 2021-12-29 | 2022-05-17 | 影石创新科技股份有限公司 | 一种视频预览方法、终端及存储介质 |
CN114979693A (zh) * | 2022-05-24 | 2022-08-30 | 深圳市迅驰源电子有限公司 | 实时数据与存储数据的切换方法、系统、装置和存储介质 |
CN115297369B (zh) * | 2022-07-08 | 2024-02-06 | 北京达佳互联信息技术有限公司 | 一种视频数据播放方法、装置、设备及介质 |
CN116634189B (zh) * | 2023-07-20 | 2023-10-03 | 天津星耀九洲科技有限公司 | 交互式直播数据显示方法、装置及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102291599A (zh) * | 2011-05-07 | 2011-12-21 | 董友球 | 网络视频播放方法及网络视频播放装置 |
CN102647634A (zh) * | 2012-05-02 | 2012-08-22 | 合一网络技术(北京)有限公司 | 一种基于HTML5video的多分片视频播放方法及装置 |
CN102905188A (zh) * | 2012-11-01 | 2013-01-30 | 北京奇艺世纪科技有限公司 | 一种视频码流切换方法及装置 |
CN102957672A (zh) * | 2011-08-25 | 2013-03-06 | 中国电信股份有限公司 | 自适应播放flv媒体流的方法、客户端和系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8331772B1 (en) * | 2006-09-07 | 2012-12-11 | Opentv, Inc. | Systems and methods to position and play content |
-
2014
- 2014-08-20 CN CN201410413259.9A patent/CN104219579B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102291599A (zh) * | 2011-05-07 | 2011-12-21 | 董友球 | 网络视频播放方法及网络视频播放装置 |
CN102957672A (zh) * | 2011-08-25 | 2013-03-06 | 中国电信股份有限公司 | 自适应播放flv媒体流的方法、客户端和系统 |
CN102647634A (zh) * | 2012-05-02 | 2012-08-22 | 合一网络技术(北京)有限公司 | 一种基于HTML5video的多分片视频播放方法及装置 |
CN102905188A (zh) * | 2012-11-01 | 2013-01-30 | 北京奇艺世纪科技有限公司 | 一种视频码流切换方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104219579A (zh) | 2014-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104219579B (zh) | 一种视频切换方法和装置 | |
CN107547940B (zh) | 视频播放处理方法、设备及计算机可读存储介质 | |
CN105915937B (zh) | 一种全景视频播放方法及设备 | |
TWI596933B (zh) | 用於快速切換的編碼解碼器技術 | |
JP2021514752A5 (zh) | ||
CN108174280B (zh) | 一种音视频在线播放方法及系统 | |
CN108079578A (zh) | 一种基于云游戏的码率调整方法、装置及存储介质 | |
US11917271B2 (en) | Techniques for advancing playback of interactive media titles in response to user selections | |
CN105025335B (zh) | 一种云桌面环境下的视频同步渲染的方法 | |
CN107451066A (zh) | 卡顿处理方法和装置、存储介质、终端 | |
CN104080006B (zh) | 一种视频处理装置及方法 | |
CN104320701B (zh) | 信号源的切换方法及装置 | |
CN105916008A (zh) | 一种视频缓冲方法及装置 | |
US10368110B1 (en) | Smooth media data switching for media players | |
CN106412630B (zh) | 视频列表切换控制方法及装置 | |
CN111161685B (zh) | 一种虚拟现实显示设备及其控制方法 | |
US20120244935A1 (en) | Synchronizing game character display with game player viewing detection | |
CN105578073B (zh) | 一种视频监控画面显示方法及装置 | |
CN108521604A (zh) | 重定向视频的多屏显示方法及装置 | |
EP3925413B1 (en) | Determining a light effect based on an average color after a detected transition in content | |
CN106604058A (zh) | 一种视频插播的方法及设备 | |
CN105992051B (zh) | 内容数据播放方法及装置 | |
CN105704446B (zh) | 一种多窗口视频切换的方法及装置 | |
US11172238B1 (en) | Multiple view streaming | |
CN111479171B (zh) | Web播放不同视频源间的伪无缝切换方法、装置及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |