CN112311874B - 媒体数据处理方法、装置、存储介质及电子设备 - Google Patents
媒体数据处理方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN112311874B CN112311874B CN202011182463.6A CN202011182463A CN112311874B CN 112311874 B CN112311874 B CN 112311874B CN 202011182463 A CN202011182463 A CN 202011182463A CN 112311874 B CN112311874 B CN 112311874B
- Authority
- CN
- China
- Prior art keywords
- downloading
- client
- slice
- media data
- file
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请实施例公开了一种媒体数据处理方法、装置、存储介质及电子设备。该方法包括:从多个内容分发网络端下载与媒体数据对应的多个切片文件,在下载多个切片文件的过程中,根据当前已下载切片文件获取候选客户端集合,从候选客户端集合中选取目标客户端,对目标客户端中下载的切片文件进行订阅,停止从内容分发网络端下载切片文件,并从目标客户端下载订阅的切片文件,将从内容分发网络端以及目标客户端分别下载的切片文件进行重组,以得到目标媒体数据。可以降低CDN服务器的网络带宽使用,并且提升媒体数据的下载速度。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及数据处理技术领域,具体涉及一种媒体数据处理方法、装置、存储介质及电子设备。
背景技术
随着短视频以及直播的流行,越来越多网民参与到多媒体互动上来,这对平台服务商提出了更高的要求。直播平台在有限的带宽资源下,需要支持不断增长的观众数量以及互动需求。
利用CDN(Content Delivery Network,内容分发网络)服务器下载视频是目前较为常用的技术,CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容。然而,即使通过CDN服务器下载多媒体数据,在CDN网络带宽过高时,依然会影响客户端下载数据的速率,并且会使CDN服务器处于负载较大的状态。
发明内容
本申请实施例提供一种媒体数据处理方法、装置、存储介质及电子设备,可以降低CDN服务器的网络带宽使用,并且提升媒体数据的下载速度。
本申请实施例提供了一种媒体数据处理方法,包括:
从多个内容分发网络端下载与媒体数据对应的多个切片文件;
在下载所述多个切片文件的过程中,根据当前已下载所述切片文件获取候选客户端集合;
从所述候选客户端集合中选取目标客户端,对所述目标客户端中下载的切片文件进行订阅;
停止从所述内容分发网络端下载所述切片文件,并从所述目标客户端下载订阅的切片文件;
将从所述内容分发网络端以及所述目标客户端分别下载的切片文件进行重组,以得到目标媒体数据。
本申请实施例还提供一种媒体数据处理装置,包括:
第一下载模块,用于从多个内容分发网络端下载与媒体数据对应的多个切片文件;
收发模块,用于在下载所述多个切片文件的过程中,根据当前已下载所述切片文件获取候选客户端集合;
订阅模块,用于从所述候选客户端集合中选取目标客户端,对所述目标客户端中下载的切片文件进行订阅;
第二下载模块,用于停止从所述内容分发网络端下载所述切片文件,并从所述目标客户端下载订阅的切片文件;
重组模块,用于将从所述内容分发网络端以及所述目标客户端分别下载的切片文件进行重组,以得到目标媒体数据。
可选的,第一下载模块可以包括:
获取子模块,用于接收媒体数据下载请求,根据所述媒体数据下载请求确定存储所述媒体数据对应的切片文件的多个内容分发网络端,获取所述多个内容分发网络端分别对应的参数信息;
生成子模块,用于根据所述参数信息生成下载调度规则,所述下载调度规则指示每个内容分发网络端中需要下载的目标切片文件;
下载子模块,用于按照所述下载调度规则向多个内容分发网络端分别下载对应的目标切片文件。
可选的,订阅模块可以包括:
第一确定子模块,用于根据当前下载所述切片文件的标签信息确定第一下载进度;
第二确定子模块,用于获取所述候选客户端集合中每个候选客户端下载切片文件的第二下载进度;
订阅子模块,用于计算所述第一下载进度与所述第二下载进度之间的差值,并根据所述差值从所述候选客户端集合中选取目标客户端,对所述目标客户端中下载的切片文件进行订阅。
可选的,重组模块可以包括:
排序子模块,用于根据从所述内容分发网络端以及所述目标客户端分别下载的切片文件的标签信息,对全部的切片文件进行排序;
重组子模块,用于将排序后的切片文件放入缓冲区。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于处理器进行加载,以执行如上任一实施例所述的媒体数据处理方法中的步骤。
本申请实施例还提供一种电子设备,所述电子设备包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,执行如上任一实施例所述的媒体数据处理方法中的步骤。
本申请实施例提供的媒体数据处理方法、装置、存储介质及电子设备,通过从多个内容分发网络端下载与媒体数据对应的多个切片文件,在下载多个切片文件的过程中,根据当前已下载切片文件获取候选客户端集合,从候选客户端集合中选取目标客户端,对目标客户端中下载的切片文件进行订阅,停止从内容分发网络端下载切片文件,并从目标客户端下载订阅的切片文件,将从内容分发网络端以及目标客户端分别下载的切片文件进行重组,以得到目标媒体数据。本申请实施例通过多个内容分发网络端分发数据以及对其他客户端订阅的方式下载媒体数据,可以降低CDN服务器的网络带宽使用,并且提升媒体数据的下载速度。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的媒体数据处理装置的一种系统示意图。
图2为本申请实施例提供的媒体数据处理装置的另一种系统示意图。
图3为本申请实施例提供的媒体数据处理方法的一种流程示意图。
图4为本申请实施例提供的媒体数据处理方法的另一种流程示意图。
图5为本申请实施例提供的一种订阅关系示意图。
图6为本申请实施例提供的另一种订阅关系示意图。
图7为本申请实施例提供的媒体数据处理装置的一种结构示意图。
图8为本申请实施例提供的媒体数据处理装置的另一结构示意图。
图9为本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种媒体数据处理方法、装置、存储介质及电子设备。具体地,本申请实施例的媒体数据处理方法可以由电子设备执行,其中,该电子设备可以为终端或者服务器等设备。该终端可以为智能手机、平板电脑、笔记本电脑、触控屏幕、游戏机、个人计算机(PC,Personal Computer)、个人数字助理(Personal Digital Assistant,PDA)等终端设备,终端还可以包括客户端,该客户端可以是媒体播放客户端或即时通信客户端等。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
例如,当该媒体数据处理方法运行于终端时,终端设备存储有多媒体播放程序并用于呈现多媒体画面或者音频。终端设备用于接收用户输入的媒体数据下载请求,比如用户点击在线视频的播放按钮或下载按钮,此时终端设备根据该媒体数据下载请求向多个内容分发网络端分别下载与媒体数据对应的切片文件,获取当前下载切片文件的标签信息,将标签信息发送至信令服务器,并接收信令服务器根据标签信息返回的候选客户端集合,从候选客户端集合中选取目标客户端,对目标客户端中下载的切片文件进行订阅,停止向内容分发网络端下载切片文件,并向目标客户端下载订阅的切片文件,将从内容分发网络端以及目标客户端分别下载的切片文件进行重组,以得到完整的媒体数据。并在重组后进行解码播放,以供用户观看或收听。其中终端设备可以通过图形用户界面与用户进行交互,例如通过终端设备下载安装影音类应用程序并运行。该终端设备将图形用户界面提供给用户的方式可以包括多种,例如,可以渲染显示在终端设备的显示屏上,或者,通过全息投影呈现图形用户界面。例如,终端设备可以包括触控显示屏和处理器,该触控显示屏用于呈现图形用户界面以及接收用户作用于图形用户界面产生的操作指令,该图形用户界面包括多媒体播放画面,该处理器用于运行该应用程序、生成图形用户界面、响应操作指令以及控制图形用户界面在触控显示屏上的显示。
请参阅图1,图1为本申请实施例提供的媒体数据处理装置的系统示意图。该系统可以包括至少一个终端1000,至少一个服务器2000,至少一个数据库3000,以及网络4000。用户持有的终端1000可以通过网络4000连接到不同的服务器。终端1000是具有计算硬件的任何设备,该计算硬件能够支持和执行与多媒体对应的软件产品。另外,终端1000具有用于感测和获得用户通过在一个或者多个触控显示屏的多个点执行的触摸或者滑动操作的输入的一个或者多个多触敏屏幕。另外,当系统包括多个终端1000、多个服务器2000、多个网络4000时,不同的终端1000可以通过不同的网络4000、通过不同的服务器2000相互连接。网络4000可以是无线网络或者有线网络,比如无线网络为无线局域网(WLAN)、局域网(LAN)、蜂窝网络、2G网络、3G网络、4G网络、5G网络等。另外,不同的终端1000之间也可以使用自身的蓝牙网络或者热点网络连接到其他终端或者连接到服务器等。例如,多个用户可以通过不同的终端1000在线从而通过适当网络连接并且相互同步。另外,该系统可以包括多个数据库3000,多个数据库3000耦合到不同的服务器2000。举例来说,若上述服务器为信令服务器,则数据库中可以存储从各个用户的客户端中收集到的下载切片文件的标签信息。若上述服务器为内容分发网络端也即CND服务器,则数据库中可以存储大量的多媒体数据的切片文件。
进一步地,请参阅图2,图2为本申请实施例提供的另一种媒体数据处理装置的系统示意图,在该系统中包括切片服务器2001,CDN服务器2002,信令服务器2003以及终端设备1000。在该实施例中,切片服务器2001将视频流转换为切片文件的形式,并上传至一个或多个CDN服务器2002,优选的,可以上传至多个CDN服务器,这样可以避免单一CDN故障或性能抖动对播放的影响。然后终端1000便可以从CDN2002中下载切片文件,在下载的过程中终端1000还可以与信令服务器2003进行交互,以在其他终端中选取一个目标终端,并订阅其下载的切片文件。
本申请实施例提供了一种媒体数据处理方法,该方法可以由终端或服务器执行。本申请实施例以媒体数据处理方法由终端执行为例来进行说明。其中,该终端包括触控显示屏和处理器,该触控显示屏用于呈现图形用户界面以及接收用户作用于图形用户界面产生的操作指令。用户通过触控显示屏对图形用户界面进行操作时,该图形用户界面可以通过响应于接收到的操作指令控制终端本地的内容,也可以通过响应于接收到的操作指令控制对端服务器的内容。例如,用户作用于图形用户界面产生的操作指令包括用于启动多媒体应用程序的指令,处理器被配置为在接收到用户提供的启动多媒体应用程序的指令之后启动对应的应用程序。此外,处理器被配置为在触控显示屏上渲染和绘制与应用程序相关联的图形用户界面。触控显示屏是能够感测屏幕上的多个点同时执行的触摸或者滑动操作的多触敏屏幕。用户在使用手指在图形用户界面上执行触控操作,图形用户界面在检测到触控操作时,控制应用的图形用户界面中显示对应的操作。例如,该多媒体应用程序可以为在线视频类应用程序,视频下载类应用程序、直播类应用程序等等。
请参阅图3,该方法的具体流程可以如下:
步骤101,从多个内容分发网络端下载与媒体数据对应的多个切片文件。
在一实施例中,可以接收媒体数据下载请求,根据媒体数据下载请求向多个内容分发网络端分别下载与媒体数据对应的切片文件。其中上述媒体数据可以为音频数据或视频数据,进一步地,还可以为点播的音/视频数据,或者为直播的音/视频数据。用户在使用多媒体应用程序比如在线视频播放程序时,若想对某个视频进行观看或下载,都需要先生成一个媒体数据下载请求。比如当用户想要缓存某个视频时,点击对应的“下载”标志即可,客户端便可接收到用户触发的下载操作,进而生成媒体数据下载请求,然后发送至多个内容分发网络端,从而向多个内容分发网络端分别下载与所述媒体数据对应的切片文件。其中,上述媒体数据下载请求可以携带标识信息,比如当下载电影时,该标识信息可以为电影名,从而方便内容分发网络端查找与媒体数据对应的切片文件并分发至客户端。
在一实施例中,上述多个内容分发网络端可以为CDN服务器,比如在多个CDN服务器中均存储了媒体数据对应的切片文件,则可以控制多个CDN服务器同时发送该媒体数据不同的切片文件,从而大大提升切片文件的下载效率。比如上述媒体数据对应的切片文件为30个,而CDN服务器A、CDN服务器B以及CDN服务器C中都存储了上述30个切片文件,则可以控制CDN服务器A向客户端发送1-10的切片文件,控制CDN服务器B向客户端发送11-20的切片文件,控制CDN服务器C向客户端发送21-30的切片文件,相较于只通过一个CDN服务器发送全部切片文件的方式,节省了2/3的时间,大大提升了下载效率。
其中,上述CDN服务器可以包括处理器、通信接口和存储器。具体的,通信接口用于与客户端进行通信,客户端可以从CDN服务器下载音视频数据。处理器是CDN服务器的控制中心,利用各种接口和线路连接整个CDN服务器的各个部分,通过运行或执行存储在存储器内的软件程序/或模块,以及调用存储在存储器内的数据,执行CDN服务器的各种功能和处理数据。可选地,处理器可以包括一个或多个处理单元。存储器可用于存储软件程序以及模块,处理器通过运行存储在存储器的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据业务处理所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
需要说明的是,在本申请实施例中,还需要通过切片服务器预先将媒体数据转换为切片文件,然后上传至多个CDN服务器中存储。其中,切片的大概过程是由P2P源站将接收的音视频流切割成1KB大小的数据包,并将每个数据包编号后按照自定义的格式封装成切片子流,P2P源站完成切片后将切片子流交由观众测的CND服务器进行分发。
举例来说,切片服务器可以将视频流或音频流转成切片文件形式,并上传至一家或多家CDN服务器。其中,文件命名规则为“切片编号.”+子片序号。切片编号为首个切片生成时的unix时间戳,子片序号为1-N。上传完1-N个子片后,更新元数据文件(固定文件名,meta)。元数据包括这些字段:最新切片id,最近I帧所在切片id,倒数第二个I帧所切片id,子片数量N,切片文件时长(秒),CDN基础url列表,切片任务启动时间。优选的,可以将切片文件上传到多家CDM服务器中,这样可以避免单一CDN故障或性能抖动对播放的影响。
进一步的,客户端从CDN服务器中下载元数据文件(meta),根据最新分片文件名的时间戳和切片文件时间计算本地时间与最新切片的对应关系。在该实施例中,使用元数据,可以使客户端自行预测最新切片文件名,无需信令服务器介入。这样在信令服务器宕机后,播放器仍能工作,提高了健壮性。然后客户端持续预测最新切片文件名,并将上次入队至最新的文件名放入下载队列,以使客户端持续性的从CDN服务器中下载数据。
其中,上述客户端预测最新切片文件名的步骤可以具体包括:在客户端启动时获取mate数据,然后根据mate数据中最新切片id校准本地时钟,即将meta.最新切片id与当前时钟unix时间戳关联。然后计算时钟偏移并根据始终偏于预测分片id。具体的,时钟偏移以及预测分片id的计算公式分别为:
时钟偏移=当前毫秒时间戳–meta.最新切片id*1000
预测分片id=meta.最新分片id+floor((floor((当前毫秒时间戳–时钟偏移–人工偏移)/1000)–meta.最新分片id)/分片文件时长)。
需要说明的是,上述人工偏移为播放器参数,通过预置一定的延后时间,等待切片上传及CDN边缘节点同步文件。
在一实施例中,基于切片文件的流媒体传输协议一般为HLS(HTTP LiveStreaming)或Dash,他们有两类文件,分别为切片索引文件和媒体数据切片文件。索引文件查找定位媒体切片文件,对于点播媒体,索引文件列出了所有时间点的切片文件信息,可用于快进后退等时间轴定位操作;对于直播文件,索引文件定期更新,列出最新产出的媒体切片文件,使客户端可以随时从较新的时间播放。基于切片的P2P直播加速,以媒体切片为最小单位,与其他客户端进行数据分享。
在实际使用的过程中,申请人发现基于标准切片格式的方案,继承了切片格式延迟高的缺陷。媒体切片需要按GOP(group of pictures,图像组)对齐切割,文件产出时间至少需要一个GOP时间,如视频流GOP特别大,则延迟也相应更高。同时,为了保证小GOP视频流,播放器有足够缓冲长度以对抗网络抖动,一般切片服务器在切出2至3个媒体分片后才更新索引文件。如非实时切片,则意味着首个用户加载切片流时,需要等待2至3个GOP时间才能看到首屏画面。此外,按GOP对齐的方式切割,使单个切片文件时长过大,在p2p分享过程中产生更大的累加延迟。
因此在一实施例中,可以将媒体数据按时间长度切分为片段,无需按GOP对齐的标准,允许将媒体流按任意时间长度或文件大小切割。通过索引文件标识GOP边界,播放器可从最近的GOP边界开始播放,将多个任意切分的媒体文件片段,通过多个渠道并行下载至播放器缓冲区,重组还原后播放。打破GOP对齐约束,缩小切片时间窗口,能显著缩减播放器与直播源的延迟。
步骤102,在下载多个切片文件的过程中,根据当前已下载切片文件获取候选客户端集合。
在一实施例中,可以获取当前下载切片文件的标签信息,将标签信息发送至信令服务器,并接收信令服务器根据标签信息返回的候选客户端集合。比如可以定期发送当前下载切片文件的标签信息至信令服务器,比如每隔一段预设时长获取并发送一次。在其他实施例中,还可以每当下载完成一个切片文件之后,获取该切片文件的标签信息并发至信令服务器。该信令服务器用于撮合多个客户端之间进行分享,也即完成订阅关系。其中,上述标签信息可以包括该切片文件的属性、文件名、文件编号以及媒体数据名称等等。
在一实施例中,上述信令服务器可以接收多个客户端发送的标签信息,然后进行汇总,并为每个客户端返回其筛选出来的候选客户端集合,该客户端集合可以以列表的形式进行展示。其中,信令服务器与客户端之间可以通过WebSocket协议进行通信,WebSocket是HTML5开始提供的一种在单个TCP连接上进行全双工通讯的协议,使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。
在一实施例中,上述标签信息可以包括媒体数据名称。该信令服务器在接收到一个客户端发送的其当前下载的切片文件标签后,可以根据媒体数据名称查找与该客户端下载相同的媒体数据对应的切片的其他客户端,并整理为一个候选客户端集合返回至客户端。比如若客户端A当前下载电影《变形金刚》对应的切片文件,则信令服务器查找后确定客户端B、客户端C、客户端D以及客户端E均在下载电影《变形金刚》对应的切片文件,即可生成一个包含上述客户端B、客户端C、客户端D以及客户端E的候选客户端集合返回至客户端A。
进一步的,考虑到客户端在下载切片文件时,可能同时通过多个CDN服务器并行下载不同的切片文件,因此在一实施例中,上述标签信息除了包括媒体数据名称,还可以包括该客户端需要下载的全部切片文件编号。比如电影《变形金刚》对应的切片文件总共为60个,分别为编号为1-60的切片文件,而客户端A当前正在下载电影《变形金刚》对应的切片文件1-20,信令服务器查找后确定客户端B、客户端C以及客户端D均在下载电影《变形金刚》对应的切片文件1-20,即可生成一个包含上述客户端B、客户端C以及客户端D的候选客户端集合返回至客户端A。
在一实施例中,上述标签信息除了包括媒体数据名称和该客户端需要下载的全部切片文件编号,还可以进一步包括当前下载切片文件的编号。比如电影《变形金刚》对应的切片文件总共为60个,分别为编号为1-60的切片文件,而客户端A当前正在下载电影《变形金刚》对应的切片文件1-20,且当前下载的为切片文件15,信令服务器可以查找与客户端A当前下载的切片文件编号相近的其他客户端,例如编号相差不超过5,此时客户端B、客户端C以及客户端D均在下载电影《变形金刚》对应的切片文件1-20,且客户端B当前下载的为切片文件14,客户端C当前下载的为切片文件17,客户端D当前下载的为切片文件8,此时将客户端B和客户端C加入到候选客户端集合并返回至客户端A。通过这种方式可以进一步提升候选客户端集合中客户端下载的切片文件与客户端A中的相似性。
步骤103,从候选客户端集合中选取目标客户端,对目标客户端中下载的切片文件进行订阅。
在一实施例中,若上述候选客户端集合包含多个客户端,则需要从该候选客户端集合中选取一个与当前客户端下载进度的相似度最高的目标客户端。其中上述下载进度可以通过百分比进行表示,也可以通过当前下载切片文件的编号进行表示。举例来说,若A客户端当前下载的为20个切片文件中的切片文件15,而候选客户端集合中的客户端B当前下载的为切片文件14,客户端C当前下载的为切片文件17,对比可知客户端B当前的下载进度更加接近客户端A,因此可以将客户端B作为目标客户端,并对客户端B中下载的切片文件进行订阅。
在一实施例中,若候选客户端集合中存在多个下载进度的相似度与当前客户端相同的客户端,则可以选取下载进度大于当前客户端的作为目标客户端。举例来说,若A客户端当前下载的为20个切片文件中的切片文件15,而候选客户端集合中的客户端B当前下载的为切片文件14,客户端C当前下载的为切片文件16,也即客户端B和客户端C的下载进度均与客户端A相差一个切片文件,此时可以选取客户端C作为目标客户端,并对客户端C中下载的切片文件进行订阅。这是因为客户端C中已经完成对切片文件15的下载,而客户端B的下载进度还未超过客户端A,若对其进行订阅还需要一定的等待时间,而对客户端C中下载的切片文件进行订阅后无需等待便可使客户端A开始继续下载切片文件。
在一实施例中,在与目标客户端中下载的切片文件建立订阅关系时,可以通过信令服务器来实现。具体来说,若客户端A向客户端B中下载的切片文件进行订阅时,客户端A向客户端B发起连接,客户端A创建基于sdp(session description protocol,会话描述协议)的提议(offer),并序列化后通过websocket发送给信令服务器。信令服务器通过websocket向客户端B转发客户端A的sdp。客户端B收到客户端A的sdp后,创建sdp,并通过信令服务器转发回应客户端A。客户端A与客户端B通过stun(Session Traversal Utilitiesfor NAT,NAT会话穿越应用程序)服务器发现各自的ip地址,并通过信令服务器通知对方。客户端A与客户端B按照stun协议流程尝试建立连接。
步骤104,停止从内容分发网络端下载切片文件,并从目标客户端下载订阅的切片文件。
具体的,在当前客户端与目标客户端中下载的切片文件完成订阅关系之后,即可根据该订阅关系转而向目标客户端下载对应的切片文件。比如,客户端A通过信令服务器转发,向客户端B发起订阅请求,可以包括以下字段:子流序号,已下载的最新切片id,其中信令服务器提供基于TCP(Transmission Control Protocol,传输控制协议)的可靠数据传输。客户端B收到订阅请求后,检查该子流的下载进度。若误差大于设定值,则拒绝。若误差小于或者等于设定值,则客户端B接受A的订阅,通过信令服务器转发回应,包括以下字段:切片起始序号,子流序号。其中切片起始序号为max(客户端A已下载的最新切片id,客户端B已下载的最新切片id)+延后值。通常延后值为2-3个分片。其中引入延后值可避免客户端A从CDN服务器重复下载数据。客户端A接收到客户端B的回应后,切片起始序号之前的文件从CDN服务器下载,该序号及之后的文件等待客户端B分享。
在一实施例中,在停止向内容分发网络端下载切片文件,并向目标客户端下载订阅的切片文件的步骤之前,客户端及信令服务器还需要避免循环订阅的产生。具体来说,信令服务器可以跟踪每个客户端的订阅关系,维护客户端间树形结构,避免上层节点订阅下层节点的现象。客户端形成订阅关系前,需判断是否构成直接循环,即相互订阅现象,若否,则确定订阅关系,并继续执行停止向内容分发网络端下载切片文件,并向目标客户端下载订阅的切片文件的步骤。
步骤105,将从内容分发网络端以及目标客户端分别下载的切片文件进行重组,以得到目标媒体数据。
在一实施例中,在重组之后即可得到完整的媒体数据,当前客户端即可终止上述与目标客户端的订阅关系,并开始对上述媒体数据进行播放。本身请实施例还可以在每下载完成一个切片文件后便进行重组,这样可以大大加快重组的效率,无需等待全部切片文件下载完成才能开始重组。
具体的,针对已下载的切片文件即可进行重组,可以从下载队列依次弹出已下载完成的分片数据,直到第一个未下载分片,弹出的分片数据按顺序以链表形式追加到待处理缓冲区,本申请实施例中的链表能以较好的性能实现队列数据结构。然后按媒体数据封包边界不断从缓冲区取数据。若播放器未开始播放,正在等待首屏数据,则在第一个I帧之前,跳过所有视频帧数据,这是由于非I帧(B帧或P帧)需要I帧才能解码。修改PTS/DTS时间戳,将绝对时间修正为以0起始的相对时间戳。若遇到音频头(AAC sequence header)、视频头(AVC sequence header)或者元数据(onMetaData),则将当前遇到的音频头、视频头或者元数据与上次缓存的同类型字节序列比较。若不一致,则可以塞入缓冲区,并存入缓存,否则进行丢弃。也即将从所述内容分发网络端以及所述目标客户端分别下载的切片文件进行重组,以得到完整的媒体数据的步骤可以包括:
根据从所述内容分发网络端以及所述目标客户端分别下载的切片文件的标签信息,对全部的切片文件进行排序;
将排序后的切片文件放入缓冲区。
由上可知,本申请实施例提供的媒体数据处理方法,通过从多个内容分发网络端下载与媒体数据对应的多个切片文件,在下载多个切片文件的过程中,根据当前已下载切片文件获取候选客户端集合,从候选客户端集合中选取目标客户端,对目标客户端中下载的切片文件进行订阅,停止从内容分发网络端下载切片文件,并从目标客户端下载订阅的切片文件,将从内容分发网络端以及目标客户端分别下载的切片文件进行重组,以得到目标媒体数据。本申请实施例通过多个内容分发网络端分发数据以及对其他客户端订阅的方式下载媒体数据,可以降低CDN服务器的网络带宽使用,并且提升媒体数据的下载速度。
请参阅图4,为本申请实施例提供的媒体数据处理方法的另一流程示意图。该方法的具体流程可以如下:
步骤201,接收媒体数据下载请求,根据媒体数据下载请求确定存储媒体数据对应的切片文件的多个内容分发网络端,获取多个内容分发网络端分别对应的参数信息。
在一实施例中,上述媒体数据下载请求可以携带标识信息,比如当下载电影时,该标识信息可以为电影名。进一步的,上述多个内容分发网络端可以为CDN服务器,比如在多个CDN服务器中均存储了媒体数据对应的切片文件,则可以控制多个CDN服务器同时发送该媒体数据不同的切片文件,从而大大提升切片文件的下载效率。比如上述媒体数据对应的切片文件为30个,而CDN服务器A、CDN服务器B以及CDN服务器C中都存储了上述30个切片文件,也即根据媒体数据下载请求确定存储媒体数据对应的切片文件的多个内容分发网络端分别为CDN服务器A、CDN服务器B以及CDN服务器C。
在本申请实施例中,在选择不同的CDN服务器发送对应的切片文件时,可以根据CDN服务器的参数信息来分配不同的权重。其中,数据源的权重选取比较灵活,如根据CDN服务器的成本、保底用量、质量因子来进行计算,或者根据上一周期全网质量统计数据进行计算,又或者根据机器学习算法预测等等。
步骤202,根据参数信息生成下载调度规则,下载调度规则指示每个内容分发网络端中需要下载的目标切片文件。
举例来说,在CDN服务器A、CDN服务器B以及CDN服务器C中都存储了客户端需要下载的30个切片文件时,可以根据上述参数信息生成下载调度规则,比如控制CDN服务器A向客户端发送1-10的切片文件,控制CDN服务器B向客户端发送11-20的切片文件,控制CDN服务器C向客户端发送21-30的切片文件,相较于只通过一个CDN服务器发送全部切片文件的方式,节省了大量的时间。
步骤203,按照下载调度规则向多个内容分发网络端分别下载对应的目标切片文件。
在一实施例中,可以将媒体数据按时间长度切分为片段,无需按GOP对齐的标准,允许将媒体流按任意时间长度或文件大小切割。通过索引文件标识GOP边界,播放器可从最近的GOP边界开始播放,将多个任意切分的媒体文件片段,通过多个渠道并行下载至播放器缓冲区,重组还原后播放。打破GOP对齐约束,缩小切片时间窗口,能显著缩减播放器与直播源的延迟。
比如:片段按设定的子片数量,平均切分为N个文件,子片编号1-N,与片段编号一起构成唯一的文件名。子片编号相同的文件按顺序组成媒体子流。这些子片文件上传到多家CDN厂商的对象存储,利用现有文件分发网络进行分发。客户端从这些CDN服务器并行下载不同的子片文件,组成完成的媒体数据进行播放。
步骤204,获取当前下载切片文件的标签信息,将标签信息发送至信令服务器,并接收信令服务器根据标签信息返回的候选客户端集合。
在一实施例中,可以定期发送当前下载切片文件的标签信息至信令服务器,比如每隔一段预设时长获取并发送一次。在其他实施例中,还可以每当下载完成一个切片文件之后,获取该切片文件的标签信息并发至信令服务器。该信令服务器用于撮合多个客户端之间进行分享,也即完成订阅关系。其中,上述标签信息可以包括该切片文件的属性、文件名、文件编号以及媒体数据名称等等。
举例来说,标签信息可以包括媒体数据名称和该客户端需要下载的全部切片文件编号,候选客户端集合可以为与当前客户端下载的切片文件相同的客户端,比如当前客户端下载某电影的20个切片文件,编号为1-20,信令服务器通过查找同样下载上述电影对应的编号为1-20的切片文件的客户端,以组成候选客户端集合,并返回给当前的客户端。
步骤205,根据当前下载切片文件的标签信息确定第一下载进度,获取候选客户端集合中每个候选客户端下载切片文件的第二下载进度。
在本申请实施例中,通过下载进度来从候选客户端集合中选取目标客户端。其中,上述第一下载进度和第二下载进度可以根据当前下载切片文件的编号来进行确定。比如当前的客户端A中正在下载的切片文件编号为15,而候选客户端集合中包括客户端B、客户端C以及客户端D,客户端B中正在下载的切片文件编号为14,客户端C中正在下载的切片文件编号为17,客户端D中正在下载的切片文件编号为8。
在另一实施例中,上述第一下载进度和第二下载进度还可以根据当前下载的切片文件占全部需要下载的切片文件的百分比来进行确定。比如上述客户端A和候选客户端集合中的客户端B、客户端C以及客户端D均需要下载1-20编号的切片文件,而当前的客户端A中正在下载的切片文件编号为15,计算可得客户端A的第一下载进度为75%,客户端B中正在下载的切片文件编号为14,计算可得客户端B的第二下载进度为70%,客户端C中正在下载的切片文件编号为17,计算可得客户端C的第二下载进度为85%,客户端D中正在下载的切片文件编号为8,计算可得客户端B的第二下载进度为40%。
步骤206,计算第一下载进度与第二下载进度之间的差值,并根据差值从候选客户端集合中选取目标客户端。
举例来说,在根据当前下载切片文件的编号来进行确定下载进度时,上述客户端A的第一下载进度与客户端B的第二下载进度之间的差值为1,客户端A的第一下载进度与客户端C的第二下载进度之间的差值为2,客户端A的第一下载进度与客户端D的第二下载进度之间的差值为7。
在一实施例中,可以从候选客户端集合中选取上述差值最小的客户端作为目标客户端,比如在上述的例子中,可以选取客户端B作为目标客户端。
在一实施例中,若候选客户端集合中存在多个能使得第一下载进度与第二下载进度之间的差值相等的客户端,则可以进一步选取下载进度大于当前客户端的作为目标客户端。比如A客户端当前下载的为20个切片文件中的切片文件15,而候选客户端集合中的客户端B当前下载的为切片文件14,客户端C当前下载的为切片文件16,也即客户端B和客户端C的下载进度均与客户端A相差一个切片文件,此时可以选取客户端C作为目标客户端。
进一步的,在本申请当中选取目标客户端的作用是为了对其进行订阅,但在实际使用中还可能出现循环订阅的问题。具体来说,比如当前的客户端A确定候选客户端集合中的目标客户端为客户端B,而客户端B在此之前已经对客户端A中的切片文件进行了订阅,此时若客户端A在对客户端B中的切片文件进行订阅后,就会出现两个客户端循环订阅的情况发生。因此在一实施例中,还可以跟踪每个客户端的订阅关系,维护客户端之间的树形结构,避免上层节点订阅下层节点的现象。客户端形成订阅关系前,需判断是否构成直接循环,即相互订阅现象,若未构成上述循环,则可以继续执行后续步骤。也即在计算所述第一下载进度与所述第二下载进度之间的差值之后,所述方法还包括:
获取所述候选客户端集合中每个候选客户端的订阅关系;
根据所述差值从所述候选客户端集合中选取目标客户端的步骤包括:根据所述订阅关系以及差值从所述候选客户端集合中选取目标客户端。
步骤207,根据第一下载进度确定目标客户端中下载切片文件中的待订阅切片文件,对待订阅切片文件进行订阅。
具体的,在确定目标客户端后,即可对该目标客户端中下载的切片文件进行订阅。进一步的,又由于当前的客户端在建立订阅关系之前已经通过CDN服务器下载了一部分切片文件,因此若对目标客户端中下载的全部切片文件进行订阅就会导致重复下载,占用系统资源。因此在本申请实施例中,可以根据第一下载进度确定目标客户端中下载切片文件中的待订阅切片文件,然后对待订阅切片文件进行订阅。比如当前客户端A需要下载编号1-20切片文件,且正在下载切片文件15,在确定目标客户端B后,既可以将客户端B中的15-20切片文件确定为待订阅切片文件,并对上述15-20切片文件进行订阅。
举例来说,如图5所示,图5为本申请实施例提供的一种订阅关系示意图。在该实施例中,客户端A、客户端C以及客户端D均通过CDN服务器下载切片文件,客户端B订阅了客户端A中下载的切片文件。客户端D在下载的过程中,根据当前下载的切片文件的标签信息确定目标客户端为C,也即客户端D与客户端C需要下载等等切片文件相同,且当前的下载进度接近,又通过查询订阅关系可知客户端C和客户端D此前并未存在订阅关系,此时客户端D可以对客户端C中下载的切片文件进行订阅。
在另一实施例中,如图6所示,图5为本申请实施例提供的另一种订阅关系示意图。其中,客户端A、客户端C以及客户端D均通过CDN服务器下载切片文件,客户端B订阅了客户端A中下载的切片文件,客户端E订阅了客户端D中下载的切片文件。客户端D在下载的过程中,根据当前下载的切片文件的标签信息确定目标客户端为C,又通过查询订阅关系可知客户端C和客户端D此前并未存在订阅关系,此时客户端D可以对客户端C中下载的切片文件进行订阅,而客户端E则可以终止与客户端D之间的订阅关系,并对客户端C中下载的切片文件进行订阅。
在一实施例中,在与目标客户端中下载的切片文件建立订阅关系时,可以通过信令服务器来实现。
步骤208,停止向内容分发网络端下载切片文件,并向目标客户端下载订阅的切片文件。
在一实施例中,在向目标客户端下载订阅的切片文件的过程中,当前客户端还可以实时计算当前的订阅质量,比如根据当前下载切片文件的下载速度或者文件完整性等信息来进行评判,当订阅质量低于预设标准时,可以短暂的停止当前的订阅关系,具体可以设置一个时长比如为10分钟,该时长即为订阅关系续存期。而在停止订阅关系后就需要重新从原来的CDN服务器来继续下载切片文件。也即所述方法还包括:
在向所述目标客户端下载订阅的切片文件的过程中获取所述切片文件的下载速度和文件属性;
根据所述下载速度和文件属性计算订阅质量;
若所述订阅质量满足预设条件,则在预设时间段内停止向所述目标客户端下载订阅的切片文件,并继续向内容分发网络端下载切片文件。
进一步的,在重新向CDN服务器下载切片文件时还需要根据暂停订阅关系时的下载进度来继续下载,以便更好地衔接,避免下载重复数据。也即继续向内容分发网络端下载切片文件的步骤包括:
获取停止向所述目标客户端下载订阅的切片文件的第三下载进度;
按照所述第三下载进度继续向内容分发网络端下载切片文件。
在一实施例中,在暂停订阅关系之后,若暂停时长超过了上述订阅关系续存期也即上述预设时间段,则可以重新回复订阅关系,也就是说停止从CDN下载切片文件而继续从目标客户端下载,并在下载时继续评价订阅质量,若该订阅质量仍然较差,则可以直接终止订阅关系,再次从CDN服务器继续下载切片文件。也即所述方法还包括:
在所述预设时间段后重新向所述目标客户端下载订阅的切片文件并计算订阅质量;
若所述订阅质量仍不满足预设条件,则接解除订阅关系。
步骤209,将从内容分发网络端以及目标客户端分别下载的切片文件进行重组,以得到完整的媒体数据。
在一实施例中,在重组之后即可得到完整的媒体数据,当前客户端即可终止上述与目标客户端的订阅关系,并开始对上述媒体数据进行播放。本身请实施例还可以在每下载完成一个切片文件后便进行重组,这样可以大大加快重组的效率,无需等待全部切片文件下载完成才能开始重组。
上述所有的技术方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。
由上可知,本申请实施例提供的媒体数据处理方法应用于终端设备,上述方法可以通过接收媒体数据下载请求,根据媒体数据下载请求确定存储媒体数据对应的切片文件的多个内容分发网络端,获取多个内容分发网络端分别对应的参数信息,根据参数信息生成下载调度规则,下载调度规则指示每个内容分发网络端中需要下载的目标切片文件,按照下载调度规则向多个内容分发网络端分别下载对应的目标切片文件,获取当前下载切片文件的标签信息,将标签信息发送至信令服务器,并接收信令服务器根据标签信息返回的候选客户端集合,根据当前下载切片文件的标签信息确定第一下载进度,获取候选客户端集合中每个候选客户端下载切片文件的第二下载进度,计算第一下载进度与第二下载进度之间的差值,并根据差值从候选客户端集合中选取目标客户端,根据第一下载进度确定目标客户端中下载切片文件中的待订阅切片文件,对待订阅切片文件进行订阅,停止向内容分发网络端下载切片文件,并向目标客户端下载订阅的切片文件,将从内容分发网络端以及目标客户端分别下载的切片文件进行重组,以得到完整的媒体数据。本申请实施例通过多个内容分发网络端分发数据以及对其他客户端订阅的方式下载媒体数据,可以降低CDN服务器的网络带宽使用,并且提升媒体数据的下载速度。
为便于更好的实施本申请实施例的媒体数据处理方法,本申请实施例还提供一种媒体数据处理装置。请参阅图7,图7为本申请实施例提供的媒体数据处理装置的一种结构示意图。该媒体数据处理装置300可以包括第一下载模块301、收发模块302、订阅模块303、第二下载模块304、重组模块305。
其中,第一下载模块301用于从多个内容分发网络端下载与媒体数据对应的多个切片文件;
收发模块302,用于在下载所述多个切片文件的过程中,根据当前已下载所述切片文件获取候选客户端集合;
订阅模块303,用于从所述候选客户端集合中选取目标客户端,对所述目标客户端中下载的切片文件进行订阅;
第二下载模块304,用于停止从所述内容分发网络端下载所述切片文件,并从所述目标客户端下载订阅的切片文件;
重组模块305,用于将从所述内容分发网络端以及所述目标客户端分别下载的切片文件进行重组,以得到目标媒体数据。
在一实施例中,请进一步参阅图8,图8为本申请实施例提供的媒体数据处理装置的另一种结构示意图。其中第一下载模块301可以包括:
获取子模块3011,用于接收媒体数据下载请求,根据所述媒体数据下载请求确定存储所述媒体数据对应的切片文件的多个内容分发网络端,获取所述多个内容分发网络端分别对应的参数信息;
生成子模块3012,用于根据所述参数信息生成下载调度规则,所述下载调度规则指示每个内容分发网络端中需要下载的目标切片文件;
下载子模块3013,用于按照所述下载调度规则向多个内容分发网络端分别下载对应的目标切片文件。
在一实施例中,订阅模块303可以包括:
第一确定子模块3031,用于根据当前下载所述切片文件的标签信息确定第一下载进度;
第二确定子模块3032,用于获取所述候选客户端集合中每个候选客户端下载切片文件的第二下载进度;
订阅子模块3033,用于计算所述第一下载进度与所述第二下载进度之间的差值,并根据所述差值从所述候选客户端集合中选取目标客户端,对所述目标客户端中下载的切片文件进行订阅。
在一实施例中,重组模块305可以包括:
排序子模块3051,用于根据从所述内容分发网络端以及所述目标客户端分别下载的切片文件的标签信息,对全部的切片文件进行排序;
重组子模块3052,用于将排序后的切片文件放入缓冲区。
上述所有的技术方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。
由上可知,本申请实施例提供的媒体数据处理装置30,通过第一下载模块301从多个内容分发网络端下载与媒体数据对应的多个切片文件,收发模块302在下载多个切片文件的过程中,根据当前已下载切片文件获取候选客户端集合,订阅模块303从候选客户端集合中选取目标客户端,对目标客户端中下载的切片文件进行订阅,第二下载模块304停止从内容分发网络端下载切片文件,并从目标客户端下载订阅的切片文件,重组模块305将从内容分发网络端以及目标客户端分别下载的切片文件进行重组,以得到目标媒体数据。本申请实施例通过多个内容分发网络端分发数据以及对其他客户端订阅的方式下载媒体数据,可以降低CDN服务器的网络带宽使用,并且提升媒体数据的下载速度。
相应的,本申请实施例还提供一种电子设备,该电子设备可以为终端或者服务器,该终端可以为智能手机、平板电脑、笔记本电脑、触控屏幕、游戏机、个人计算机(PC,Personal Computer)、个人数字助理(Personal Digital Assistant,PDA)等终端设备。如图9所示,图9为本申请实施例提供的电子设备的结构示意图。该电子设备400包括有一个或者一个以上处理核心的处理器401、有一个或一个以上计算机可读存储介质的存储器402及存储在存储器402上并可在处理器上运行的计算机程序。其中,处理器401与存储器402电性连接。本领域技术人员可以理解,图中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
处理器401是电子设备400的控制中心,利用各种接口和线路连接整个电子设备400的各个部分,通过运行或加载存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行电子设备400的各种功能和处理数据,从而对电子设备400进行整体监控。
在本申请实施例中,电子设备400中的处理器401会按照如下的步骤,将一个或一个以上的应用程序的进程对应的指令加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能:
从多个内容分发网络端下载与媒体数据对应的多个切片文件;
在下载所述多个切片文件的过程中,根据当前已下载所述切片文件获取候选客户端集合;
从所述候选客户端集合中选取目标客户端,对所述目标客户端中下载的切片文件进行订阅;
停止从所述内容分发网络端下载所述切片文件,并从所述目标客户端下载订阅的切片文件;
将从所述内容分发网络端以及所述目标客户端分别下载的切片文件进行重组,以得到目标媒体数据。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
可选的,如图9所示,电子设备400还包括:触控显示屏403、射频电路404、音频电路405、输入单元406以及电源407。其中,处理器401分别与触控显示屏403、射频电路404、音频电路405、输入单元406以及电源407电性连接。本领域技术人员可以理解,图9中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
触控显示屏403可用于显示图形用户界面以及接收用户作用于图形用户界面产生的操作指令。触控显示屏403可以包括显示面板和触控面板。其中,显示面板可用于显示由用户输入的信息或提供给用户的信息以及电子设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。可选的,可以采用液晶显示器(LCD,Liquid Crystal Display)、有机发光二极管(OLED,Organic Light-Emitting Diode)等形式来配置显示面板。触控面板可用于收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并生成相应的操作指令,且操作指令执行对应程序。可选的,触控面板可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器401,并能接收处理器401发来的命令并加以执行。触控面板可覆盖显示面板,当触控面板检测到在其上或附近的触摸操作后,传送给处理器401以确定触摸事件的类型,随后处理器401根据触摸事件的类型在显示面板上提供相应的视觉输出。在本申请实施例中,可以将触控面板与显示面板集成到触控显示屏403而实现输入和输出功能。但是在某些实施例中,触控面板与触控面板可以作为两个独立的部件来实现输入和输出功能。即触控显示屏403也可以作为输入单元406的一部分实现输入功能。
在本申请实施例中,通过处理器401执行应用程序在触控显示屏403上生成图形用户界面。该触控显示屏403用于呈现图形用户界面以及接收用户作用于图形用户界面产生的操作指令。
射频电路404可用于收发射频信号,以通过无线通信与网络设备或其他电子设备建立无线通讯,与网络设备或其他电子设备之间收发信号。
音频电路405可以用于通过扬声器、传声器提供用户与电子设备之间的音频接口。音频电路405可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路405接收后转换为音频数据,再将音频数据输出处理器401处理后,经射频电路404以发送给比如另一电子设备,或者将音频数据输出至存储器402以便进一步处理。音频电路405还可能包括耳塞插孔,以提供外设耳机与电子设备的通信。
输入单元406可用于接收输入的数字、字符信息或用户特征信息(例如指纹、虹膜、面部信息等),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
电源407用于给电子设备400的各个部件供电。可选的,电源407可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源407还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管图9中未示出,电子设备400还可以包括摄像头、传感器、无线保真模块、蓝牙模块等,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
由上可知,本实施例提供的电子设备,通过从多个内容分发网络端下载与媒体数据对应的多个切片文件,在下载多个切片文件的过程中,根据当前已下载切片文件获取候选客户端集合,从候选客户端集合中选取目标客户端,对目标客户端中下载的切片文件进行订阅,停止从内容分发网络端下载切片文件,并从目标客户端下载订阅的切片文件,将从内容分发网络端以及目标客户端分别下载的切片文件进行重组,以得到目标媒体数据。本申请实施例通过多个内容分发网络端分发数据以及对其他客户端订阅的方式下载媒体数据,可以降低CDN服务器的网络带宽使用,并且提升媒体数据的下载速度。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计算机可读存储介质,其中存储有多条计算机程序,该计算机程序能够被处理器进行加载,以执行本申请实施例所提供的任一种媒体数据处理方法中的步骤。例如,该计算机程序可以执行如下步骤:
从多个内容分发网络端下载与媒体数据对应的多个切片文件;
在下载所述多个切片文件的过程中,根据当前已下载所述切片文件获取候选客户端集合;
从所述候选客户端集合中选取目标客户端,对所述目标客户端中下载的切片文件进行订阅;
停止从所述内容分发网络端下载所述切片文件,并从所述目标客户端下载订阅的切片文件;
将从所述内容分发网络端以及所述目标客户端分别下载的切片文件进行重组,以得到目标媒体数据。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的计算机程序,可以执行本申请实施例所提供的任一种媒体数据处理方法中的步骤,因此,可以实现本申请实施例所提供的任一种媒体数据处理方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本申请实施例所提供的一种媒体数据处理方法、装置、存储介质及电子设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种媒体数据处理方法,其特征在于,包括:
从多个内容分发网络端下载与媒体数据对应的多个切片文件;
在下载所述多个切片文件的过程中,根据当前已下载所述切片文件获取候选客户端集合;
从所述候选客户端集合中选取目标客户端,对所述目标客户端中下载的切片文件进行订阅;
停止从所述内容分发网络端下载所述切片文件,并从所述目标客户端下载订阅的切片文件;
在向所述目标客户端下载订阅的切片文件的过程中获取所述切片文件的下载速度和文件属性;
根据所述下载速度和文件属性计算订阅质量;
若所述订阅质量不满足预设条件,则在预设时间段内停止向所述目标客户端下载订阅的切片文件,并继续向内容分发网络端下载切片文件;
在所述预设时间段后重新向所述目标客户端下载订阅的切片文件并计算订阅质量;
若所述订阅质量仍不满足预设条件,则解除与所述目标客户端之间的订阅关系,并继续从所述多个内容分发网络端下载切片文件;
将从所述内容分发网络端以及所述目标客户端分别下载的切片文件进行重组,以得到目标媒体数据。
2.如权利要求1所述的媒体数据处理方法,其特征在于,从多个内容分发网络端下载与媒体数据对应的多个切片文件的步骤包括:
根据媒体数据下载请求确定存储所述媒体数据对应的切片文件的多个内容分发网络端,获取所述多个内容分发网络端分别对应的参数信息;
根据所述参数信息生成下载调度规则,所述下载调度规则指示每个内容分发网络端中需要下载的目标切片文件;
按照所述下载调度规则从多个内容分发网络端下载对应的目标切片文件。
3.如权利要求1所述的媒体数据处理方法,其特征在于,从所述候选客户端集合中选取目标客户端的步骤包括:
根据当前下载所述切片文件的标签信息确定第一下载进度;
获取所述候选客户端集合中的候选客户端下载切片文件的第二下载进度;
根据所述第一下载进度与所述第二下载进度之间的差值,从所述候选客户端集合中选取目标客户端。
4.如权利要求3所述的媒体数据处理方法,其特征在于,根据所述差值从所述候选客户端集合中选取目标客户端的步骤包括:
获取所述候选客户端集合中的候选客户端的订阅关系;
根据所述订阅关系以及差值从所述候选客户端集合中选取目标客户端。
5.如权利要求3所述的媒体数据处理方法,其特征在于,对所述目标客户端中下载的切片文件进行订阅的步骤包括:
根据所述第一下载进度确定所述目标客户端中下载切片文件中的待订阅切片文件;
对所述待订阅切片文件进行订阅。
6.如权利要求1所述的媒体数据处理方法,其特征在于,继续向内容分发网络端下载切片文件的步骤包括:
获取停止向所述目标客户端下载订阅的切片文件的第三下载进度;
按照所述第三下载进度继续向内容分发网络端下载切片文件。
7.如权利要求1所述的媒体数据处理方法,其特征在于,将从所述内容分发网络端以及所述目标客户端分别下载的切片文件进行重组,以得到目标媒体数据的步骤包括:
根据从所述内容分发网络端以及所述目标客户端分别下载的切片文件的标签信息,对全部的切片文件进行排序;
将排序后的切片文件放入缓冲区。
8.一种媒体数据处理装置,其特征在于,包括:
第一下载模块,用于从多个内容分发网络端下载与媒体数据对应的多个切片文件;
收发模块,用于在下载所述多个切片文件的过程中,根据当前已下载所述切片文件获取候选客户端集合;
订阅模块,用于从所述候选客户端集合中选取目标客户端,对所述目标客户端中下载的切片文件进行订阅;
第二下载模块,用于停止从所述内容分发网络端下载所述切片文件,并从所述目标客户端下载订阅的切片文件;
所述第二下载模块,用于在向所述目标客户端下载订阅的切片文件的过程中获取所述切片文件的下载速度和文件属性;根据所述下载速度和文件属性计算订阅质量;若所述订阅质量不满足预设条件,则在预设时间段内停止向所述目标客户端下载订阅的切片文件,并继续向内容分发网络端下载切片文件;
在所述预设时间段后重新向所述目标客户端下载订阅的切片文件并计算订阅质量;若所述订阅质量仍不满足预设条件,则解除与所述目标客户端之间的订阅关系,并继续从所述多个内容分发网络端下载切片文件;
重组模块,用于将从所述内容分发网络端以及所述目标客户端分别下载的切片文件进行重组,以得到目标媒体数据。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于处理器进行加载,以执行如权利要求1-7任一项所述的媒体数据处理方法中的步骤。
10.一种电子设备,其特征在于,所述电子设备包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,执行如权利要求1-7任一项所述的媒体数据处理方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011182463.6A CN112311874B (zh) | 2020-10-29 | 2020-10-29 | 媒体数据处理方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011182463.6A CN112311874B (zh) | 2020-10-29 | 2020-10-29 | 媒体数据处理方法、装置、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112311874A CN112311874A (zh) | 2021-02-02 |
CN112311874B true CN112311874B (zh) | 2023-04-18 |
Family
ID=74331694
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011182463.6A Active CN112311874B (zh) | 2020-10-29 | 2020-10-29 | 媒体数据处理方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112311874B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112769957B (zh) * | 2021-02-05 | 2023-09-22 | 上海哔哩哔哩科技有限公司 | 点对点网络调度方法和系统 |
CN112769958B (zh) * | 2021-02-05 | 2022-10-04 | 上海哔哩哔哩科技有限公司 | 点对点网络调度方法和系统 |
CN114157644B (zh) * | 2021-11-29 | 2024-08-13 | 广东明创软件科技有限公司 | 资源下载方法、装置、电子设备以及存储介质 |
CN115242784B (zh) * | 2022-09-23 | 2022-12-20 | 浪潮通信信息系统有限公司 | 具有数据校验功能的1+n文件共享装置及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1645858A (zh) * | 2005-02-24 | 2005-07-27 | 广东省电信有限公司研究院 | 分布式对等流媒体的服务系统及其点播节目的实现方法 |
CN105959364A (zh) * | 2016-04-25 | 2016-09-21 | 乐视控股(北京)有限公司 | 基于点对点协议的数据传输方法及装置 |
CN108833552A (zh) * | 2018-06-22 | 2018-11-16 | 邓德雄 | 一种混杂模式的p2p内容分发系统 |
CN111629075A (zh) * | 2020-08-03 | 2020-09-04 | 腾讯科技(深圳)有限公司 | 一种数据下载方法和相关装置 |
-
2020
- 2020-10-29 CN CN202011182463.6A patent/CN112311874B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1645858A (zh) * | 2005-02-24 | 2005-07-27 | 广东省电信有限公司研究院 | 分布式对等流媒体的服务系统及其点播节目的实现方法 |
CN105959364A (zh) * | 2016-04-25 | 2016-09-21 | 乐视控股(北京)有限公司 | 基于点对点协议的数据传输方法及装置 |
CN108833552A (zh) * | 2018-06-22 | 2018-11-16 | 邓德雄 | 一种混杂模式的p2p内容分发系统 |
CN111629075A (zh) * | 2020-08-03 | 2020-09-04 | 腾讯科技(深圳)有限公司 | 一种数据下载方法和相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112311874A (zh) | 2021-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112311874B (zh) | 媒体数据处理方法、装置、存储介质及电子设备 | |
US10848587B2 (en) | Content distribution network supporting popularity-based caching | |
US11910035B2 (en) | Systems and methods for interrupting streaming content provided via an inviolate manifest protocol | |
TWI602415B (zh) | 用於受遞送媒體之彈性快取的方法及裝置 | |
US20140165119A1 (en) | Offline download method, multimedia file download method and system thereof | |
EP2805471B1 (en) | Method and apparatus for enabling pre-fetching of media | |
US20150365729A1 (en) | Personalized Generation of Watch List of Shows in a Video Delivery System | |
US11736749B2 (en) | Interactive service processing method and system, device, and storage medium | |
CN112839238B (zh) | 投屏播放方法、装置和存储介质 | |
CN102547478A (zh) | 基于cdn的流媒体触发式切片点播系统和方法 | |
CN107612912B (zh) | 一种设置播放参数的方法和装置 | |
JP2021505081A (ja) | ビデオ伝送方法、ビデオ伝送装置、およびビデオ伝送システム、ならびにコンピュータ可読記憶媒体 | |
WO2017161757A1 (zh) | 一种流媒体文件分发方法及系统 | |
CN108989845A (zh) | 一种基于spice协议的视频传输方法 | |
WO2023061060A1 (zh) | 音视频码流的调度方法、系统、介质及电子装置 | |
KR20220059425A (ko) | 비디오 스트리밍을 위한 세션 기반 적응적 재생 프로파일 판정 | |
CN107645475B (zh) | 异质网络中的文件资源分发系统与方法 | |
JP2017126983A (ja) | 生中継データを共有する方法およびシステム | |
CN110198452B (zh) | 一种直播视频的预览方法、装置及系统 | |
CN110166834B (zh) | 一种数据播放方法、装置及存储介质 | |
JP2023031248A (ja) | エッジコンピューティングネットワーク、データ伝送方法、装置、機器、及び記憶媒体 | |
CN114339268B (zh) | 一种直播数据处理方法、装置和计算机可读存储介质 | |
US11868390B2 (en) | Communicating shuffled media content | |
Hung et al. | An Effective Segment Pre-Fetching for Short-Form Video Streaming | |
CN117896555A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |