CN116527992A - 视频播放分辨率的切换方法及装置 - Google Patents
视频播放分辨率的切换方法及装置 Download PDFInfo
- Publication number
- CN116527992A CN116527992A CN202210074422.8A CN202210074422A CN116527992A CN 116527992 A CN116527992 A CN 116527992A CN 202210074422 A CN202210074422 A CN 202210074422A CN 116527992 A CN116527992 A CN 116527992A
- Authority
- CN
- China
- Prior art keywords
- video
- address
- video stream
- player
- content distribution
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000009826 distribution Methods 0.000 claims abstract description 88
- 230000002776 aggregation Effects 0.000 claims abstract description 72
- 238000004220 aggregation Methods 0.000 claims abstract description 72
- 238000012544 monitoring process Methods 0.000 claims description 5
- 230000003139 buffering effect Effects 0.000 abstract description 10
- 230000000903 blocking effect Effects 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 29
- 238000003860 storage Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 10
- 238000004590 computer program Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 230000007547 defect Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
- H04N21/44004—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
- H04N21/4402—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
- H04N21/440263—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by altering the spatial resolution, e.g. for displaying on a connected PDA
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
- H04N21/4402—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
- H04N21/440281—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by altering the temporal resolution, e.g. by frame skipping
Abstract
本申请的实施例提供了一种视频播放分辨率的切换方法及装置,该方法包括:从播放器获取第二视频流的地址,并向IP聚集服务发送第二视频流的地址;获取IP聚集服务根据第二视频流的地址返回的第一内容分发网络服务器的第一IP地址,第一内容分发网络服务器缓存有第二分辨率的第二视频流;根据第二视频流的地址和第一IP地址生成第一视频访问地址,并通过第一视频访问地址访问第一内容分发网络服务器;接收第一内容分发网络服务器下发的第二视频流,并向播放器返回第二视频流,以在播放器播放第二视频流。本申请的方案可以避免分辨率切换时出现卡顿、黑屏、缓冲、耗时长的问题,从而提升用户体验。
Description
技术领域
本申请涉及视频技术领域,具体而言,涉及一种视频播放分辨率的切换方法及装置。
背景技术
切换视频分辨率是用户使用视频播放软件时经常使用的功能之一,很多软件产品提供了该功能。
然而,当前视频分辨率切换方案在切换过程中或者存在卡顿、黑屏、缓冲等缺陷,或者存在切换耗时长的缺陷,这严重影响了用户体验。
发明内容
本申请的实施例提供了一种视频播放分辨率的切换方法、装置、计算机可读介质、电子设备及计算机程序产品,进而至少在一定程度上可以有效避免分辨率切换时出现卡顿、黑屏、缓冲、耗时长等问题。
本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
根据本申请实施例的一个方面,提供了一种视频播放分辨率的切换方法,所述方法包括:从播放器获取第二视频流的地址,并向IP聚集服务发送包括所述第二视频流的地址的网络请求,所述第二视频流的地址是所述播放器接收到的分辨率切换请求所指示的,所述分辨率切换请求是所述播放器在播放第一分辨率的第一视频流时接收到的;获取所述IP聚集服务根据所述第二视频流的地址返回的第一内容分发网络服务器的第一IP地址,所述第一内容分发网络服务器缓存有第二分辨率的第二视频流;根据所述第二视频流的地址和所述第一IP地址生成第一视频访问地址,并通过所述第一视频访问地址访问所述第一内容分发网络服务器;接收所述第一内容分发网络服务器下发的所述第二视频流,并向所述播放器返回所述第二视频流,以在所述播放器播放所述第二视频流。
根据本申请实施例的一个方面,提供了一种视频播放分辨率的切换装置,所述装置包括:获取和发送单元,用于从播放器获取第二视频流的地址,并向IP聚集服务发送包括所述第二视频流的地址的网络请求,所述第二视频流的地址是所述播放器接收到的分辨率切换请求所指示的,所述分辨率切换请求是所述播放器在播放第一分辨率的第一视频流时接收到的;IP地址获取单元,用于获取所述IP聚集服务根据所述第二视频流的地址返回的第一内容分发网络服务器的第一IP地址,所述第一内容分发网络服务器缓存有第二分辨率的第二视频流;生成和访问单元,用于根据所述第二视频流的地址和所述第一IP地址生成第一视频访问地址,并通过所述第一视频访问地址访问所述第一内容分发网络服务器;接收和返回单元,用于接收所述第一内容分发网络服务器下发的所述第二视频流,并向所述播放器返回所述第二视频流,以在所述播放器播放所述第二视频流。
在本申请的一些实施例中,基于前述方案,所述第一视频流中的视频帧为第一视频帧,所述第二视频流中的视频帧为第二视频帧,在根据所述第二视频流的地址和所述第一IP地址生成第一视频访问地址之前,所述获取和发送单元还用于:从所述播放器获取当前播放的第一视频帧的时间戳,所述当前播放的第一视频帧是所述播放器在接收到所述分辨率切换请求时正在播放的视频帧;所述接收和返回单元配置为:向所述播放器返回第二视频流中的第二视频帧,其中,向所述播放器返回的首个第二视频帧是根据所述时间戳确定的。
在本申请的一些实施例中,基于前述方案,所述生成和访问单元配置为:根据所述第二视频流的地址、所述第一IP地址和所述时间戳生成第一视频访问地址;所述接收和返回单元配置为:接收所述第一内容分发网络服务器下发的所述第二视频流中的第二视频帧,其中,所述第一内容分发网络服务器下发的首个第二视频帧是由所述第一内容分发网络服务器根据所述时间戳确定的。
在本申请的一些实施例中,基于前述方案,所述第二视频流的地址包括提供所述第二视频流的视频源服务器的IP地址,所述生成和访问单元配置为:将所述第二视频流的地址中所述视频源服务器的IP地址替换为所述第一IP地址,得到替换地址;在所述替换地址中添加所述时间戳,得到第一视频访问地址。
在本申请的一些实施例中,基于前述方案,所述接收和返回单元配置为:对所述第二视频流中的第二视频帧进行解封装操作,得到第二视频帧的时间戳;将所述第一视频流中已播放的第一视频帧的时间戳与所述第二视频帧的时间戳进行对比,得到重复时间戳;将所述第二视频流中与所述重复时间戳对应的第二视频帧去除,并向所述播放器返回所述第二视频流中的第二视频帧。
在本申请的一些实施例中,基于前述方案,所述第一内容分发网络服务器位于所述网络请求的发送方所属的网络区域。
在本申请的一些实施例中,基于前述方案,所述第一IP地址是由所述IP聚集服务根据监测到所述第一内容分发网络服务器未达到满负载而返回的。
在本申请的一些实施例中,基于前述方案,在向IP聚集服务发送包括所述第二视频流的地址的网络请求之后,所述IP地址获取单元还用于:获取所述IP聚集服务根据所述第二视频流的地址返回的第二内容分发网络服务器的第二IP地址,所述第二内容分发网络服务器属于所述网络请求的发送方所属的网络区域中负载最低的机房,所述第二内容分发网络服务器是所述机房内负载最低的内容分发网络服务器,所述第二IP地址是由所述IP聚集服务根据监测到所述第一内容分发网络服务器达到满负载而返回的;所述生成和访问单元还用于:根据所述第二视频流的地址和所述第二IP地址生成第二视频访问地址,并通过所述第二视频访问地址访问所述第二内容分发网络服务器;所述接收和返回单元还用于接收所述第二内容分发网络服务器下发的第二视频流,并向所述播放器返回所述第二视频流,以在所述播放器播放所述第二视频流。
在本申请的一些实施例中,基于前述方案,所述第一视频流和所述第二视频流均为直播视频流。
根据本申请实施例的一个方面,提供了一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述实施例中所述的视频播放分辨率的切换方法。
根据本申请实施例的一个方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述实施例中所述的视频播放分辨率的切换方法。
根据本申请实施例的一个方面,提供了一种计算机程序产品,所述计算机程序产品包括计算机指令,所述计算机指令存储在计算机可读存储介质中,计算机设备的处理器从所述计算机可读存储介质读取所述计算机指令,所述处理器执行所述计算机指令,使得所述计算机设备执行如上述实施例中所述的视频播放分辨率的切换方法。
在本申请的一些实施例所提供的技术方案中,通过在播放器接收到的用户的分辨率切换请求之后,从播放器获取分辨率切换请求指示的第二视频流的地址,然后向IP聚集服务发送第二视频流的地址,从而能够获取到该IP聚集服务根据第二视频流的地址返回的第一内容分发网络服务器的第一IP地址,接下来,便可以根据第二视频流的地址和第一IP地址生成能够访问第一内容分发网络服务器的第一视频访问地址,通过基于第一视频访问地址访问第一内容分发网络服务器,便能够得到第一内容分发网络服务器下发的第二视频流,最后,通过向播放器返回第二视频流,实现了将在播放器播放的视频流由第一视频流切换为不同分辨率的第二视频流。由于通过IP聚集服务可根据第二视频流的地址来确定已经缓存有第二分辨率的第二视频流的第一内容分发网络服务器,因此,可直接从第一内容分发网络服务器中拉取到第二视频流,第一内容分发网络服务器无需从视频源服务器拉取视频流即可向播放器提供所需的视频流,大大提高了视频流的拉取效率,缩短了切换分辨率消耗的时间,避免了分辨率切换时出现卡顿、黑屏、缓冲的现象,显著提升了用户体验;此外,由于可以将不同用户聚集到同一个内容分发网络服务器上拉取视频流,能够提高内容分发网络服务器的资源利用率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示出了相关技术中子m3u8文件的内容示意图;
图2示出了可以应用本申请实施例的技术方案的示例性系统架构的示意图;
图3示出了根据本申请的一个实施例的视频播放分辨率的切换方法的流程图;
图4示出了根据本申请的一个实施例的直播软件中切换分辨率的操作界面示意图;
图5示出了传统的播放器与本申请提供的基于本地CDN服务的播放器的对比示意图;
图6示出了相关技术中CDN内容分发机制的原理示意图;
图7示出了根据本申请的一个实施例的基于IP聚集技术实现内容分发的原理示意图;
图8示出了根据本申请的一个实施例的向IP聚集服务发送网络请求之后步骤的流程图;
图9示出了根据本申请的一个实施例的精准吐流技术的原理示意图;
图10示出了根据本申请的一个实施例的向播放器返回第二视频流中的第二视频帧的流程图;
图11示出了根据本申请的一个实施例的对视频流解封装的原理示意图;
图12示出了根据本申请的一个实施例的对视频帧去重的原理示意图;
图13示出了根据本申请的一个实施例的用户请求切换分辨率的界面示意图;
图14示出了根据本申请的一个实施例的分辨率切换过程中的界面示意图;
图15示出了根据本申请的一个实施例的分辨率切换成功时的界面示意图;
图16示出了根据本申请的一个实施例的视频播放分辨率的切换装置的框图;
图17示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
相关技术中视频分辨率切换的方案如下:
(1)传统切换方案:当用户切换分辨率时,播放器首先将当前播放的视频停止、播放器释放,再用新分辨率的播放URL(Uniform Resource Locator,统一资源定位符),初始化一个新的播放器,播放新的URL,达到切换分辨率的目的。
该传统切换方案的缺点是:整个切换过程会有卡顿、黑屏、缓冲等问题,严重影响用户的体验。
(2)HLS切换方案:一个HLS(HTTP Live Streaming)的URL下载下来的文件是一个m3u8格式的配置文件。
该配置文件的内容可以如下所示:
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1280000
http://example.com/low.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2560000
http://example.com/mid.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=7680000
http://example.com/high.m3u8
通过上述内容可以看到,该配置文件是一个媒体播放列表,其描述了多个不同分辨率的子m3u8文件的地址,每个子m3u8文件用于描述连续视频文件。
图1示出了相关技术中子m3u8文件的内容示意图。请参见图1所示,其示出了low.m3u8和high.m3u8这两个子m3u8文件的内容,low.m3u8用于描述低清视频文件,high.m3u8用于描述高清视频文件,每个子m3u8文件均包括多个ts分片文件,每个ts分片文件是一段视频内容。当用户正在播放低清视频的Low_2.ts时,若用户选择播放高清视频,则用户接下来会下载Hight_3.ts,待播放器将Low_2.ts播放完后,播放器会播放Hight_3.ts文件,达到切换分辨率的目的。
HLS切换方案的缺点是:一方面,这个方案只限于HLS这一播放协议,视频文件只支持ts格式,HLS协议在直播上存在较高的延时;另一方面,切换分辨率必须播放完当前低清的视频文件,才能播放下一个高清的文件,因此切换过程不及时。
为此,本申请首先提供了一种视频播放分辨率的切换方法。基于本申请实施例提供的视频播放分辨率的切换方法可以克服上述缺陷,实现了对视频播放分辨率切换的整体优化,可以迅速完成分辨率的切换,不会产生卡顿、黑屏、缓冲、切换延时高等问题,体验很好。
图2示出了可以应用本申请实施例的技术方案的示例性系统架构的示意图。
如图2所示,系统架构200采用了CDN(Content Delivery Network,内容分发网络)架构,该架构中包括视频源服务器220和多个位于边缘侧的服务器,可以将位于边缘侧的服务器划分为第一网络区域210、第二网络区域230、第三网络区域240和第四网络区域250,各网络区域中均包括多个服务器,比如,第二网络区域230包括第一CDN服务器231、第二CDN服务器232、第三CDN服务器233以及IP聚集服务器234,各网络区域中的CDN服务器可以从视频源服务器220拉取视频数据,并进行缓存。CDN服务器能够向用户终端下发视频数据,从而在用户终端中进行播放。用户终端包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端、飞行器等。根据用户终端与各CDN服务器距离的不同,用户终端也被划分到相应的网络区域中,用户终端优先从所属网络区域内的CDN服务器拉取视频数据进行播放。比如,图2中用户终端235与第二网络区域230中CDN服务器的距离更近,因此,用户终端235属于第二网络区域230,用户终端235会从第二网络区域230内的CDN服务器拉取视频数据进行播放。用户终端235中设置有本地CDN服务和用于播放视频的播放器,本地CDN服务和播放器可以进行通信。当本申请实施例的技术方案应用于图2所示系统架构中时,一个过程可以是这样的:首先,播放器通过本地CDN服务从第二网络区域230内的某一CDN服务器拉取第一分辨率的第一视频流进行播放;接着,用户终端235的用户在播放器的操作界面点击切换分辨率切换按钮,请求将正在播放的视频切换到第二分辨率的第二视频流,本地CDN服务会从播放器获取第二视频流的地址,并通过向IP聚集服务器234发送网络请求来发送第二视频流的地址;然后,本地CDN服务会获取到IP聚集服务器234根据第二视频流的地址返回的第一CDN服务器231的第一IP地址,第一CDN服务器231中预先缓存有第二视频流;接着,本地CDN服务会基于第二视频流的地址和第一IP地址生成视频访问地址,并使用该视频访问地址来访问缓存有第二视频流的第一CDN服务器231;最后,本地CDN服务会接收到该第一CDN服务器231返回的第二视频流,并将第二视频流转发给播放器,从而在播放器中播放第二视频流。
在本申请的一个实施例中,本地CDN服务还会从播放器获取当前播放的第一视频帧的时间戳,本地CDN服务还根据该时间戳生成包含该时间戳的视频访问地址,第一CDN服务器231根据该时间戳确定向本地CDN服务返回的第二视频流中的首个视频帧。
在本申请的一个实施例中,本地CDN服务在接收到第二视频流之后,会通过将第二视频流中第二视频帧的时间戳与已在播放器播放的第一视频流中第一视频帧的时间戳进行对比,将第二视频流中与已播放的第一视频帧内容一致的第二视频帧剔除。
在本申请的一个实施例中,IP聚集服务器234向本地CDN服务返回的IP地址是正在或者已经向其他用户下发第二视频流的CDN服务器的IP地址。在本申请的一个实施例中,第一视频流和第二视频流为直播视频流。
应该理解,图2中的网络区域的数目以及网络区域中CDN服务器和IP聚集服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的网络区域,并可以在各网络区域中设置任意数目的CDN服务器和IP聚集服务器。比如IP聚集服务器234可以是多个服务器组成的服务器集群等。
需要说明的是,图2示出的仅为本申请的一个实施例,虽然在图2实施例中,视频源服务器并不属于某一网络区域,但在本申请的其他实施例中,视频源服务器可以位于边缘侧的网络区域中,并且可以是一个CDN服务器;虽然在图2实施例中并未对同一网络区域内的CDN服务器进行进一步划分,但在本申请的其他实施例中,可以在一个网络区域中设置多个机房,并在每个机房中部署一个或多个CDN服务器;虽然在图2实施例中,在每个网络区域中均设置有IP聚集服务,但在本申请的其他实施例中,可以在用户终端能够访问的任何设备上部署IP聚集服务,比如可以为多个网络区域设置同一个IP聚集服务,甚至在云端设置单独的IP聚集服务。本申请实施例对此不作任何限定,本申请的保护范围也不应因此而受到任何限制。
并且,易于理解,本申请实施例所提供的视频播放分辨率的切换方法一般由用户终端执行,相应地,视频播放分辨率的切换装置一般设置于用户终端中。但是,在本申请的其它实施例中,服务器也可以与用户终端具有相似的功能,从而执行本申请实施例所提供的视频播放分辨率的切换方案。
如前所述,可以通过终端与服务器的交互来实现本申请实施例的方案。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
本申请实施例中的CDN服务器可以是一个区块链网络中的节点。区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
平台产品服务层提供典型应用的基本能力和实现框架,开发人员可以基于这些基本能力,叠加业务的特性,完成业务逻辑的区块链实现。应用服务层提供基于区块链方案的应用服务给业务参与方进行使用。
以下对本申请实施例的技术方案的实现细节进行详细阐述:
图3示出了根据本申请的一个实施例的视频播放分辨率的切换方法的流程图,该视频播放分辨率的切换方法可以各种能够在线播放视频的用户终端来执行,用户终端包括但不限于手机、电脑、智能语音交互设备、智能家电、车载终端等。本申请实施例可应用于云技术、人工智能、智能交通、辅助驾驶等各种场景。请参照图3所示,该视频播放分辨率的切换方法至少包括以下步骤:
在步骤310中,从播放器获取第二视频流的地址,并向IP聚集服务发送包括第二视频流的地址的网络请求,第二视频流的地址是播放器接收到的分辨率切换请求所指示的,分辨率切换请求是播放器在播放第一分辨率的第一视频流时接收到的。
本申请实施例的方案可以由能够与播放器通信的本地CDN服务执行。本地CDN服务是一个程序模块,其可以部署在播放器所在的终端设备上,也可以部署在其他终端设备上。当本地CDN服务与播放器部署在同一终端设备上时,两者可以通过本机地址进行交互。
在本申请的一个实施例中,第一视频流和第二视频流均为直播视频流。
播放器是能够播放视频的应用程序。当第一视频流和第二视频流均为直播视频流时,播放器是一个直播软件。当然,在本申请的其他实施例中,播放器还可以是点播视频软件。
分辨率切换请求也可以称为清晰度切换请求。在播放器接收到的分辨率切换请求之后,本地CDN服务才从播放器获取第二视频流的地址。
第二视频流是第二分辨率,第二分辨率是用户需要切换至的分辨率。第一分辨率的第一视频流和第二分辨率的第二视频流可以是任意两种不同的分辨率或清晰度的视频流。比如,第一视频流可以是低清视频流,第二视频流可以是高清视频流。
图4示出了根据本申请的一个实施例的直播软件中切换分辨率的操作界面示意图。请参见图4所示,当观众进入直播间观看某一用户提供的直播视频时,通过某些操作触发直播软件显示切换分辨率的操作界面,该操作界面中显示有多个可供切换的清晰度或分辨率;当用户选择某一个分辨率(比如选择高清540p)时,会向直播软件发出相应的分辨率切换请求,指示直播软件从与用户选择的分辨率对应的视频流地址拉取视频流,以使直播软件将正在直播的视频切换至相应分辨率的视频流;直播软件会将用户指示的视频流地址发送给本地CDN服务。
视频流的地址即为视频流的URL(Uniform Resource Locator,统一资源定位符)。
在播放器播放的第一视频流是由本地CDN服务提供的,假如,当前在播放器播放的第一视频流为低清视频流,第一视频流的URL可以为http://ip:port/low_id.flv。本地CDN服务根据第一视频流的URL,从相应的CND服务器下载低清视频流,本地CDN服务会对低清视频流进行解封装和帧排序,重新封装为FLV格式的视频流,然后将FLV格式的视频流返回给播放器,从而在播放器播放低清视频流。
当第二视频流为高清视频流时,第二视频流的URL可以为http://ip:port/high_id.flv。可以看到,第一视频流的URL和第二视频流的URL中均包含相同的ip,该ip可以是视频源服务器的IP地址,视频源服务器可以将接收到的视频流转码为不同分辨率的视频流。
图5示出了传统的播放器与本申请提供的基于本地CDN服务的播放器的对比示意图。请参见图5所示,在传统的播放器这一方案中,视频播放器直接向网络CDN服务请求视频内容,视频内容的分发不够合理,会造成分辨率切换时出现卡顿、黑屏、缓冲等问题,影响用户体验;而采用本申请实施例提供的基于本地CDN服务的播放器的方案之后,视频播放器需要先向本地CDN服务发送请求,由本地CDN服务向网络CDN服务请求视频内容,因此,当视频播放器需要进行分辨率切换时,本地CDN服务能够更合理地向视频播放器提供视频内容,从而避免卡顿、黑屏、缓冲等问题。
IP聚集服务可位于某一服务器上,IP聚集服务可向外提供IP聚集接口,可通过IP聚集接口向IP聚集服务发送网络请求。
具体而言,比如,本地CDN服务可以通过IP聚集接口向IP聚集服务发送http://ip:port/high_id.flv?cmd=mult_stream_dispatch_return_json,可以看到,发送的内容中包括http://ip:port/high_id.flv,这正是第二视频流的URL。
在步骤320中,获取IP聚集服务根据第二视频流的地址返回的第一内容分发网络服务器的第一IP地址,第一内容分发网络服务器缓存有第二分辨率的第二视频流。
IP聚集服务在接收到网络请求后,可以向本地CDN服务返回如下信息:{{"error":0,"msg":"success","data":{"ips":[{"sug":["oc_ip"],"bak":["oc_ip_bak"],"stream":"id"}],"ttl":10}}}。
在上述信息中,"error":0,"msg":"success"表示成功,"ips"表示IP地址列表,"oc_ip"表示主要IP,"oc_ip_bak"表示备用IP,"ttl":10表示10秒钟的超时。"oc_ip"可以是IP聚集服务返回的第一内容分发网络服务器的第一IP地址,可以看到,IP聚集服务还返回了备用IP,本地CDN服务可以在主要IP不可用的情况下,使用备用IP。
第一内容分发网络服务器即第一CDN服务器。由于第一CDN服务器缓存有第二视频流,因此,第一CDN服务器可以是正在或者曾经向其他播放推送第二视频流的CDN服务器。
在本步骤中,IP聚集服务会返回正在或曾经向其他播放器推送第二视频流的CDN服务器的IP地址,该CDN服务器无需重新从视频源服务器拉取视频流,可直接向播放器提供第二视频流,大大提高了分辨率切换的流畅性,并且可以将多个播放器聚合到同一个CDN服务器上拉取第二视频流,从而充分利用了CDN服务器的资源,避免了CDN服务器的资源浪费。
在本申请的一个实施例中,第一内容分发网络服务器位于网络请求的发送方所属的网络区域。
网络请求的发送方即本地CDN服务,由于本地CDN服务和播放器位于同一个终端设备上,因此,第一CDN服务器和播放器属于同一网络区域。
网络区域可以是预先划分的,比如,可以将某一个省或某一个市作为一个网络区域,IP聚集服务根据本地CDN服务所在终端设备的IP地址,确定播放器所在的网络区域,然后从该网络区域中找到缓存有第二视频流的CDN服务器,从而向本地CDN服务返回该CDN服务器的IP地址。
网络区域也可以不是预先划分的,比如,IP聚集服务可以根据各CDN服务器与网络请求的发送方的距离来确定出与网络请求的发送方的距离小于预定距离阈值的CDN服务器。具体地,IP聚集服务根据本地CDN服务所在终端设备的IP地址和各CDN服务器的IP地址,确定出与本地CDN服务所在终端设备距离小于预定距离阈值的CDN服务器,这些CDN服务器便形成一个网络区域,IP聚集服务会从这些CDN服务器中找到缓存有第二视频流的CDN服务器,从而向本地CDN服务返回找到的该CDN服务器的IP地址。
在本申请的一个实施例中,第一IP地址是由IP聚集服务根据监测到第一内容分发网络服务器未达到满负载而返回的。
服务器的负载是有限的。在第一CDN服务器未达到满负载的情况下,IP聚集服务才会向返回第一CDN服务器的第一IP地址,使得播放器可以从第一CDN服务器顺利拉取第二视频流,保证了视频流拉取的稳定性。
在相关技术中的CDN内容分发机制是:当用户请求拉取视频流时,在同一网络区域,哪个机房的负载低,则连接到哪台机房,机房中的哪台设备低,则使用哪台设备。
图6示出了相关技术中CDN内容分发机制的原理示意图。请参见图6所示,该网络区域包括机房A、机房B和机房C,各机房均包括多个服务器,视频源服务器可以位于其他网络区域,各服务器可从视频源服务器拉取视频数据。机房A、机房B和机房C的负载分别是40%、50%、45%,因此,当基于上述CDN内容分发机制进行内容分发时,由于机房A的负载最低,所以用户A会连接机房A;由于机房A中包括服务器1、服务器2和服务器3,而服务器2的负载最低,因此,用户A会连接到服务器2;最终,服务器2会视频源服务器拉取和缓存视频数据,并返回给用户A。由于各机房及机房中各服务器的负载是动态变化的,因此,当用户B想要观看同样的视频时,基于上述CDN内容分发机制,用户B可能会连接到机房B中的服务器3,由于服务器3没有该视频数据,因此需要先从视频源服务器重新拉取并缓存视频数据,然后分发给用户B。由于用户B在请求时需要重新拉取视频数据,因此用户B的播放流畅性和响应速度较差,另外,由于机房A中的服务器2和机房B中的服务器3拉取了同样的视频数据,额外占用了存储资源,造成数据缓存的冗余。当同一用户在不同视频播放分辨率之间进行切换时,由于切换视频播放分辨率也是相当于播放新的视频流,因此,在进行分辨率切换时出现卡顿、黑屏、缓冲的现象。
图7示出了根据本申请的一个实施例的基于IP聚集技术实现内容分发的原理示意图。请参见7所示,基于IP聚集技术实现内容分发的具体过程如下:
第[1]步,用户A想要观看某一视频时,向IP聚集服务发送请求;
第[2]步,IP聚集服务向用户A返回了设备2(机房A内服务器2)的IP地址;
第[3]步,用户A根据IP地址找到机房A内的服务器2,从该服务器拉取视频流进行播放;
第[4]步,用户B想要观看该视频,也向IP聚集服务发送请求;
第[5]步,由于机房A内服务器2未达到满负载,因此,IP聚集服务向用户B也返回了设备2(机房A内服务器2)的IP地址;
第[6]步,用户B也会根据IP地址找到机房A内的服务器2,并从机房A内的服务器2拉取视频流进行播放。
在图7实施例中,机房A内的服务器2将同一份视频数据下发给不同的用户,从而使缓存的视频数据得到了充分的利用,其他服务器不需要缓存该数据,节约了存储资源。
因此,通过IP聚集技术,能够将同一网络区域内播放同一视频的用户聚集到同一个CDN服务器上拉取视频流,使CDN服务器的资源能够得到充分利用,也可以使得有限的CDN服务器的资源能够为更多的用户提供服务。在切换视频播放分辨率时,被聚集到的CDN服务器无需重新缓存视频流,可直接向用户提供所需视频流,在一定程度上提升了视频分辨率切换的效果。
图8示出了根据本申请的一个实施例的向IP聚集服务发送网络请求之后步骤的流程图。请参见图8所示,在向IP聚集服务发送包括第二视频流的地址的网络请求之后,还可以包括以下步骤:
在步骤810中,获取IP聚集服务根据第二视频流的地址返回的第二内容分发网络服务器的第二IP地址,第二内容分发网络服务器属于网络请求的发送方所属的网络区域中负载最低的机房,第二内容分发网络服务器是机房内负载最低的内容分发网络服务器,第二IP地址是由IP聚集服务根据监测到第一内容分发网络服务器达到满负载而返回的。
第二CDN服务器是播放器所在的网络区域中负载最低的机房内负载最低的CDN服务器。
在步骤820中,根据第二视频流的地址和第二IP地址生成第二视频访问地址,并通过第二视频访问地址访问第二内容分发网络服务器。
利用第二视频流的地址和第二IP地址可以生成能够用来访问第二CDN服务器的第二视频访问地址。
在步骤830中,接收第二内容分发网络服务器下发的第二视频流,并向播放器返回第二视频流,以在播放器播放第二视频流。
本地CDN服务可将第二CDN服务器推送的第二视频流转发给播放器,从而在播放器中播放第二视频流。
当第一CDN服务器达到满负载时,若继续返回第一CDN服务器的第一IP地址,可能会使得第一CDN服务器因为负载过大而崩溃,因此要避免这种情况。在本实施例中,当第一CDN服务器达到满负载时,IP聚集服务向向本地CDN服务返回该网络区域中负载最低的机房内负载最低的CDN服务器的IP地址,使得播放器可以从该CDN服务器拉取第二视频流,即使该CDN服务器未缓存第二视频流,该CDN服务器也可以从视频源服务器拉取。因此,本实施例实现了负载均衡,保证了CDN服务器的可用性。
请继续参阅图3,在步骤330中,根据第二视频流的地址和第一IP地址生成第一视频访问地址,并通过第一视频访问地址访问第一内容分发网络服务器。
第一视频访问地址指向缓存有第二视频流的第一CDN服务器。使用第一视频访问地址可访问第一CDN服务器。
在步骤340中,接收第一内容分发网络服务器下发的第二视频流,并向播放器返回第二视频流,以在播放器播放第二视频流。
本地CDN服务可将第一CDN服务器推送的第二视频流转发给播放器。
第二视频流的视频内容与第一视频流的视频内容是一致的,因此,通过上述实施例的方案,实现了将播放的视频在不同分辨率之间进行切换。
在本申请的一个实施例中,第一视频流中的视频帧为第一视频帧,第二视频流中的视频帧为第二视频帧,在根据第二视频流的地址和第一IP地址生成第一视频访问地址之前,该方法还包括:从播放器获取当前播放的第一视频帧的时间戳,当前播放的第一视频帧是播放器在接收到分辨率切换请求时正在播放的视频帧;向播放器返回第二视频流,包括:向播放器返回第二视频流中的第二视频帧,其中,向播放器返回的首个第二视频帧是根据时间戳确定的。
视频流是由依次排列的视频帧组成的。播放器当前正在播放第一视频流,第一视频流中的视频帧为第一视频帧,播放器每个时刻会播放一个视频帧。
时间戳可以采用PTS(Presentation Time Stamp,显示时间戳),这个时间戳用来告诉播放器该在什么时候显示这一帧的数据。因此,播放器可以得到当前播放的第一视频帧的时间戳。当前播放的第一视频帧的时间戳是播放器在接收到分辨率切换请求后,本地CDN服务从播放器获得的。
本地CDN服务可以预先或实时接收整个第二视频流;本地CDN服务在接收到第二视频流之后,可以根据该时间戳确定向播放器返回的首个第二视频帧,然后从首个第二视频帧开始,依次向播放器返回位于其后的第二视频帧。
向播放器返回的首个第二视频帧也可以是由第一CDN服务器确定的。
在本申请的一个实施例中,根据第二视频流的地址和第一IP地址生成第一视频访问地址,包括:根据第二视频流的地址、第一IP地址和时间戳生成第一视频访问地址;接收第一内容分发网络服务器下发的第二视频流,包括:接收第一内容分发网络服务器下发的第二视频流中的第二视频帧,其中,第一内容分发网络服务器下发的首个第二视频帧是由第一内容分发网络服务器根据时间戳确定的。
生成的第一视频访问地址中可以包含有时间戳,第一CDN服务器会根据PTS=timespan选择合适的首个第二视频帧,并从该第二视频帧开始向本地CDN服务返回第二视频流。
在本申请的一个实施例中,第二视频流的地址包括提供第二视频流的视频源服务器的IP地址,根据第二视频流的地址、第一IP地址和时间戳生成第一视频访问地址,包括:将第二视频流的地址中视频源服务器的IP地址替换为第一IP地址,得到替换地址;在替换地址中添加时间戳,得到第一视频访问地址。
如前所述,第二视频流的URL可以为http://ip:port/high_id.flv,"oc_ip"可以是IP聚集服务返回的第一内容分发网络服务器的第一IP地址;因此,通过将第二视频流的URL中视频源服务器的IP地址替换为第一IP地址而得到的替换地址可以是http://oc_ip:port/id.flv。若当前播放的第一视频帧的时间戳PTS为timespan,那么,基于此而生成的视频访问地址可以为http://oc_ip:port/id.flv?fasPts=timespan,本地CDN服务可以通过访问该视频访问地址,从相应的CDN服务器拉取视频流。
图9示出了根据本申请的一个实施例的精准吐流技术的原理示意图。请参见图9所示,提供了480P 25FPS的低清视频帧和1080P 25FPS的高清视频帧。当本地CDN第一次请求播放低清视频,会拉取pts=0至pts=200的低清视频帧,并发给视频播放器依次进行播放;当在播放pts=200的低清视频帧时,若用户切换到高清分辨率,第二次请求播放高清视频,那么,pts=200便是在播放器当前播放的低清视频帧的时间戳,本地CDN向服务器请求的是pts=200之后的视频数据,在理想情况下,本地CDN会拉取到从pts=240开始的高清视频帧,发给视频播放器依次进行播放。这样就实现了分辨率的切换。因此,通过采用精准吐流技术,显著减少了分辨率切换的延时。
在相关技术中的视频流拉取方案是根据字节大小来拉取的,采用该方式进行视频流拉取,会导致视频流位置拉取不够精准,存在延迟、重复播放的现象,会使得分辨率切换延时较长。本申请实施例中通过根据时间戳来拉取视频帧,可以克服延迟、重复播放的缺陷,大大缩短分辨率切换延时。
图10示出了根据本申请的一个实施例的向播放器返回第二视频流中的第二视频帧的流程图。如图10所示,可以包括以下步骤:
在步骤1010中,对第二视频流中的第二视频帧进行解封装操作,得到第二视频帧的时间戳。
在步骤1020中,将第一视频流中已播放的第一视频帧的时间戳与第二视频帧的时间戳进行对比,得到重复时间戳。
如果第一视频帧的时间戳与第二视频帧的时间戳相同,那么该相同的时间戳即为重复时间戳。如果一个第一视频帧的时间戳与一个第二视频帧的时间戳相同,那么该第一视频帧和该第二视频帧中的内容是相同的,两者通常只存在清晰度或分辨率上的差异。在播放器接收到分辨率切换请求后,本地CDN服务可以从播放器获取第一视频流中已播放的第一视频帧的时间戳,并进行存储。
已播放的第一视频帧可以包括当前播放的第一视频帧及之前播放的第一视频帧,通过将已播放的第一视频帧的时间戳与第二视频帧的时间戳进行比较,可以确定重复的视频帧。
图11示出了根据本申请的一个实施例的对视频流解封装的原理示意图。本地CDN服务会对FLV格式视频流这一低清视频流进行解封装,解析出每一个视频帧对应的H264格式的视频包和ACC格式的音频包,同时可以得到每个视频帧对应的时间戳,然后进行帧排序,可以重新封装为FLV格式的视频流。通过此过程可以得到第一视频流中已播放的第一视频帧的时间戳。第二视频帧的时间戳也可以通过类似的方式得到。
在步骤1030中,将第二视频流中与重复时间戳对应的第二视频帧去除,并向播放器返回第二视频流中的第二视频帧。
图12示出了根据本申请的一个实施例的对视频帧去重的原理示意图。请参见图12所示,只有在理想情况下,CDN服务器才会返回能够与已播放的第一视频流恰好衔接上的第二视频流。在一些其他情况下,CDN服务器可能从pts=200或之前的视频帧就开始返回,比如可能从pts=160的视频帧就开始返回第二视频流,这导致第一视频流和第二视频流会存在重叠,若直接连续播放第二视频流会使用户看到重复的内容,影响用户体验,因此,需要将重复的视频帧去除,比如将pts=160和pts=200的视频帧去除。
本申请实施例中,通过将第二视频流中重复的视频帧去除,确保了视频分辨率切换时不同分辨率的视频能够完美衔接。
在向播放器返回第二视频帧时,可以根据各第二视频帧的时间戳的顺序,对第二视频帧进行重新排序,并按照排序后的顺序依次向播放器返回第二视频帧,以保证视频播放的连贯性。
图13示出了根据本申请的一个实施例的用户请求切换分辨率的界面示意图;图14示出了根据本申请的一个实施例的分辨率切换过程中的界面示意图;图15示出了根据本申请的一个实施例的分辨率切换成功时的界面示意图。请参见图13-图15所示,发明人利用直播计时器的计时过程的直播视频测试了本申请实施例方案的效果。在图13中,用户请求将分辨率切换至蓝光1080p;在图14中,正在进行分辨率切换,界面中显示“正在切换清晰度”这一提示信息;在图15中,分辨率切换完成,界面中显示“切换清晰度成功”的提示信息。通过图13-图15还可以看到,从用户请求切换分辨率开始,至分辨率切换完成,计时器的时间变化很小,这说明切换耗时很短。
综上所述,根据本申请实施例提供的视频播放分辨率的切换方法,整个切换过程中无卡顿、不黑屏、不缓冲、画面不跳帧、不跳跃,整个切换过程非常流畅,显著提升了视频分辨率的切换体验。
以下介绍本申请的装置实施例,可以用于执行本申请上述实施例中的视频播放分辨率的切换方法。对于本申请装置实施例中未披露的细节,请参照本申请上述的视频播放分辨率的切换方法的实施例。
图16示出了根据本申请的一个实施例的视频播放分辨率的切换装置的框图。
参照图16所示,根据本申请的一个实施例的视频播放分辨率的切换装置1600,包括:获取和发送单元1610、IP地址获取单元1620、生成和访问单元1630以及接收和返回单元1640。其中,获取和发送单元1610用于从播放器获取第二视频流的地址,并向IP聚集服务发送包括所述第二视频流的地址的网络请求,所述第二视频流的地址是所述播放器接收到的分辨率切换请求所指示的,所述分辨率切换请求是所述播放器在播放第一分辨率的第一视频流时接收到的;IP地址获取单元1620用于获取所述IP聚集服务根据所述第二视频流的地址返回的第一内容分发网络服务器的第一IP地址,所述第一内容分发网络服务器缓存有第二分辨率的第二视频流;生成和访问单元1630用于根据所述第二视频流的地址和所述第一IP地址生成第一视频访问地址,并通过所述第一视频访问地址访问所述第一内容分发网络服务器;接收和返回单元1640用于接收所述第一内容分发网络服务器下发的所述第二视频流,并向所述播放器返回所述第二视频流,以在所述播放器播放所述第二视频流。
在本申请的一些实施例中,基于前述方案,所述第一视频流中的视频帧为第一视频帧,所述第二视频流中的视频帧为第二视频帧,在根据所述第二视频流的地址和所述第一IP地址生成第一视频访问地址之前,获取和发送单元1610还用于:从所述播放器获取当前播放的第一视频帧的时间戳,所述当前播放的第一视频帧是所述播放器在接收到所述分辨率切换请求时正在播放的视频帧;接收和返回单元1640配置为:向所述播放器返回第二视频流中的第二视频帧,其中,向所述播放器返回的首个第二视频帧是根据所述时间戳确定的。
在本申请的一些实施例中,基于前述方案,生成和访问单元1630配置为:根据所述第二视频流的地址、所述第一IP地址和所述时间戳生成第一视频访问地址;接收和返回单元1640配置为:接收所述第一内容分发网络服务器下发的所述第二视频流中的第二视频帧,其中,所述第一内容分发网络服务器下发的首个第二视频帧是由所述第一内容分发网络服务器根据所述时间戳确定的。
在本申请的一些实施例中,基于前述方案,所述第二视频流的地址包括提供所述第二视频流的视频源服务器的IP地址,生成和访问单元1630配置为:将所述第二视频流的地址中所述视频源服务器的IP地址替换为所述第一IP地址,得到替换地址;在所述替换地址中添加所述时间戳,得到第一视频访问地址。
在本申请的一些实施例中,基于前述方案,接收和返回单元1640配置为:对所述第二视频流中的第二视频帧进行解封装操作,得到第二视频帧的时间戳;将所述第一视频流中已播放的第一视频帧的时间戳与所述第二视频帧的时间戳进行对比,得到重复时间戳;将所述第二视频流中与所述重复时间戳对应的第二视频帧去除,并向所述播放器返回所述第二视频流中的第二视频帧。
在本申请的一些实施例中,基于前述方案,所述第一内容分发网络服务器位于所述网络请求的发送方所属的网络区域。
在本申请的一些实施例中,基于前述方案,所述第一IP地址是由所述IP聚集服务根据监测到所述第一内容分发网络服务器未达到满负载而返回的。
在本申请的一些实施例中,基于前述方案,在向IP聚集服务发送包括所述第二视频流的地址的网络请求之后,IP地址获取单元1620还用于:获取所述IP聚集服务根据所述第二视频流的地址返回的第二内容分发网络服务器的第二IP地址,所述第二内容分发网络服务器属于所述网络请求的发送方所属的网络区域中负载最低的机房,所述第二内容分发网络服务器是所述机房内负载最低的内容分发网络服务器,所述第二IP地址是由所述IP聚集服务根据监测到所述第一内容分发网络服务器达到满负载而返回的;生成和访问单元1630还用于:根据所述第二视频流的地址和所述第二IP地址生成第二视频访问地址,并通过所述第二视频访问地址访问所述第二内容分发网络服务器;接收和返回单元1640还用于:接收所述第二内容分发网络服务器下发的第二视频流,并向所述播放器返回所述第二视频流,以在所述播放器播放所述第二视频流。
在本申请的一些实施例中,基于前述方案,所述第一视频流和所述第二视频流均为直播视频流。
图17示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
需要说明的是,图17示出的电子设备的计算机系统1700仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图17所示,计算机系统1700包括中央处理单元(Central Processing Unit,CPU)1701,其可以根据存储在只读存储器(Read-Only Memory,ROM)1702中的程序或者从存储部分1708加载到随机访问存储器(Random Access Memory,RAM)1703中的程序而执行各种适当的动作和处理,例如执行上述实施例中所述的方法。在RAM 1703中,还存储有系统操作所需的各种程序和数据。CPU 1701、ROM 1702以及RAM 1703通过总线1704彼此相连。输入/输出(Input/Output,I/O)接口1705也连接至总线1704。
以下部件连接至I/O接口1705:包括键盘、鼠标等的输入部分1706;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分1707;包括硬盘等的存储部分1708;以及包括诸如LAN(Local AreaNetwork,局域网)卡、调制解调器等的网络接口卡的通信部分1709。通信部分1709经由诸如因特网的网络执行通信处理。驱动器1710也根据需要连接至I/O接口1705。可拆卸介质1711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1710上,以便于从其上读出的计算机程序根据需要被安装入存储部分1708。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1709从网络上被下载和安装,和/或从可拆卸介质1711被安装。在该计算机程序被中央处理单元(CPU)1701执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
作为一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现上述实施例中所述的方法。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本申请实施方式的方法。
可以理解的是,在本申请的具体实施方式中,涉及到与视频处理相关的数据,当本申请以上实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域技术人员在考虑说明书及实践这里公开的实施方式后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (10)
1.一种视频播放分辨率的切换方法,其特征在于,所述方法包括:
从播放器获取第二视频流的地址,并向IP聚集服务发送包括所述第二视频流的地址的网络请求,所述第二视频流的地址是所述播放器接收到的分辨率切换请求所指示的,所述分辨率切换请求是所述播放器在播放第一分辨率的第一视频流时接收到的;
获取所述IP聚集服务根据所述第二视频流的地址返回的第一内容分发网络服务器的第一IP地址,所述第一内容分发网络服务器缓存有第二分辨率的第二视频流;
根据所述第二视频流的地址和所述第一IP地址生成第一视频访问地址,并通过所述第一视频访问地址访问所述第一内容分发网络服务器;
接收所述第一内容分发网络服务器下发的所述第二视频流,并向所述播放器返回所述第二视频流,以在所述播放器播放所述第二视频流。
2.根据权利要求1所述的视频播放分辨率的切换方法,其特征在于,所述第一视频流中的视频帧为第一视频帧,所述第二视频流中的视频帧为第二视频帧,在根据所述第二视频流的地址和所述第一IP地址生成第一视频访问地址之前,所述方法还包括:
从所述播放器获取当前播放的第一视频帧的时间戳,所述当前播放的第一视频帧是所述播放器在接收到所述分辨率切换请求时正在播放的视频帧;
所述向所述播放器返回所述第二视频流,包括:
向所述播放器返回第二视频流中的第二视频帧,其中,向所述播放器返回的首个第二视频帧是根据所述时间戳确定的。
3.根据权利要求2所述的视频播放分辨率的切换方法,其特征在于,所述根据所述第二视频流的地址和所述第一IP地址生成第一视频访问地址,包括:
根据所述第二视频流的地址、所述第一IP地址和所述时间戳生成第一视频访问地址;
所述接收所述第一内容分发网络服务器下发的所述第二视频流,包括:
接收所述第一内容分发网络服务器下发的所述第二视频流中的第二视频帧,其中,所述第一内容分发网络服务器下发的首个第二视频帧是由所述第一内容分发网络服务器根据所述时间戳确定的。
4.根据权利要求3所述的视频播放分辨率的切换方法,其特征在于,所述第二视频流的地址包括提供所述第二视频流的视频源服务器的IP地址,所述根据所述第二视频流的地址、所述第一IP地址和所述时间戳生成第一视频访问地址,包括:
将所述第二视频流的地址中所述视频源服务器的IP地址替换为所述第一IP地址,得到替换地址;
在所述替换地址中添加所述时间戳,得到第一视频访问地址。
5.根据权利要求2所述的视频播放分辨率的切换方法,其特征在于,所述向所述播放器返回第二视频流中的第二视频帧,包括:
对所述第二视频流中的第二视频帧进行解封装操作,得到第二视频帧的时间戳;
将所述第一视频流中已播放的第一视频帧的时间戳与所述第二视频帧的时间戳进行对比,得到重复时间戳;
将所述第二视频流中与所述重复时间戳对应的第二视频帧去除,并向所述播放器返回所述第二视频流中的第二视频帧。
6.根据权利要求1所述的视频播放分辨率的切换方法,其特征在于,所述第一内容分发网络服务器位于所述网络请求的发送方所属的网络区域。
7.根据权利要求1所述的视频播放分辨率的切换方法,其特征在于,所述第一IP地址是由所述IP聚集服务根据监测到所述第一内容分发网络服务器未达到满负载而返回的。
8.根据权利要求7所述的视频播放分辨率的切换方法,其特征在于,在向IP聚集服务发送包括所述第二视频流的地址的网络请求之后,所述方法还包括:
获取所述IP聚集服务根据所述第二视频流的地址返回的第二内容分发网络服务器的第二IP地址,所述第二内容分发网络服务器属于所述网络请求的发送方所属的网络区域中负载最低的机房,所述第二内容分发网络服务器是所述机房内负载最低的内容分发网络服务器,所述第二IP地址是由所述IP聚集服务根据监测到所述第一内容分发网络服务器达到满负载而返回的;
根据所述第二视频流的地址和所述第二IP地址生成第二视频访问地址,并通过所述第二视频访问地址访问所述第二内容分发网络服务器;
接收所述第二内容分发网络服务器下发的第二视频流,并向所述播放器返回所述第二视频流,以在所述播放器播放所述第二视频流。
9.根据权利要求1-8任意一项所述的视频播放分辨率的切换方法,其特征在于,所述第一视频流和所述第二视频流均为直播视频流。
10.一种视频播放分辨率的切换装置,其特征在于,所述装置包括:
获取和发送单元,用于从播放器获取第二视频流的地址,并向IP聚集服务发送包括所述第二视频流的地址的网络请求,所述第二视频流的地址是所述播放器接收到的分辨率切换请求所指示的,所述分辨率切换请求是所述播放器在播放第一分辨率的第一视频流时接收到的;
IP地址获取单元,用于获取所述IP聚集服务根据所述第二视频流的地址返回的第一内容分发网络服务器的第一IP地址,所述第一内容分发网络服务器缓存有第二分辨率的第二视频流;
生成和访问单元,用于根据所述第二视频流的地址和所述第一IP地址生成第一视频访问地址,并通过所述第一视频访问地址访问所述第一内容分发网络服务器;
接收和返回单元,用于接收所述第一内容分发网络服务器下发的所述第二视频流,并向所述播放器返回所述第二视频流,以在所述播放器播放所述第二视频流。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210074422.8A CN116527992A (zh) | 2022-01-21 | 2022-01-21 | 视频播放分辨率的切换方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210074422.8A CN116527992A (zh) | 2022-01-21 | 2022-01-21 | 视频播放分辨率的切换方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116527992A true CN116527992A (zh) | 2023-08-01 |
Family
ID=87392709
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210074422.8A Pending CN116527992A (zh) | 2022-01-21 | 2022-01-21 | 视频播放分辨率的切换方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116527992A (zh) |
-
2022
- 2022-01-21 CN CN202210074422.8A patent/CN116527992A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10764623B2 (en) | Method and system for media adaption | |
US9160777B2 (en) | Adaptive variable fidelity media distribution system and method | |
US20190075148A1 (en) | Personalized content streams using aligned encoded content segments | |
CN108347622B (zh) | 多媒体数据推送方法、装置、存储介质及设备 | |
US20140297881A1 (en) | Downloading and adaptive streaming of multimedia content to a device with cache assist | |
CN108462899B (zh) | 基于设备能力的流媒体码流自适应传输方法、播放设备及播放系统 | |
CN110933517B (zh) | 码率切换方法、客户端和计算机可读存储介质 | |
US11259063B2 (en) | Method and system for setting video cover | |
CN112637661B (zh) | 视频流的切换方法及装置、计算机存储介质、电子设备 | |
WO2019128800A1 (zh) | 一种内容服务的实现方法、装置及内容分发网络节点 | |
WO2021143360A1 (zh) | 资源传输方法及计算机设备 | |
CN111083536B (zh) | 调节视频码率的方法和装置 | |
WO2015180446A1 (zh) | 一种多设备联动服务中的连接通道维护系统及方法 | |
CN114040232A (zh) | 投屏系统、方法、电子设备和存储介质 | |
CN112243158B (zh) | 媒体文件处理方法、装置、计算机可读介质及电子设备 | |
WO2016197955A1 (zh) | 多媒体流组播方法和装置 | |
US11825136B2 (en) | Video transcoding method and apparatus | |
CN112243136B (zh) | 内容播放方法、视频存储方法和设备 | |
WO2012041039A1 (zh) | 数字电视终端访问互联网视频的方法及相关设备和系统 | |
CN109948082B (zh) | 直播信息处理方法及装置、电子设备、存储介质 | |
CN116527992A (zh) | 视频播放分辨率的切换方法及装置 | |
TW201501526A (zh) | 提供多媒體內容之內容部分至用戶端之方法及對應之快取 | |
CN115643429A (zh) | 视频播放方法、装置、电子设备及计算机可读存储介质 | |
US20190036838A1 (en) | Delivery of Multimedia Components According to User Activity | |
CN110572703A (zh) | 多媒体数据同步播放方法、系统、终端及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |