视频直播数据的传输方法和装置、存储介质及电子装置与流程

文档序号:13519024阅读:315来源:国知局

本发明涉及视频领域,具体而言,涉及一种视频直播数据的传输方法和装置、存储介质及电子装置。



背景技术:

在观看视频直播时,直播终端通常包括手机ios或安卓(android)端,以及电脑(pc)的网页(web)端,但是现有的视频直播方案中,还具有多种技术缺陷,例如,在pcweb端,现有技术方案多为内容分发网络+流媒体格式(cdn+flv)视频流,通过多媒体程序播放器(adobeflashplayer)播放,因为可嵌入浏览器中,流行度和市场占有度较高。少数平台带有内容分发网络+流媒体格式+对等网络(cdn+flv+p2p)功能,但是仅限于pcweb平台,不能与手机端进行连接。在手机端,目前各种类型直播应用(application,简称为app)都没有p2p功能,多为cdn+flv、cdn+hls(码率自适应)模式,并且cdn+hls模式在ios中有限制,大约存在15~45s延迟。现有技术中,无论是手机还是pc,在进行大规模直播时如果视频数据全都从cdn获取,则会占用大量带宽,成本极高。

针对上述的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种视频直播数据的传输方法和装置、存储介质及电子装置,以至少解决视频直播时pcweb端与手机端不能进行p2p通信的技术问题。

根据本发明实施例的一个方面,提供了一种视频直播数据的传输方法,包括:第一终端通过重定向服务获取终端标识列表;所述第一终端从所述所指示的终端中选择待建立连接的第二终端;所述第一终端通过网络地址转换设备向所述第二终端的预测端口号发起连接请求,其中,所述网络地址转换设备用于在所述第一终端与所述第二终端之间进行数据转发;在接收到所述第二终端响应于所述连接请求返回的连接响应的情况下,所述第一终端接收所述第二终端发送的视频直播数据,其中,所述视频直播数据为所述第二终端预先从内容分发网络设备中获取到的直播的视频中的第一预设时长的视频数据。

根据本发明实施例的另一方面,还提供了一种视频直播数据的传输装置,包括:第一获取单元,用于使第一终端通过重定向服务获取终端标识列表;选择单元,用于使所述第一终端从所述所指示的终端中选择待建立连接的第二终端;连接单元,用于使所述第一终端通过网络地址转换设备向所述第二终端的预测端口号发起连接请求,其中,所述网络地址转换设备用于在所述第一终端与所述第二终端之间进行数据转发;接收单元,用于在接收到所述第二终端响应于所述连接请求返回的连接响应的情况下,使所述第一终端接收所述第二终端发送的视频直播数据,其中,所述视频直播数据为所述第二终端预先从内容分发网络设备中获取到的直播的视频中的第一预设时长的视频数据。

根据本发明实施例的另一方面,还提供了一种存储介质,包括存储的程序,其中,所述程序运行时执行本发明的视频直播数据的传输方法。

根据本发明实施例的另一方面,还提供了一种电子装置,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器通过所述计算机程序执行本发明的视频直播数据的传输方法。

在本发明实施例中,第一终端通过重定向服务获取终端标识列表;第一终端从所指示的终端中选择待建立连接的第二终端;第一终端通过网络地址转换设备向第二终端的预测端口号发起连接请求,网络地址转换设备用于在第一终端与第二终端之间进行数据转发;在接收到第二终端响应于连接请求返回的连接响应的情况下,第一终端接收第二终端发送的视频直播数据,其中,视频直播数据为第二终端预先从内容分发网络设备中获取到的直播的视频中的第一预设时长的视频数据,达到了可以在不同终端类型之间建立p2p连接的目的,从而实现了减少cdn带宽占用,节省成本的技术效果,进而解决了视频直播时pcweb端与手机端不能进行p2p通信的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的视频直播数据的传输方法的硬件环境的示意图;

图2是根据本发明实施例的一种可选的视频直播数据的传输方法的流程图;

图3是根据本发明实施例的终端适配的示意图;

图4是根据本发明实施例的视频直播时数据交互的示意图;

图5是根据本发明实施例的p2p内核交互第一阶段的流程图;

图6是根据本发明实施例的p2p内核交互第二阶段的流程图;

图7是根据本发明实施例的p2p视频直播时p2p信息参数的示意图;

图8是根据本发明实施例的一种可选的视频直播数据的传输装置的示意图;以及

图9是根据本发明实施例的一种终端的结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

首先,在对本发明实施例进行描述的过程中出现的部分名词或者术语适用于如下解释:

p2p:全称peertopeer,在p2p网络中,每个节点的功能平等,每个节点既是参与者,也是贡献者。在视频直播业务中,每个peer既从cdn获取直播数据,也为其他peer提供数据(该数据来源与cdn,peer会进行本地缓存)。

流媒体直播:将流媒体数据,主要是音视频数据,实时的摄像录制现场通过网络大规模的传输到观众观看端的一种技术手段。

cdn带宽成本:由于流媒体直播中观众规模庞大,常达百万级别,cdn带宽成本巨大,在不影响直播观看体验的前提下,适当进行延迟,45秒左右,使用cdn+p2p混合架构进行数据分发,减少cdn带宽消耗,降低成本。

adobeflashplayer:adobe公司研发出的一款播放器(由adobeflashsdk开发),该播放器可以嵌入网页中,播放mp4、flv流媒体数据。

adobeflashsdk:adobe公司研发的一款api集合,包含基本网络通信、音视频播放、p2p等功能,使用该sdk开发的插件可在网页中运行。p2p内核由该sdk开发完成。

p2p内核:客户端中实现p2p功能,包含peer间打洞,数据片交换,数据重组功能。

对于pcweb端使用adobeflashsdk实现该功能,对于手机端,使用c++实现该功能。

重定向服务:提供名字发现,运营商就近接入,后台负责均衡功能。在种子接入打洞服务、种子列表服务之前,会通过此服务进行重定向调度,分配打洞服务、种子列表服务ip列表,该列表ip与种子ip归属于同一运营商,并且该列表排序满足不同策略(如低负载优先)。

打洞服务:在广域网中,peer和peer通常在不同的nat网络(如运营商电信、联通网络出口设备)之后,peer和peer之间不能直接进行通信。需要使用具有公网ip的打洞服务进行协调之后,peer和peer才有可能跨越不同nat设备,建立nat映射,通信成功。

种子列表服务:此服务会返回该服务上其他peer列表信息(包含唯一id,种子公网ip等)。注,连接上此服务的peer会被分配唯一id。

实施例1

根据本发明实施例,提供了一种视频直播数据的传输的方法实施例。

可选地,在本实施例中,上述视频直播数据的传输方法可以应用于如图1所示的由服务器102和终端104所构成的硬件环境中,其中,硬件环境包括网络环境。如图1所示,服务器102通过网络与终端104进行连接,上述网络包括但不限于:广域网、城域网或局域网,终端104并不限定于pc、手机、平板电脑等。本发明实施例的视频直播数据的传输方法可以由服务器102来执行,也可以由终端104来执行,还可以是由服务器102和终端104共同执行。其中,终端104执行本发明实施例的视频直播数据的传输方法也可以是由安装在其上的客户端来执行。

图2是根据本发明实施例的一种可选的视频直播数据的传输方法的流程图,如图2所示,该方法可以包括以下步骤:

步骤s202,第一终端通过重定向服务获取终端标识列表。

步骤s204,第一终端从所指示的终端中选择待建立连接的第二终端。

步骤s206,第一终端通过网络地址转换设备向第二终端的预测端口号发起连接请求,其中,网络地址转换设备用于在第一终端与第二终端之间进行数据转发。

步骤s208,在接收到第二终端响应于连接请求返回的连接响应的情况下,第一终端接收第二终端发送的视频直播数据,其中,视频直播数据为第二终端预先从内容分发网络设备中获取到的直播的视频中的第一预设时长的视频数据。

通过上述步骤s202至步骤s208,第一终端通过重定向服务获取终端标识列表,其中,终端标识列表中的终端标识所指示的终端位于同一运营商提供的网络中;第一终端从所指示的终端中选择待建立连接的第二终端;第一终端通过网络地址转换(networkaddresstranslation,简称为nat)设备向第二终端的预测端口号发起连接请求,nat设备用于在第一终端与第二终端之间进行数据转发;在接收到第二终端响应于连接请求返回的连接响应的情况下,第一终端接收第二终端发送的视频直播数据,其中,视频直播数据为第二终端预先从内容分发网络(contentdeliverynetwork,简称为cdn)设备中获取到的直播的视频中的第一预设时长的视频数据,达到了可以在不同终端类型之间建立p2p连接的目的,从而实现了减少cdn带宽占用,节省成本的技术效果,进而解决了视频直播时pcweb端与手机端不能进行p2p通信的技术问题。

在步骤s202提供的技术方案中,第一终端可以是手机端,也可以是pc端,终端标识列表可以是终端的身份标识列表,终端的身份标识id可以根据终端的ip确定,终端标识列表中可以包括多个id,每个id对应唯一的终端,但是每个ip可能对应多个终端,因此,在获取终端的ip的基础上,还要进一步为每个终端分配唯一的id,用于标识终端的身份。终端标识列表中的多个id所对应的终端是基于预定的算法得到的。终端标识列表中的终端标识所指示的终端可以位于同一运营商提供的网络中。

在本发明实施例中,重定向服务能够提供名字发现,运营商就近接入的功能,后台可以负责均衡功能。在种子接入打洞服务、种子列表服务之前,会通过重定向服务进行重定向调度,分配打洞服务、种子列表服务ip列表,该列表ip与种子ip归属于同一运营商,并且该列表排序满足不同策略(如低负载优先等)。举例而言,重定向服务可以根据终端的ip、运营商属性及后台服务自身的均衡机制(是否正在向多个终端发送数据)等多种条件筛选符合要求的终端,将这些符合要求的终端的ip以种子服务ip列表的形式返回第一终端,第一终端再通过连接种子列表服务根据ip信息为每个终端分配位移标识id,这些终端都位于同一个运营商提供的网络中,位于同一个运营商提供的网络中的终端可以通过同一个网络实现直播视频数据的传输。

在步骤s204提供的技术方案中,第一终端从终端标识所指示的终端中确定最优的一个或多个终端作为第二终端,通常情况下,第二终端的数量为多个,优选为5个,但是在一些特殊情况下,第二终端的数量也可以是1个,或者更多个。在确定最优的n个终端时,第一终端根据预设的算法(就近原则),按照每个终端的状态信息对所有终端进行排序,取排序靠前的n个终端,作为第二终端。第一终端和第二终端可以是不同类型的,也可以是同种类型的,由于第二终端通常包括多个终端,多个终端可以是任意类型的终端的组合。

在步骤s206提供的技术方案中,nat设备可以用于打洞服务中,可以通过nat设备在第一终端和第二终端进行数据转发,第一终端通过连接打洞服务nat设备向第二终端的预测端口号发起连接请求,第一终端和第二终端可以包括不同类型的终端。具体连接过程可以是:第一终端与nat设备建立连接之后,nat设备可以获取到第一终端的公网ip和端口号等身份信息,在第一终端需要与第二终端中的a终端建立连接时,因为a终端也与nat设备连接,nat设备可以将第一终端的公网ip和端口号等信息发送给a终端,然后nat设备将a终端的公网ip和端口号发送给第一终端,在此之后,a终端与第一终端根据接收到的信息尝试建立连接,nat设备可以根据一定的规则为a终端预测一个端口号,第一终端通过nat设备向第二终端的预测的端口号发起连接请求。由于防火墙和网络类型的不同,可能连接成功,也可能连接不成功,例如,在一些情况下,基于防火墙的不同规则,有些情况下,a终端能够建立连接的端口号可以是a终端与nat设备连接时的端口号为同一个,或者是a终端与nat设备连接时的端口号+1,由于防火墙有不同的规则,可以根据网络类型获取防火墙的规则,然后基于防火墙的不同规则预测一个或多个a终端的端口号,第一终端通过预测的端口号尝试建立与a终端的连接。

在步骤s208提供的技术方案中,在第一终端向第二终端发起连接请求之后,如果第一终端接收到第二终端返回的连接响应,则第一终端与第二终端建立连接成功,第一终端可以与第二终端进行数据交互,如果第一终端在预定时间内没有接收到第二终端返回的连接响应,则说明没有成功建立连接,在这种情况下,可以从列表中选择第n+1个终端尝试建立连接,直到与n个第二终端成功连接。在成功建立连接的情况下,第一终端可以从第二终端中获取视频直播数据。由于第二终端具有多个,第一终端从多个第二终端中同时获取直播视频数据,例如,以数据帧为单位分别从多个第二终端中同时下载第10至20秒的视频数据,然后将所有的视频数据整合成视频文件,可以由安装在手机终端上的播放器播放或者由pc端的adobeflashplayer播放。

本发明实施例的技术方案提供了一种通用的p2p通信架构,可以运用在大型视频直播领域,将pcweb端、手机端视频进行p2p打通,解决了原有pcweb端与手机端p2p隔离的问题。不同终端互联互通之后,会进一步提高p2p得分,降低带宽成本,可以应用在大规模的视频直播中,能够降低宽带成本。越是大规模的视频直播中,本发明的降低宽带成本的优势越明显。

作为一种可选的实施例,第一终端从所指示的终端中选择待建立连接的第二终端可以是第一终端从所指示的终端中选择出满足预定传输条件的第二终端,其中,预定传输条件用于指示第二终端向第一终端传输数据的状态信息。

第一终端从所指示的终端中选择出满足预定传输条件的第二终端包括以下之一:第一终端从所指示的终端中选择出具有直播的视频中的目标视频直播数据的第二终端;第一终端从所指示的终端中选择出当前负载小于第一预定阈值的第二终端;第一终端从所指示的终端中选择出传输速度大于第二预定阈值的第二终端。

状态信息至少包括第二终端具有目标视频、第二终端当前负载较小、第二终端当前传输速度较大(网络状况比较好)中的一项或多项。在更多的应用场景下,状态信息也可以包括更多的信息。

在第一终端确定第二终端时,要从可选的列表中获取状态信息最优的n个第二终端,在确定第二终端时,包括但不限于第二终端有第一终端需要的视频资源(目标视频直播数据),例如,第30秒到35秒的直播数据在列表中只有有限的几个终端具有,则有这些直播数据的这几个终端作为优先的终端,排名靠前。再例如,如果列表中的几个终端已经与别的多个终端建立连接,并正处于向别的多个终端发送视频直播数据的状态,由于负载均衡等原因,这个终端就作为排名靠后的终端。再例如,有些终端的网络状况好,视频数据传输速度快,则这样的终端可以作为排名靠前的终端,网络状况不好,视频传输速度慢的终端排名靠后。

状态信息还可以包括其他因素,在具体的应用场景中,可以为第一终端配置状态信息以及各状态信息的优先级。

作为一种可选的实施例,第一终端通过nat设备向第二终端的预测端口号发起连接请求包括:第一终端向nat设备发送第一连接请求,其中,第一连接请求中携带有第一终端的第一ip地址和第一端口号以及第二终端的第二ip地址和预测端口号,以便指示nat设备根据第二终端的标识从第二终端的端口号中选择预测端口号,并向第二终端的预测端口号发起第二连接请求。

在第一终端向nat设备发起连接第二终端的连接请求时,连接请求中携带有第一终端的第一ip地址(公网ip)和第一端口号,第二终端的第二ip地址和预测的端口号,nat设备可以作为中转为第一终端和第二终端建立连接,在建立连接之后,第一终端和第二终端可以保持数据通信状态,可以不再每次通过nat设备转发数据。在一些情况下,例如,网络断开等情况下,第一终端可以再次通过nat设备与第二终端建立连接。

作为一种可选的实施例,在第一终端通过重定向服务获取终端标识列表之前,第一终端从cdn设备获取直播的视频中的第二预设时长的视频数据;第一终端通过播放器播放第二预设时长的视频数据;在第二预设时长的视频数据的剩余播放时长大于第三预设时长的情况下,第一终端停止从cdn设备获取直播的视频中的视频数据。

在第一终端从第二终端获取视频数据之前,例如,直播视频一开始的一段时间(例如15秒),或者在第一终端剩余的播放时间小于预定的时间(例如5s)的情况下,或者第一终端不能从第二终端获取视频数据的其他情况下,为了防止视频直播时网络中断,第一终端可以从cdn获取视频数据,具体地,第一终端通过地址服务获取cdn地址,然后获取该地址下的直播视频数据,将获取到的数据通过播放器播放,在播放器判断当前剩余播放时长大于第三时长(例如,15秒)的情况下,可以与cdn断开连接,停止从cdn设备获取直播的视频中的视频数据,

作为一种可选的实施例,第一终端通过播放器播放第二预设时长的视频数据包括:第一终端将第二预设时长的视频数据与第一预设时长的视频数据进行拼接,得到拼接数据;第一终端通过播放器播放拼接数据。

在第一终端以多种方式获取到直播视频数据之后,第一终端将获取到的视频数据进行拼接,得到完整数据帧,将完整数据帧返回给播放器,这样播放器可以连续播放直播视频数据,可以准确地返回当前剩余播放时间。

本发明实施例的技术方案中,在手机端,原有播放器多为系统提供,上层应用仅仅进行调用,使用p2p模块后,需要上层应用与p2p模块进行适配,使系统实现更多功能。采用本发明实施例的技术方案可能会提升手机端上行流量:手机端p2p仅在连入wifi情况下启用,在与其他peer进行通信过程中,手机端上行流量相较于未开启p2p会提升,可以默认限制最大40kb。另外,由于开启p2p后,计算复杂度提升,如p2p下载算法,网络资源消耗等,相较于未开启p2p,终端的耗电量会提升15%。

本发明实施例还提供了一种优选实施方式,下面结合优选实施方式对本发明实施例的技术方案进行说明。

图3是根据本发明实施例的终端适配的示意图,如图3所示,从比赛现场通过音视频采集客户端采集的音视频数据通过音视频接入和cdn回源方式传到cdn服务器中,flashp2p终端和手机p2p终端可以从cdn服务器中获取视频直播数据,flashp2p终端和手机p2p终端可以建立p2p连接,以实现视频数据的共享,这样可以减少每个p2p终端从cdn获取数据的次数,因而可以节省成本。p2p终端在数据分享过程中还需要依赖种子服务器同步分片范围,拉取peer列表,通过nat打洞的方式及时与不同的peer建立连接获取视频数据,在网络数据出现变动的情况下,还需要通过重定向服务实现运营商汇聚负载均衡。在种子服务器、打洞服务、重定向服务中,都是基于不同的网络运营商进行的,不同网络运营商之间不建立p2p连接。

图4是根据本发明实施例的视频直播时数据交互的示意图,如图4所示,本发明实施例的技术方案可以应用在pcweb端和手机ios/android端,在pcweb端,通常通过adobeflashplayer进行数据播放,adobeflashplayer与p2pcore(p2p内核)进行组件内部通信,在手机端,是通过java/objectc播放器播放视频数据,java/objectc播放器是进行深度定制、特性开发得到的,手机终端采用c++p2pcore,是通过jni方式调用运行的,进程之间可以进行通信。

图5是根据本发明实施例的p2p内核交互第一阶段的流程图,如图5所示,该流程包括以下交互过程:

1、p2p内核通过域名访问地址服务,获取当前直播视频的cdn播放地址。

2、p2p内核获取该cdn上播放地址上的网络数据(直播的视频数据)。

3、p2p内核将视频数据传输给上层播放器,播放器返回当前剩余播放时间;同时播放器启动播放流程,播放直播视频。

4、p2p内核检测到剩余播放时间大于15s(预先设定的时间,可以配置)后,断开与cdn的数据连接,cdn从主动推送数据模式切换到请求响应模式。

图6是根据本发明实施例的p2p内核交互第二阶段的流程图,如图6所示,该流程包括以下交互过程:

1、p2p内核与cdn保持心跳连接,cdn仅会在收到内核请求后,返回内核请求中指定范围的数据,不再一直向p2p内核推送视频数据。

2、p2p内核请求重定向服务,重定向服务根据用户的ip、运营商属性及后台服务自身的均衡机制,返回就近属于同一运营商的种子服务、打洞服务ip列表。

3、p2p内核与种子列表服务建立连接,种子服务为内核生成全局唯一id(每个ip可能会对应多个id),并且会在种子请求种子列表后,返回该服务上其他种子列表。

4、p2p内核根据自身算法,对种子进行排序,选择合适的种子,请求打洞服务与该种子进行连接。

5、p2p内核则根据该种子服务返回的信息,进行相应的操作,返回的信息可以包括该种子的网络类型和猜测端口,相应的操作包括尝试与指定范围的端口(猜测端口)进行发包通信,如果收到对方(第二终端的p2p内核)回复,表明打洞成功,连接p2p建立;如果在一定时间后未收到回复,则放弃。在放弃与该终端建立p2p连接之后,可以从种子列表中选择其他种子建立p2p连接。

6、p2p内核将收到的数据进行拼接,组装成完整数据帧,返回给播放器,播放器则返回当前剩余播放时间;如果该时间小于设定阈值,可能是网络状况不好,也可能是其他终端也没有获取到后续的直播数据,则p2p内核直接从cdn获取部分数据,以防止直播过程中出现卡顿,影响用户体验。

本发明实施例通过设计一种通用的p2p架构,实现多种平台p2p内核,解决了不同端之间p2p通信的问题。带来了以下益处:原有手机使用平台默认播放组件,播放有延迟并且带宽成本巨大。使用p2p后,延迟时间可控,并且可以节省月30%~50%带宽成本;跨平台的p2p通信,将原有分散的p2p用户统一起来,扩大了种子池资源。使得p2p打洞成功率提升,得分提升。

图7是根据本发明实施例的p2p视频直播时p2p信息参数的示意图,如图7所示,通过p2p的方式观看视频直播时,当前播放器缓存时长为7s,http预加载数据为2076671比特,cdn块下载数据为235942比特,cdn片下载数据为0,p2p上传数据为0,p2p下载数据为26008506比特,p2p有效下载为25959384比特,p2p重复下载维49122比特,p2p60s得分为100分,p2p总得分为91分。根据得分情况可以调整p2p连接的规则,逐渐优化p2p连接方案,使得p2p的使用更加优化,既能够节省成本,又能够提高用户体验。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

实施例2

根据本发明实施例,还提供了一种用于实施上述视频直播数据的传输方法的视频直播数据的传输装置。图8是根据本发明实施例的一种可选的视频直播数据的传输装置的示意图,如图8所示,该装置可以包括:

第一获取单元10,用于使第一终端通过重定向服务获取终端标识列表。

选择单元20,用于使第一终端从所指示的终端中选择待建立连接的第二终端。

连接单元30,用于使第一终端通过网络地址转换设备向第二终端的预测端口号发起连接请求,其中,网络地址转换设备用于在第一终端与第二终端之间进行数据转发。

接收单元40,用于在接收到第二终端响应于连接请求返回的连接响应的情况下,使第一终端接收第二终端发送的视频直播数据,其中,视频直播数据为第二终端预先从内容分发网络设备中获取到的直播的视频中的第一预设时长的视频数据。

需要说明的是,该实施例中的第一获取单元10可以用于执行本申请实施例1中的步骤s202,该实施例中的选择单元20可以用于执行本申请实施例1中的步骤s204,该实施例中的连接单元30可以用于执行本申请实施例1中的步骤s206,该实施例中的接收单元40可以用于执行本申请实施例1中的步骤s208。

此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。

通过上述模块,可以解决了视频直播时pcweb端与手机端不能进行p2p通信的技术问题,进而达到可以在不同终端类型之间建立p2p连接的的技术效果。

作为一种可选的实施例,选择单元20用于通过第一终端从所指示的终端中选择出满足预定传输条件的第二终端,其中,预定传输条件用于指示第二终端向第一终端传输数据的状态信息。

作为一种可选的实施例,选择单元20用于执行以下之一:通过第一终端从所指示的终端中选择出具有直播的视频中的目标视频直播数据的第二终端;通过第一终端从所指示的终端中选择出当前负载小于第一预定阈值的第二终端;通过第一终端从所指示的终端中选择出传输速度大于第二预定阈值的第二终端。

作为一种可选的实施例,连接单元20用于通过第一终端向网络地址转换设备发送第一连接请求,其中,第一连接请求中携带有第一终端的第一ip地址和第一端口号以及第二终端的第二ip地址和预测端口号,以便指示网络地址转换设备根据第二终端的标识从第二终端的端口号中选择预测端口号,并向第二终端的预测端口号发起第二连接请求。

作为一种可选的实施例,该装置还包括:第二获取单元,用于在第一终端通过重定向服务获取终端标识列表之前,通过第一终端从内容分发网络设备获取直播的视频中的第二预设时长的视频数据;播放单元,用于在第一终端通过播放器播放第二预设时长的视频数据;第三获取单元,用于在第二预设时长的视频数据的剩余播放时长大于第三预设时长的情况下,第一终端停止从内容分发网络设备获取直播的视频中的视频数据。

作为一种可选的实施例,播放单元包括:拼接模块,用于通过第一终端将第二预设时长的视频数据与第一预设时长的视频数据进行拼接,得到拼接数据;播放模块,用于通过第一终端通过播放器播放拼接数据。

此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。

实施例3

根据本发明实施例,还提供了一种用于实施上述视频直播数据的传输方法的电子装置。如图9所示,该电子装置包括:

1)处理器

2)存储器

图9是根据本发明实施例的一种电子装置的结构框图,如图9所示,该电子装置可以包括:一个或多个(图中仅示出一个)处理器201、存储器203、以及传输装置205(如上述实施例中的发送装置),如图9所示,该电子装置还可以包括输入输出设备207。

其中,存储器203可用于存储软件程序以及模块,如本发明实施例中的视频直播数据的传输方法和装置对应的程序指令/模块,处理器201通过运行存储在存储器203内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的视频直播数据的传输方法。存储器203可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器203可进一步包括相对于处理器201远程设置的存储器,这些远程存储器可以通过网络连接至电子装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

上述的传输装置205用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置205包括一个网络适配器(networkinterfacecontroller,nic),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置205为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。

其中,具体地,存储器203用于存储应用程序。

处理器201可以通过传输装置205调用存储器203存储的应用程序,以执行下述步骤:第一终端通过重定向服务获取终端标识列表;第一终端从所指示的终端中选择待建立连接的第二终端;第一终端通过网络地址转换设备向第二终端的预测端口号发起连接请求,其中,网络地址转换设备用于在第一终端与第二终端之间进行数据转发;在接收到第二终端响应于连接请求返回的连接响应的情况下,第一终端接收第二终端发送的视频直播数据,其中,视频直播数据为第二终端预先从内容分发网络设备中获取到的直播的视频中的第一预设时长的视频数据。

处理器201还用于执行下述步骤:第一终端从所指示的终端中选择出满足预定传输条件的第二终端,其中,预定传输条件用于指示第二终端向第一终端传输数据的状态信息。

处理器201还用于执行下述步骤:第一终端从所指示的终端中选择出具有直播的视频中的目标视频直播数据的第二终端;第一终端从所指示的终端中选择出当前负载小于第一预定阈值的第二终端;第一终端从所指示的终端中选择出传输速度大于第二预定阈值的第二终端。

