CN109756757B - 直播数据处理方法及装置、直播方法及装置和直播服务器 - Google Patents
直播数据处理方法及装置、直播方法及装置和直播服务器 Download PDFInfo
- Publication number
- CN109756757B CN109756757B CN201910219578.9A CN201910219578A CN109756757B CN 109756757 B CN109756757 B CN 109756757B CN 201910219578 A CN201910219578 A CN 201910219578A CN 109756757 B CN109756757 B CN 109756757B
- Authority
- CN
- China
- Prior art keywords
- slice
- preset
- live broadcast
- current
- 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
Landscapes
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明提供了一种直播数据处理方法及装置、直播方法及装置和直播服务器,涉及互联网多媒体领域,通过将实时接收直播传输流TS数据进行切片,将得到的当前TS切片按照预设规则存储到该切片的存储区;同时将预设m3u8文件中的TS切片的存储地址更新为当前TS切片的存储地址;当接收到客户端的直播请求时,将预设m3u8文件发送至客户端,以使客户端基于m3u8文件中的TS切片的存储地址和预设规则实现直播播放。该方法的客户端在直播播放时只需向服务端请求一次m3u8文件,避免反复向服务端发起http请求以更新m3u8文件的情况,减小服务端的压力和硬件资源的耗费。
Description
技术领域
本发明涉及互联网多媒体技术领域,尤其是涉及一种直播数据处理方法及装置、直播方法及装置和直播服务器。
背景技术
HLS(Http Live Streaming,http直播流)直播技术普遍应用于移动互联网流媒体的各个领域。其中,HLS技术要求服务端对直播TS流(Transport Stream,传输流)进行连续切片,一个切片的时长一般为6S,同时要求服务端动态生成一个m3u8格式的索引文件,该m3u8文件记录至少3个最新的已处理完成的TS切片。当播放器(客户端)播放直播TS流时,先向服务器请求m3u8文件,然后根据m3u8文件中的3个TS切片的下载地址,进行下载播放,为了进行后续直播TS流的播放,客户端还需要定期的向服务端发起http(HyperTextTransfer Protocol,超文本传输协议)请求以获取更新的m3u8文件,进而从更新的m3u8文件中获取新的TS切片的下载地址,频繁的http请求会增大服务端的压力,耗费大量的硬件资源。
发明内容
有鉴于此,本发明的目的在于提供一种直播数据处理方法及装置、直播方法及装置和直播服务器,以缓解了现有技术中为了维持直播TS数据的播放,客户端需要反复向服务端请求更新TS切片的下载地址,造成服务端压力大和硬件资源耗费大的技术问题。
第一方面,本发明实施例提供了一种直播数据处理方法,该方法应用于服务器内部的服务端,该服务器还包括客户端,该方法包括:实时接收直播传输流TS数据;以预设数据时长为切片周期对接收到的当前直播TS数据进行切片,得到当前切片周期对应的当前TS切片;按照预设规则确定当前TS切片的存储地址,并将当前TS切片存储至当前TS切片的存储地址对应的存储区;将预设m3u8文件中的TS切片的存储地址更新为当前TS切片的存储地址;当接收到服务器的客户端的播放直播请求时,将预设m3u8文件发送至客户端,以使客户端基于预设m3u8文件中的TS切片的存储地址和预设规则,通过http chunked方式下载直播TS数据中直播请求对应时刻及该时刻之后的TS切片,实现直播TS数据的直播播放。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,以预设数据时长为切片周期对接收到的当前直播TS数据进行切片,得到当前切片周期对应的当前TS切片的步骤,包括:将接收到的当前直播TS数据的第一个关键帧作为切片起始帧;从切片起始帧开始经预设数据时长后,如果接收到新的关键帧,将新的关键帧的前一个数据帧作为切片中止帧;将切片起始帧至切片中止帧间的数据帧作为当前TS切片。
结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,按照预设规则确定当前TS切片的存储地址的步骤,包括:根据当前TS切片的起始时刻的系统时间戳和预设数据时长,以及预设规则确定当前TS切片的存储地址。
结合第一方面的第二种可能的实施方式,本发明实施例提供了第一方面的第三种可能的实施方式,其中,预设规则为TS切片的存储地址=URL(TS切片的地址号),URL()为预设地址式;根据当前TS切片的起始时刻的系统时间戳和预设数据时长,以及预设规则确定当前TS切片的存储地址的步骤,包括:计算当前TS切片的地址号为当前TS切片的起始时刻的系统时间戳除以预设数据时长的商;将计算得到的当前TS切片的地址号代入预设规则,得到当前TS切片的存储地址。
结合第一方面,本发明实施例提供了第一方面的第四种可能的实施方式,其中,将预设m3u8文件中的TS切片的存储地址更新为当前TS切片的存储地址的步骤,包括:判断当前TS切片的数据时长是否达到预设最短数据时长;如果是,将预设m3u8文件中的TS切片的存储地址更新为当前TS切片的存储地址。
第二方面,本发明实施例还提供一种直播方法,该方法应用于服务器内部的客户端,该方法包括:向服务器的服务端发出直播请求,以便服务端根据直播请求返回预设m3u8文件;其中,预设m3u8文件中的TS切片的存储地址为按照预设规则确定的;当接收到预设m3u8文件时,基于预设m3u8文件中的TS切片的存储地址和预设规则,通过http chunked方式下载直播TS数据中直播请求对应时刻及该时刻之后的TS切片,实现直播TS数据的直播播放。
结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,基于预设m3u8文件中的TS切片的存储地址和预设规则,通过http chunked方式下载直播TS数据中直播请求对应时刻及该时刻之后的TS切片的步骤,包括:当接收到预设m3u8文件时,解析获得预设m3u8文件中的TS切片的存储地址;将预设m3u8文件中的TS切片的存储地址作为播放地址,通过http chunked方式播放播放地址对应的存储区中存储的TS切片;当播放完播放地址对应的存储区中存储的TS切片时,根据播放地址和预设规则,计算新的播放地址,以继续对新的播放地址对应的存储区中存储的TS切片进行连续播放。
第三方面,本发明实施例提供了一种直播数据处理装置,该装置应用于服务器的服务端,该装置包括:接收模块,用于实时接收直播传输流TS数据;切片模块,用于以预设数据时长为切片周期对接收到的当前直播TS数据进行切片,得到当前切片周期对应的当前TS切片;存储模块,用于按照预设规则确定当前TS切片的存储地址,并将当前TS切片存储至当前TS切片的存储地址对应的存储区;更新模块,用于将预设m3u8文件中的TS切片的存储地址更新为当前TS切片的存储地址;发送模块,当接收到服务器的客户端的直播请求时,将预设m3u8文件发送至客户端,以使客户端基于预设m3u8文件中的TS切片的存储地址和预设规则,通过http chunked方式下载直播TS数据中直播请求对应时刻及该时刻之后的TS切片,实现直播TS数据的直播播放。
第四方面,本发明实施例还提供一种直播装置,该装置应用于服务器的客户端,该装置包括:发出请求模块,用于向服务器的服务端发出直播请求,以便服务端根据请求返回预设m3u8文件;其中,该预设m3u8文件中的TS切片的存储地址为按照预设规则确定的;下载模块,用于当接收到预设m3u8文件时,基于预设m3u8文件中的TS切片的存储地址和预设规则,通过http chunked方式下载直播TS数据中直播请求对应时刻及该时刻之后的TS切片,实现直播TS数据的直播播放。
第五方面,本发明实施例还提供一种直播服务器,该直播服务器包括服务端和客户端;该服务端用于执行第一方面所述的直播数据处理方法;该客户端用于执行第二方面所述的直播方法。
本发明实施例带来了以下有益效果:
上述实施例提供了一种直播数据处理方法及装置、直播方法及装置和直播服务器,该方法应用于服务器的服务端,该方法通过实时接收直播传输流TS数据;以预设数据时长为切片周期对接收到的当前直播TS数据进行切片,得到当前切片周期对应的当前TS切片;按照预设规则确定当前TS切片的存储地址,并将当前TS切片存储至当前TS切片的存储地址对应的存储区;将预设m3u8文件中的TS切片的存储地址更新为当前TS切片的存储地址;当接收到服务器的客户端的直播请求时,将预设m3u8文件发送至客户端,以使客户端基于预设m3u8文件中的TS切片的存储地址和预设规则,通过http chunked方式下载直播TS数据中直播请求对应时刻及该时刻之后的TS切片,实现直播TS数据的直播播放。这种按照预设规则依次存放直播TS数据的TS切片的方式,使得客户端在每次播放直播TS数据时,只需向服务端请求一次m3u8文件,即可根据m3u8文件和预设规则对直播TS数据中的其他TS切片进行直播播放,避免在直播播放的过程中反复向服务端发起http请求以更新m3u8文件的情况,从而减小服务端的压力和硬件资源的耗费。这种m3u8文件实时更新当前TS切片的存储地址的方式,保证了m3u8文件中仅有一个TS切片的存储地址,使得客户端在利用该m3u8文件进行直播播放时,延时时间最长仅为一个TS切片的播放时长,减小了直播延时;同时客户端通过http chunked方式可以对服务端的处理中的TS切片进行直播,进一步减小了直播延时。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种直播数据处理方法的流程图;
图2为本发明实施例提供的另一种直播数据处理方法的流程图;
图3为本发明实施例提供的一种直播方法的流程图;
图4为本发明实施例提供的一种服务端和客户端交互流程图;
图5为本发明实施例提供的一种直播数据处理装置的结构示意图;
图6为本发明实施例提供的一种直播装置的结构示意图;
图7为本发明实施例提供的一种直播服务器的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
当客户端进行直播视频播放时,客户端需要通过服务端获取TS切片的存储地址,以对存储地址中的TS切片进行播放,在TS切片播放的过程中,客户端需要向服务端发起http请求以获取新的TS切片的存储地址来实现对新的TS切片的播放,频繁的http请求会增大服务端的压力,耗费大量的硬件资源,基于此,本发明实施例提供的一种直播数据处理方法及装置、直播方法及装置和直播服务器,可以避免客户端在下载直播TS数据的过程中反复向服务端发起http请求以更新TS切片的下载地址的情况,从而减小服务端的压力和硬件资源的耗费。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种直播数据处理方法进行详细介绍。
实施例一:
本实施例提供了一种直播数据处理方法,参考图1所示的一种直播数据处理方法的流程图,该方法应用于服务器内部的服务端,该方法包括以下步骤:
步骤S102,实时接收直播传输流TS数据;
上述直播传输流中的直播TS数据可以包括视频数据、音频数据、表格数据等,该直播TS数据可以是由数据的提供者实时上传至服务器的服务端的数据。
步骤S104,以预设数据时长为切片周期对接收到的当前直播TS数据进行切片,得到当前切片周期对应的当前TS切片;
上述预设数据时长可以是当前TS切片的节目时长,通常设置为4s至10s。本申请中,该预设数据时长设置为4s。在对当前直播TS数据进行切片的过程中,可以将当前直播TS数据以切片的形式保存到本地缓存中,如内存缓存。
步骤S106,按照预设规则确定当前TS切片的存储地址,并将当前TS切片存储至当前TS切片的存储地址对应的存储区;
上述预设规则可以是TS切片的存储原则,在确定当前TS切片的过程中,可以自对直播TS数据进行切片起,从1开始按照TS切片的生成顺序,依次给每个TS切片进行标号命名,并把该标号与预先建立的标号-地址对照表对照,找到该标号所对应的存储地址,上述标号-地址对照表中包含的存储地址和标号是一一对应的;上述标号的设定原则还可以与直播TS数据的系统时间戳有关。上述存储地址可以仅为一串字符码,也可以为想要存储TS切片的存储区的地址;具体地,存储地址、TS切片的标号命名和TS切片所在的存储区为唯一对应的关系。
步骤S108,将预设m3u8文件中的TS切片的存储地址更新为当前TS切片的存储地址;
步骤S110,当接收到服务器的客户端的直播请求时,将预设m3u8文件发送至客户端,以使客户端基于预设m3u8文件中的TS切片的存储地址和预设规则,通过http chunked方式下载直播TS数据中直播请求对应时刻及该时刻之后的TS切片,实现直播TS数据的直播播放。
上述直播请求可以是通过点击客户端网页上的视频链接实现的。在将预设m3u8文件发送至客户端的过程中,该m3u8文件中只有一个TS切片的存储地址的记录,当客户端发出直播请求时,该直播请求可以是请求m3u8文件的请求,服务端可以将上述m3u8文件发送至客户端;客户端基于预设m3u8文件中的TS切片的存储地址和预设规则进行直播TS数据下载时,客户端可以利用http chunked方式下载m3u8文件中的TS切片,该TS切片对应的为直播请求对应时刻的切片,当该m3u8文件中的TS切片下载完成后,客户端可以基于该m3u8文件中的TS切片的存储地址和预设规则,计算直播请求对应时刻之后的后续TS切片的存储地址,再利用http chunked方式进行后续TS切片的下载播放,以实现对直播数据的全部TS切片的下载。
上述实施例提供的直播数据处理方法应用于服务器的服务端,该方法通过实时接收直播传输流TS数据;以预设数据时长为切片周期对接收到的当前直播TS数据进行切片,得到当前切片周期对应的当前TS切片;按照预设规则确定当前TS切片的存储地址,并将当前TS切片存储至当前TS切片的存储地址对应的存储区;将预设m3u8文件中的TS切片的存储地址更新为当前TS切片的存储地址;当接收到服务器的客户端的直播请求时,将预设m3u8文件发送至客户端,以使客户端基于预设m3u8文件中的TS切片的存储地址和预设规则,通过http chunked方式下载直播TS数据中直播请求对应时刻及该时刻之后的TS切片,实现直播TS数据的直播播放。这种按照预设规则依次存放直播TS数据的TS切片的方式,使得客户端在每次播放直播TS数据时,只需向服务端请求一次m3u8文件,即可根据m3u8文件和预设规则对直播TS数据中的其他TS切片进行直播播放,避免在直播播放的过程中反复向服务端发起http请求以更新m3u8文件的情况,从而减小服务端的压力和硬件资源的耗费。这种m3u8文件实时更新当前TS切片的存储地址的方式,保证了m3u8文件中仅有一个TS切片的存储地址,使得客户端在利用该m3u8文件进行直播播放时,延时时间最长仅为一个TS切片的播放时长,减小了直播延时;同时客户端通过http chunked方式可以对服务端的处理中的TS切片进行直播,进一步减小了直播延时。
在上述实施例的基础上,图2示出了另一种直播数据处理方法的流程图,该方法包括以下步骤:
步骤S202,实时接收直播传输流TS数据;
步骤S204,将接收到的当前直播TS数据的第一个关键帧作为切片起始帧;其中,上述关键帧是直播TS数据自带的,一般情况下,播放时长为一秒的直播数据中会包括一至两个关键帧和若干个数据帧。
步骤S206,从切片起始帧开始经预设数据时长后,如果接收到新的关键帧,将新的关键帧的前一个数据帧作为切片中止帧;
步骤S208,将切片起始帧至切片中止帧间的数据帧作为当前TS切片。
步骤S210,根据当前TS切片的起始时刻的系统时间戳和预设数据时长,以及预设规则确定当前TS切片的存储地址,并将当前TS切片存储至当前TS切片的存储地址对应的存储区;
上述预设规则为TS切片的存储地址=URL(TS切片的地址号),该URL()为预设地址式;例如,URL(x)=http://addr/cctv1/x.ts。其中,addr指服务端的地址,cctv1为频道名(直播TS数据名),x为TS切片的地址号。
步骤S210中的根据当前TS切片的起始时刻的系统时间戳和预设数据时长,以及预设规则确定当前TS切片的存储地址,可以由步骤11和步骤12实现:
步骤11,计算当前TS切片的地址号为当前TS切片的起始时刻的系统时间戳除以预设数据时长的商;该系统时间戳可以为以秒为单位的北京时间。
步骤12,将计算得到的当前TS切片的地址号代入预设规则,得到当前TS切片的存储地址。
例如,当前TS切片的地址号为387207783时,该当前TS切片的存储地址可以为http://www.suma.com/live/cctv1/387207783.ts,其中,服务端的地址为www.suma.com/live;直播TS数据名为cctv1。
步骤S212,判断当前TS切片的数据时长是否达到预设最短数据时长;如果是,执行步骤S214,如果否,执行步骤S212;
为了避免当前TS切片的节目时长过短,预设最短数据时长可以根据实际情况设定,本申请中该预设最短数据时长为3s。
步骤S214,将预设m3u8文件中的TS切片的存储地址更新为当前TS切片的存储地址;
步骤S216,当接收到服务器的客户端的直播请求时,将预设m3u8文件发送至客户端,以使客户端基于预设m3u8文件中的TS切片的存储地址和预设规则,通过http chunked方式下载直播TS数据中直播请求对应时刻及该时刻之后的TS切片,实现直播TS数据的直播播放。
在直播过程中,客户端下载的TS切片和服务端正在处理的TS切片之间的时间差即为直播延时,本申请为了进一步减小直播延时,当当前TS切片的数据时长达到预设最短数据时长时,即将当前TS切片的存储地址更新至m3u8文件中,同时,服务端继续对该当前TS切片进行处理,以使得该当前TS切片的数据时长达到预设数据时长,此时如果客户端发出直播请求,客户端可以通过m3u8文件获取正在处理中的当前TS切片的存储地址,并通过httpchunked方式对当前TS切片的切片数据进行播放,该http chunked可以对正在处理中的TS切片数据进行下载播放,此时,客户端下载的TS切片数据与服务端正在处理的TS切片数据之间的时间差即为客户端发出直播请求时,m3u8文件中的TS切片的数据时长,由此可以知,本申请的直播延迟最短可以为预设最短数据时长。
同理,当直播请求到来时,m3u8文件还未将当前TS切片的存储地址更新至文件内时(当前TS切片的数据时长未达到预设最短数据时长),此时m3u8文件中存储的是前一个TS切片,该前一个切片的数据时长为预设数据时长,在此情况下,直播延时最长可以为预设最短数据时长与预设数据时长的加和。
这种将新的关键帧作为下一个TS切片的切片起始帧的方式,保证了每个TS切片的起始帧都是关键帧,使得每个TS切片都可以解码,避免出现切片播放马赛克的问题。这种通过判断当前TS切片的数据时长是否达到预设最短数据时长的方式,使得m3u8文件中的TS切片与服务端正在处理的TS切片之间的延时最短,即延时时长最长等于m3u8文件中的TS切片的节目时长,进而使客户端在播放后续TS切片时,与服务端正在处理的TS切片之间的延时短,以提高了用户的观看体验。
实施例二:
本发明实施例还提供一种直播方法,参考图3所示的一种直播方法的流程图,该方法应用于服务器内部的客户端,该方法包括以下步骤:
步骤S302,向服务器的服务端发出直播请求,以便服务端根据直播请求返回预设m3u8文件;其中,预设m3u8文件中的TS切片的存储地址为按照预设规则确定的;
步骤S304,当接收到预设m3u8文件时,基于预设m3u8文件中的TS切片的存储地址和预设规则,通过http chunked方式下载直播TS数据中直播请求对应时刻及该时刻之后的TS切片,实现直播TS数据的直播播放。
其中,步骤S304中的基于预设m3u8文件中的TS切片的存储地址和预设规则,通过http chunked方式下载直播TS数据中直播请求对应时刻及该时刻之后的TS切片,可以由步骤21、步骤22和步骤23实现:
步骤21,当接收到预设m3u8文件时,解析获得预设m3u8文件中的存储地址;
步骤22,将预设m3u8文件中的TS切片的存储地址作为播放地址,通过httpchunked方式播放播放地址对应的存储区中存储的TS切片;
在播放的过程中,客户端将播放地址中的地址号、频道等信息告知服务端,服务端可以根据地址号、频道等信息确定播放地址对应的存储区,并通过chunked方式发送播放地址对应的存储区中TS切片中的数据到客户端,以使客户端下载并播放该TS切片中的数据;
步骤23,当播放完播放地址对应的存储区中存储的TS切片时,根据播放地址和预设规则,计算新的播放地址,以继续对新的播放地址对应的存储区中存储的TS切片进行连续播放。
例如,随着直播TS数据的播放,服务端生成TS切片:387207784.ts、当客户端的请求发出时,服务端正在处理的TS切片为:387207784.ts切片,387207784=1548831136(正在处理的TS切片的起始时刻的系统时间戳)/4(该TS切片的节目时长)得到的;将该387207784.ts的存储地址更新到m3u8文件中,在客户端下载m3u8文件中的TS切片时,服务端处理1548831140/4=387207785.ts的TS切片;
当客户端下载完成m3u8文件中的TS切片时,计算新的播放地址的计算公式即为:
播放地址=URL(播放地址号);
该播放地址号=[目标TS切片的地址号×节目时长+节目时长]/节目时长=(387207784×4+4)/4=387207784+1=目标TS切片的地址号+1,即为387207785.ts的切片的地址号;
基于此,该客户端可以根据一个TS切片的地址号得知后续TS切片的地址号,进而得知后续TS切片的存储地址,以实现直播TS数据的连续直播,无需再向服务端请求更新TS切片的下载地址。
为了便于理解客户端从服务端下载TS切片数据的流程,参考图4所示的一种服务端和客户端交互流程图。
该交互流程图包括如下步骤:
S402,客户端向服务端请求播放直播TS数据;
S404,服务端发送直播TS数据对应的m3u8文件;该m3u8文件中仅包含一个TS切片的存储地址;
S406,客户端请求TS切片1;
在请求TS切片1的过程中,客户端可以通过解析m3u8文件中的内容,获得TS切片1的存储地址,进而根据该存储地址从服务端中请求并播放TS切片1;
步骤S408,客户端请求TS切片2;
在请求TS切片2的过程中,客户端根据TS切片1的存储地址和预设规则,计算TS切片2的存储地址,进而根据该存储地址从服务端中请求并播放TS切片2;
......
步骤S410,客户端请求TS切片n。
综上,由于服务端生成的TS切片的地址号和存储地址是按照预设规则生成的,客户端可以根据m3u8中的TS切片的存储地址,根据上述预设规则直接推算下一个切片的存储地址;无需再通过多次获取m3u8文件来更新TS切片的下载地址,降低服务端的请求压力,降低了服务端的硬件成本。此外,服务端发给客户端中的m3u8文件只记录一个TS切片的存储地址,因此,客户端下载的TS切片和服务端正在处理的TS切片之间最多仅有一个TS切片的节目时长的延时,直播延时在3~7S之间,提升用户体验。
实施例三:
本实施例提供了一种直播数据处理装置,参考图5所示的一种直播数据处理装置的结构示意图,该装置应用于服务器的服务端,该装置包括:
接收模块502,用于实时接收直播传输流TS数据;
切片模块504,用于以预设数据时长为切片周期对接收到的当前直播TS数据进行切片,得到当前切片周期对应的当前TS切片;
存储模块506,用于按照预设规则确定当前TS切片的存储地址,并将当前TS切片存储至当前TS切片的存储地址对应的存储区;
更新模块508,用于将预设m3u8文件中的TS切片的存储地址更新为当前TS切片的存储地址;
发送模块510,当接收到服务器的客户端的直播请求时,将预设m3u8文件发送至客户端,以使客户端基于预设m3u8文件中的TS切片的存储地址和预设规则,通过httpchunked方式下载直播TS数据中直播请求对应时刻及该时刻之后的TS切片,实现直播TS数据的直播播放。
实施例四:
本实施例提供一种直播装置,参考图6所示的一种直播装置的结构示意图,该装置应用于服务器的客户端,该装置包括:
发出请求模块602,用于向服务器的服务端发出直播请求,以便服务端根据直播请求返回预设m3u8文件;其中,该预设m3u8文件中的TS切片的存储地址为按照预设规则确定的;
下载模块604,用于当接收到预设m3u8文件时,基于预设m3u8文件中的TS切片的存储地址和预设规则,通过http chunked方式下载直播TS数据中直播请求对应时刻及该时刻之后的TS切片,实现直播TS数据的直播播放。
本发明实施例提供的直播数据处理装置和直播装置,与上述实施例提供的直播数据处理方法和直播方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
本实施例还提供一种直播服务器,参考图7所示的一种直播服务器的结构示意图,该直播服务器包括服务端702和客户端704;
该服务端用于执行实施例一所述的直播数据处理方法;该客户端用于执行实施例二所述的直播方法。
进一步,本发明实施例还提供一种计算机存储介质,用于存储计算机程序指令,当计算机执行所示计算机程序指令时,执行如上述实施例一所述的直播数据处理方法和实施例二所述的直播方法。
附图中的流程图和结构框图显示了根据本发明的多个实施例的方法、装置和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
在本申请所提供的几个实施例中,应该理解到,所揭露方法和装置,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (9)
1.一种直播数据处理方法,其特征在于,所述方法应用于服务器内部的服务端,所述方法包括:
实时接收直播传输流TS数据;
以预设数据时长为切片周期对接收到的当前直播TS数据进行切片,得到当前切片周期对应的当前TS切片;
按照预设规则确定所述当前TS切片的存储地址,并将所述当前TS切片存储至所述当前TS切片的存储地址对应的存储区;
将预设m3u8文件中的TS切片的存储地址更新为所述当前TS切片的存储地址;
当接收到所述服务器的客户端的直播请求时,将所述预设m3u8文件发送至所述客户端,以使所述客户端基于所述预设m3u8文件中的TS切片的存储地址和所述预设规则,通过http chunked方式下载所述直播TS数据中所述直播请求对应时刻及该时刻之后的TS切片,实现所述直播TS数据的直播播放;
将预设m3u8文件中的TS切片的存储地址更新为所述当前TS切片的存储地址的步骤,包括:
判断所述当前TS切片的数据时长是否达到预设最短数据时长;
如果是,将预设m3u8文件中的TS切片的存储地址更新为所述当前TS切片的存储地址。
2.根据权利要求1所述的方法,其特征在于,以预设数据时长为切片周期对接收到的当前直播TS数据进行切片,得到当前切片周期对应的当前TS切片的步骤,包括:
将接收到的当前直播TS数据的第一个关键帧作为切片起始帧;
从所述切片起始帧开始经预设数据时长后,如果接收到新的关键帧,将所述新的关键帧的前一个数据帧作为切片中止帧;
将所述切片起始帧至所述切片中止帧间的数据帧作为当前TS切片。
3.根据权利要求1所述的方法,其特征在于,按照预设规则确定所述当前TS切片的存储地址的步骤,包括:
根据所述当前TS切片的起始时刻的系统时间戳和所述预设数据时长,以及预设规则确定所述当前TS切片的存储地址。
4.根据权利要求3所述的方法,其特征在于,所述预设规则为TS切片的存储地址=URL(TS切片的地址号),所述URL()为预设地址式;
根据所述当前TS切片的起始时刻的系统时间戳和所述预设数据时长,以及预设规则确定所述当前TS切片的存储地址的步骤,包括:
计算所述当前TS切片的地址号为所述当前TS切片的起始时刻的系统时间戳除以所述预设数据时长的商;
将计算得到的所述当前TS切片的地址号代入所述预设规则,得到所述当前TS切片的存储地址。
5.一种直播方法,其特征在于,所述方法应用于服务器内部的客户端,所述方法包括:
向所述服务器的服务端发出直播请求,以便所述服务端根据所述直播请求返回预设m3u8文件;其中,所述预设m3u8文件中的TS切片的存储地址为按照预设规则确定的;
当接收到所述预设m3u8文件时,基于所述预设m3u8文件中的TS切片的存储地址和所述预设规则,通过http chunked方式下载所述直播TS数据中所述直播请求对应时刻及该时刻之后的TS切片,实现所述直播TS数据的直播播放;所述预设m3u8文件中的TS切片的存储地址按照权利要求1-4任一项所述的方法更新。
6.根据权利要求5所述的方法,其特征在于,基于所述预设m3u8文件中的TS切片的存储地址和所述预设规则,通过http chunked方式下载所述直播TS数据中所述直播请求对应时刻及该时刻之后的TS切片的步骤,包括:
当接收到所述预设m3u8文件时,解析获得所述预设m3u8文件中的TS切片的存储地址;
将所述预设m3u8文件中的TS切片的存储地址作为播放地址,通过http chunked方式播放所述播放地址对应的存储区中存储的TS切片;
当播放完所述播放地址对应的存储区中存储的TS切片时,根据所述播放地址和所述预设规则,计算新的播放地址,以继续对所述新的播放地址对应的存储区中存储的TS切片进行连续播放。
7.一种直播数据处理装置,其特征在于,所述装置应用于服务器的服务端,所述装置包括:
接收模块,用于实时接收直播传输流TS数据;
切片模块,用于以预设数据时长为切片周期对接收到的当前直播TS数据进行切片,得到当前切片周期对应的当前TS切片;
存储模块,用于按照预设规则确定所述当前TS切片的存储地址,并将所述当前TS切片存储至所述当前TS切片的存储地址对应的存储区;
更新模块,用于将预设m3u8文件中的TS切片的存储地址更新为所述当前TS切片的存储地址;
发送模块,当接收到所述服务器的客户端的直播请求时,将所述预设m3u8文件发送至所述客户端,以使所述客户端基于所述预设m3u8文件中的TS切片的存储地址和所述预设规则,通过http chunked方式下载所述直播TS数据中所述直播请求对应时刻及该时刻之后的TS切片,实现所述直播TS数据的直播播放;
所述更新模块还用于:判断所述当前TS切片的数据时长是否达到预设最短数据时长;如果是,将预设m3u8文件中的TS切片的存储地址更新为所述当前TS切片的存储地址。
8.一种直播装置,其特征在于,所述装置应用于服务器的客户端,所述装置包括:
发出请求模块,用于向所述服务器的服务端发出直播请求,以便所述服务端根据所述直播请求返回预设m3u8文件;其中,所述预设m3u8文件中的TS切片的存储地址为按照预设规则确定的;
下载模块,用于当接收到所述预设m3u8文件时,基于所述预设m3u8文件中的TS切片的存储地址和所述预设规则,通过http chunked方式下载所述直播TS数据中所述直播请求对应时刻及该时刻之后的TS切片,实现所述直播TS数据的直播播放;所述预设m3u8文件中的TS切片的存储地址按照权利要求1-4任一项所述的方法更新。
9.一种直播服务器,其特征在于,所述直播服务器包括服务端和客户端;
所述服务端用于执行权利要求1~4任一项所述的直播数据处理方法;
所述客户端用于执行权利要求5或6所述的直播方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910219578.9A CN109756757B (zh) | 2019-03-21 | 2019-03-21 | 直播数据处理方法及装置、直播方法及装置和直播服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910219578.9A CN109756757B (zh) | 2019-03-21 | 2019-03-21 | 直播数据处理方法及装置、直播方法及装置和直播服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109756757A CN109756757A (zh) | 2019-05-14 |
CN109756757B true CN109756757B (zh) | 2021-07-13 |
Family
ID=66409275
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910219578.9A Active CN109756757B (zh) | 2019-03-21 | 2019-03-21 | 直播数据处理方法及装置、直播方法及装置和直播服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109756757B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110769275B (zh) * | 2019-10-09 | 2022-04-08 | 北京达佳互联信息技术有限公司 | 直播数据流的处理方法、装置及系统 |
CN112671694A (zh) * | 2019-10-16 | 2021-04-16 | 中兴通讯股份有限公司 | 一种hls播放方法、客户端、服务器及存储介质 |
CN111385349B (zh) | 2020-02-07 | 2021-07-16 | 北京达佳互联信息技术有限公司 | 通信处理方法、装置、终端、服务器及存储介质 |
CN113364724B (zh) * | 2020-03-05 | 2022-12-30 | 中国电信股份有限公司 | 直播分发方法、系统、装置及计算机可读存储介质 |
CN111372099A (zh) * | 2020-03-20 | 2020-07-03 | 山东云缦智能科技有限公司 | 一种低延迟hls直播的实现方法 |
CN111405380B (zh) * | 2020-04-14 | 2022-08-05 | 聚好看科技股份有限公司 | 播放流媒体数据的方法及装置 |
CN112601131B (zh) * | 2020-12-10 | 2023-03-21 | 杭州当虹科技股份有限公司 | 一种hls视频切片文件存储优化方法 |
CN113038170B (zh) * | 2021-03-01 | 2022-05-13 | 北京四达时代软件技术股份有限公司 | 直播hls数据生成方法及装置、处理方法及装置和控制系统 |
CN113259694A (zh) * | 2021-04-22 | 2021-08-13 | 北京金山云网络技术有限公司 | 数据切片方法、装置和电子设备 |
CN115412777A (zh) * | 2021-05-28 | 2022-11-29 | 北京金山云网络技术有限公司 | 流媒体数据的传输方法及装置、系统 |
CN115103202A (zh) * | 2022-04-27 | 2022-09-23 | 北京歌华有线电视网络股份有限公司 | 一种抗网络劣化的ip视频直播传输方法和系统 |
CN114979721B (zh) * | 2022-05-18 | 2024-02-23 | 咪咕文化科技有限公司 | 视频切片方法、装置、设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102231860A (zh) * | 2011-06-03 | 2011-11-02 | 南京远古科技有限公司 | 一种直播时移数据存储方法 |
CN103618912A (zh) * | 2013-11-26 | 2014-03-05 | 乐视网信息技术(北京)股份有限公司 | 一种直播时移方法及服务器 |
CN103716662A (zh) * | 2013-12-05 | 2014-04-09 | 乐视网信息技术(北京)股份有限公司 | 一种混合传输方法及服务器 |
WO2015081893A1 (zh) * | 2013-12-06 | 2015-06-11 | 乐视致新电子科技(天津)有限公司 | 一种轮播媒体分片的方法、客户端及系统 |
CN105721952A (zh) * | 2016-01-27 | 2016-06-29 | 观止云(北京)信息技术有限公司 | 一种等时长切片的直播流网络传输方法及系统 |
CN106604043A (zh) * | 2016-12-30 | 2017-04-26 | Ut斯达康(深圳)技术有限公司 | 一种互联网直播方法及直播服务器 |
CN106878815A (zh) * | 2017-03-09 | 2017-06-20 | 青岛海信电器股份有限公司 | 视频的播放方法和装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103297452B (zh) * | 2012-02-24 | 2016-08-24 | 北京对角巷科技发展有限公司 | 一种在互联网发布和直播流媒体的方法及系统 |
CN104243430A (zh) * | 2013-06-20 | 2014-12-24 | 腾讯科技(深圳)有限公司 | 一种流媒体播放方法及装置 |
CN103581693B (zh) * | 2013-11-12 | 2017-02-15 | 北京清源新创科技有限公司 | 面向互联网的基于分片传输的大尺度直播时移方法及系统 |
US10477286B2 (en) * | 2017-06-19 | 2019-11-12 | Wangsu Science & Technology Co., Ltd. | Streaming media file processing method and live streaming system |
CN108540868B (zh) * | 2018-05-16 | 2019-04-16 | 北京百度网讯科技有限公司 | Hls直播的处理方法、装置、服务器、终端及存储介质 |
-
2019
- 2019-03-21 CN CN201910219578.9A patent/CN109756757B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102231860A (zh) * | 2011-06-03 | 2011-11-02 | 南京远古科技有限公司 | 一种直播时移数据存储方法 |
CN103618912A (zh) * | 2013-11-26 | 2014-03-05 | 乐视网信息技术(北京)股份有限公司 | 一种直播时移方法及服务器 |
CN103716662A (zh) * | 2013-12-05 | 2014-04-09 | 乐视网信息技术(北京)股份有限公司 | 一种混合传输方法及服务器 |
WO2015081893A1 (zh) * | 2013-12-06 | 2015-06-11 | 乐视致新电子科技(天津)有限公司 | 一种轮播媒体分片的方法、客户端及系统 |
CN105721952A (zh) * | 2016-01-27 | 2016-06-29 | 观止云(北京)信息技术有限公司 | 一种等时长切片的直播流网络传输方法及系统 |
CN106604043A (zh) * | 2016-12-30 | 2017-04-26 | Ut斯达康(深圳)技术有限公司 | 一种互联网直播方法及直播服务器 |
CN106878815A (zh) * | 2017-03-09 | 2017-06-20 | 青岛海信电器股份有限公司 | 视频的播放方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109756757A (zh) | 2019-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109756757B (zh) | 直播数据处理方法及装置、直播方法及装置和直播服务器 | |
US11540020B2 (en) | Method for realizing video information preview, client and storage medium | |
US20150033255A1 (en) | Method for caching of data items in a chache area of a data processing system and corresponding device | |
US20160134900A1 (en) | Streaming media processing method, apparatus, and system | |
EP3734927A1 (en) | Content service implementation method and device, and content delivery network node | |
JP2013500652A (ja) | Httpベースのストリーミングメディアサービスを実施するための方法、システムおよびネットワークデバイス | |
KR101743228B1 (ko) | 스트리밍 장치 및 그 방법, 이를 이용한 스트리밍 서비스 시스템 및 컴퓨터로 판독 가능한 기록매체 | |
KR20060116040A (ko) | 인코딩 특성들의 적응으로 컨텐츠를 전송하는 방법 | |
CN104581374A (zh) | 一种获取切片文件和生成子m3u8文件的方法、节点及服务器 | |
CN102916989A (zh) | 一种视频下载方法、服务端及客户端 | |
US20130007860A1 (en) | Streaming video to cellular phones | |
JP7176133B2 (ja) | Http上の動的アダプティブストリーミングのための方法、装置及びコンピュータプログラム | |
CN109168020A (zh) | 基于直播的视频处理方法、装置、计算设备和存储介质 | |
US8327406B2 (en) | Method and server for downloading a broadcasted multimedia content over a distribution network | |
CN107801051A (zh) | 虚拟切片信息传输方法和装置、视频服务器 | |
CN112218165B (zh) | 视频播放的控制方法、装置、电子设备及存储介质 | |
CN105187950A (zh) | 一种视频文件播放的方法、设备和系统 | |
CN111182331B (zh) | 媒体数据切片方法、系统及存储介质 | |
CN116346794A (zh) | 接收媒体数据的方法、装置和非易失性计算机可读存储介质 | |
CN113727199A (zh) | 一种hls切片快速起播方法 | |
CN109151614B (zh) | 一种降低hls直播播放延迟的方法及装置 | |
KR20160138044A (ko) | 미디어 데이터를 스트리밍하기 위한 목표된 광고 삽입 | |
CN114401430A (zh) | 视频回放方法、装置、服务器、系统及存储介质 | |
CN114025199A (zh) | 一种直播视频剪辑方法、装置和系统 | |
CN111010620B (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 |