处理器201还用于执行下述步骤:第一终端向网络地址转换设备发送第一连接请求,其中,第一连接请求中携带有第一终端的第一ip地址和第一端口号以及第二终端的第二ip地址和预测端口号,以便指示网络地址转换设备根据第二终端的标识从第二终端的端口号中选择预测端口号,并向第二终端的预测端口号发起第二连接请求。

处理器201还用于执行下述步骤:第一终端从内容分发网络设备获取直播的视频中的第二预设时长的视频数据;第一终端通过播放器播放第二预设时长的视频数据;在第二预设时长的视频数据的剩余播放时长大于第三预设时长的情况下,第一终端停止从内容分发网络设备获取直播的视频中的视频数据。

处理器201还用于执行下述步骤:第一终端将第二预设时长的视频数据与第一预设时长的视频数据进行拼接,得到拼接数据;第一终端通过播放器播放拼接数据。

采用本发明实施例,第一终端通过重定向服务获取终端标识列表;第一终端从所指示的终端中选择待建立连接的第二终端;第一终端通过网络地址转换设备向第二终端的预测端口号发起连接请求,网络地址转换设备用于在第一终端与第二终端之间进行数据转发;在接收到第二终端响应于连接请求返回的连接响应的情况下,第一终端接收第二终端发送的视频直播数据,其中,视频直播数据为第二终端预先从内容分发网络设备中获取到的直播的视频中的第一预设时长的视频数据,达到了可以在不同终端类型之间建立p2p连接的目的,从而实现了减少cdn带宽占用,节省成本的技术效果,进而解决了视频直播时pcweb端与手机端不能进行p2p通信的技术问题。

可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。

本领域普通技术人员可以理解,图9所示的结构仅为示意,电子装置可以是智能手机(如android手机、ios手机等)、平板电脑、掌上电脑以及移动互联网设备(mobileinternetdevices,mid)、pad等电子装置设备。图9其并不对上述电子装置的结构造成限定。例如,电子装置还可包括比图9中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图9所示不同的配置。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令电子装置设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read-onlymemory,rom)、随机存取器(randomaccessmemory,ram)、磁盘或光盘等。

实施例4

本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行视频直播数据的传输方法的程序代码。

可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:

s1,第一终端通过重定向服务获取终端标识列表;

s2,第一终端从所指示的终端中选择待建立连接的第二终端;

s3,第一终端通过网络地址转换设备向第二终端的预测端口号发起连接请求,其中,网络地址转换设备用于在第一终端与第二终端之间进行数据转发;

s4,在接收到第二终端响应于连接请求返回的连接响应的情况下,第一终端接收第二终端发送的视频直播数据,其中,视频直播数据为第二终端预先从内容分发网络设备中获取到的直播的视频中的第一预设时长的视频数据。

可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:第一终端从所指示的终端中选择出满足预定传输条件的第二终端,其中,预定传输条件用于指示第二终端向第一终端传输数据的状态信息。

可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:第一终端从所指示的终端中选择出具有直播的视频中的目标视频直播数据的第二终端;第一终端从所指示的终端中选择出当前负载小于第一预定阈值的第二终端;第一终端从所指示的终端中选择出传输速度大于第二预定阈值的第二终端。

可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:第一终端向网络地址转换设备发送第一连接请求,其中,第一连接请求中携带有第一终端的第一ip地址和第一端口号以及第二终端的第二ip地址和预测端口号,以便指示网络地址转换设备根据第二终端的标识从第二终端的端口号中选择预测端口号,并向第二终端的预测端口号发起第二连接请求。

可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:第一终端从内容分发网络设备获取直播的视频中的第二预设时长的视频数据;第一终端通过播放器播放第二预设时长的视频数据;在第二预设时长的视频数据的剩余播放时长大于第三预设时长的情况下,第一终端停止从内容分发网络设备获取直播的视频中的视频数据

可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:第一终端将第二预设时长的视频数据与第一预设时长的视频数据进行拼接,得到拼接数据;第一终端通过播放器播放拼接数据。

可选地,本实施例中的具体示例可以参考上述实施例1和实施例2中所描述的示例,本实施例在此不再赘述。

可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1