CN116033191A - 直播方法、内容分发服务设备及存储介质 - Google Patents
直播方法、内容分发服务设备及存储介质 Download PDFInfo
- Publication number
- CN116033191A CN116033191A CN202111239620.7A CN202111239620A CN116033191A CN 116033191 A CN116033191 A CN 116033191A CN 202111239620 A CN202111239620 A CN 202111239620A CN 116033191 A CN116033191 A CN 116033191A
- Authority
- CN
- China
- Prior art keywords
- direct
- data stream
- broadcasting
- request
- line process
- 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 226
- 230000008569 process Effects 0.000 claims abstract description 169
- 238000012545 processing Methods 0.000 claims description 33
- 230000005540 biological transmission Effects 0.000 claims description 9
- 238000013507 mapping Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 6
- 238000005516 engineering process Methods 0.000 claims description 6
- 230000032683 aging Effects 0.000 claims description 5
- 238000012546 transfer Methods 0.000 claims description 5
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 230000000903 blocking effect Effects 0.000 claims 3
- 230000009466 transformation Effects 0.000 abstract description 8
- 238000004891 communication Methods 0.000 description 6
- 238000011161 development Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 238000010295 mobile communication Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 235000008694 Humulus lupulus Nutrition 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
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/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- 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/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
-
- 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/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
-
- 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/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
-
- 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/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/239—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
-
- 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/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/643—Communication protocols
-
- 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/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/643—Communication protocols
- H04N21/6437—Real-time Transport Protocol [RTP]
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明公开了一种直播方法、内容分发服务设备及存储介质。其中,直播方法包括:先通过主进程将第一直播请求分配至第一线进程,第一直播请求表征第一终端设备请求获取第一直播数据流,然后第一线进程根据第一直播请求从共享内存数据中对第一直播数据流的回源状态进行查询,得到查询结果;在查询结果为第一直播数据流已通过第二线进程进行回源的情况下,第一线进程将第一直播请求发送至第二线进程,以使第二线进程根据第一直播请求向第一终端设备发送第一直播数据流。从而可以实现同一个第一直播数据的复用,有效减少直播回源的次数,从而降低直播源设备站的压力,并能够节省设备投入和技术改造成本。
Description
技术领域
本发明涉及直播技术领域,尤其是一种直播方法、内容分发服务设备及存储介质。
背景技术
在互联网发展初期,受限网络宽带影响,网络直播发展比较缓慢,各互联网直播平台支持的协议也较少,直播时延较大,用户体验不友好。而近年来伴随着4G和5G技术的不断发展和普及,令到网络直播行业得到高速的发展,使得直播市场规模和用户规模快速增长,但是也因为用户规模的快速增长,使得互联网直播平台在面对大规模的用户提供直播数据服务时的压力也相应增大,从而出现用户体验不好的问题。
发明内容
以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
本发明实施例提供了一种直播方法、内容分发服务设备及存储介质,能够减少直播回源的次数,降低互联网直播平台的直播源设备站的压力。
第一方面,本发明实施例提供了一种直播方法,应用于内容分发服务设备,所述内容分发服务设备包括主进程、第一线进程和第二线进程,所述方法包括:
所述主进程将所述第一直播请求分配至所述第一线进程,所述第一直播请求表征第一终端设备请求获取第一直播数据流;
所述第一线进程根据所述第一直播请求从共享内存数据中对所述第一直播数据流的回源状态进行查询,得到查询结果;
在所述查询结果为所述第一直播数据流已通过所述第二线进程进行回源的情况下,所述第一线进程将所述第一直播请求发送至所述第二线进程,所述第二线进程根据所述第一直播请求向所述第一终端设备发送所述第一直播数据流;
在所述查询结果为所述共享内存数据中不存在所述第一直播数据流的情况下,所述第一线进程根据所述第一直播请求向直播源设备对所述第一直播数据流进行回源处理,得到所述第一直播数据流,并将所述第一直播数据流发送至所述第一终端设备。
第二方面,本发明实施例还提供了一种内容分发服务设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上第一方面所述的直播方法。
第三方面,本发明实施例还提供了一种计算机可读存储介质,存储有计算机可执行指令,计算机可执行指令用于执行如前面的直播方法。
本发明实施例先通过主进程将第一直播请求分配至第一线进程,第一直播请求表征第一终端设备请求获取第一直播数据流,然后第一线进程根据第一直播请求从共享内存数据中对第一直播数据流的回源状态进行查询,得到查询结果;在查询结果为第一直播数据流已通过第二线进程进行回源的情况下,第一线进程将第一直播请求发送至第二线进程,以使第二线进程根据第一直播请求向第一终端设备发送第一直播数据流。也就是说,本发明实施例通过从共享内存数据中对第一直播数据流的回源状态进行查询,根据查询结果第一线进程将第一直播请求发送至已对第一直播数据流进行回源处理的第二线进程,通过第二线进程向第一终端设备发送第一直播数据流,从而可以实现同一个第一直播数据的复用,有效减少直播回源的次数,从而降低直播源设备站的压力,并能够节省设备投入和技术改造成本。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1是本发明一个实施例提供的用于执行直播方法的系统架构的示意图;
图2是本发明一个实施例提供的直播方法的流程图;
图3是本发明一个实施例提供的直播方法中在不存在第一直播数据流的情况下的回源的流程图;
图4是本发明一个实施例提供的直播方法中第一次接收直播请求的回源的流程图;
图5是本发明一个实施例提供的直播方法中RTMP格式转换FLV格式的流程图;
图6是本发明一个实施例提供的直播方法中RTMP格式转换TS文件格式的流程图;
图7是本发明一个实施例提供的直播方法中老化直播数据流的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本发明提供了一种直播方法、内容分发服务设备及存储介质,其中,直播方法包括:先通过主进程将第一直播请求分配至第一线进程,第一直播请求表征第一终端设备请求获取第一直播数据流,然后第一线进程根据第一直播请求从共享内存数据中对第一直播数据流的回源状态进行查询,得到查询结果;在查询结果为第一直播数据流已通过第二线进程进行回源的情况下,第一线进程将第一直播请求发送至第二线进程,以使第二线进程根据第一直播请求向第一终端设备发送第一直播数据流。也就是说,本发明实施例通过从共享内存数据中对第一直播数据流的回源状态进行查询,根据查询结果第一线进程将第一直播请求发送至已对第一直播数据流进行回源处理的第二线进程,通过第二线进程向第一终端设备发送第一直播数据流,从而可以实现同一个第一直播数据的复用,有效减少直播回源的次数,从而降低直播源设备站的压力,并能够节省设备投入和技术改造成本。
下面结合附图,对本发明实施例作进一步阐述。
如图1所示,图1是本发明一个实施例提供的用于执行的直播方法的系统架构平台的示意图。
在图1的示例中,该系统架构平台100包括直播源设备110、内容分发服务设备120和多个终端设备130,内容分发服务设备120包括主进程121和多个线进程,主进程121用于将接收到直播请求分配至线进程进行处理,线进程用于根据直播请求对直播数据流进行回源,并将直播数据流发送至直播请求对应的终端设备130。
需要说明的是,多个线进程可以包括第一线进程122、第二线进程123、第三线进程124和第四线进程125,或者包括第一线进程122和第二线进程123,本实施例对线进程的数量不作具体限定。
需要说明的是,系统架构平台100适用于直播间、会议直播、体育赛事直播等场景,本实施例对其不作具体限定。
在一实施例中,内容分发服务设备120,也可以称为CDN内容分发服务系统,CDN内容分发服务系统能够通过拉流或推流方式实时接收直播源音视频数据,然后通过实时消息传输协议(Real Time Messaging Protocol,RTMP)、HTTP-FLV协议(HTTP-FLV协议内容主要是将音视频数据封装成流媒体(FLASH VIDEO,FLV)格式,然后通过超文本传输协议(HyperText Transfer Protocol,HTTP)传输至终端设备130)和基于HTTP的自适应码率流媒体传输协议(HTTP Live Streaming,HLS)对接收到的直播数据流(包括直播音视频数据和/或直播视频数据)重新打包与封装,当终端设备130发送RTMP、HTTP-FLV或HLS协议的直播请求时,可以通过负载均衡设备(LVS/SLB)将直播请求调度至CDN内容分发服务器,CDN内容分发服务器会根据接收到的客户端发送的直播协议响应对应直播协议的直播数据流,并向直播请求对应的终端设备130发送,以使终端设备130在接收到直播数据流后能够进行播放。
本领域技术人员可以理解的是,终端设备130,也可以称为用户设备(userequipment,UE)、接入终端、用户单元、用户站、移动站、移动台、远方站、远程终端、移动设备、用户终端、终端、无线通信设备、用户代理或用户装置。本申请的实施例中的终端设备130可以是手机(mobile phone)、平板电脑(Pad)、带无线收发功能的电脑、虚拟现实(virtual reality,VR)终端设备、增强现实(augmented reality,AR)终端设备、工业控制(industrial control)中的无线终端、无人驾驶(self driving)中的无线终端、远程医疗(remote medical)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端等等。
本领域技术人员可以理解的是,该系统架构平台100可以应用于2G、3G、4G、5G通信网络系统以及后续演进的移动通信网络系统等,本实施例对此并不作具体限定。
本领域技术人员可以理解的是,图1中示出的系统架构平台并不构成对本发明实施例的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
基于上述系统架构平台,下面提出本发明的直播方法的各个实施例。
如图2所示,图2是本发明一个实施例提供的直播方法的流程图,该直播方法应用于内容分发服务设备,内容分发服务设备包括主进程、第一线进程和第二线进程。该直播方法包括但不限于有步骤S100、步骤S200以及步骤S300。
步骤S100,主进程将第一直播请求分配至第一线进程,第一直播请求表征第一终端设备请求获取第一直播数据流。
具体地,当内容分发服务设备的主进程接收到来自第一终端设备所发送的用于请求获取第一直播数据流的第一直播请求,然后主进程可以在多个线进程中确定处理第一直播请求的线进程为第一线进程,再将第一直播请求分配至第一线进程进行处理。
需要说明的是,主进程主要用于将接收到直播请求分配至线进程进行处理,主进程可以根据直播请求的数量以及线进程的数量将直播请求平均分配至各个线进程进行处理,或者也可以根据线进程的处理能力将直播请求分配至目标线进程进行处理,本实例对主进程如何分配直播请求至线进程不作具体限定。
步骤S200,第一线进程根据第一直播请求从共享内存数据中对第一直播数据流的回源状态进行查询,得到查询结果。
具体地,第一线进程可以根据第一直播请求从共享内存数据中查找第一直播数据流的回源状态,从而可以得到查询结果。
可以理解的是,每个线进程(第一线进程或者第二线进程)对直播数据流进行回源处理后,会将直播数据流存储在内存中,然后将直播数据流对应的信息以及线进程信息更新共享内存数据,从而使得每个线进程能够从共享内存数据中查找所有线进程的回源状态。
步骤S300,在查询结果为第一直播数据流已通过第二线进程进行回源的情况下,第一线进程将第一直播请求发送至第二线进程,以使第二线进程根据第一直播请求向第一终端设备发送第一直播数据流。
具体地,第一线进程可以根据查询结果情况确定对第一直播请求的处理方法,在查询结果为第一直播数据流已通过第二线进程进行回源的情况下,第一线进程可以将第一直播请求发送至第二线进程,以使第二线进程根据第一直播请求向第一终端设备发送第一直播数据流,从而可以实现同一个第一直播数据的复用,有效减少直播回源的次数,从而降低直播源设备站的压力,并能够节省设备投入和技术改造成本。
在一实施例中,当多个线进程包括第一线进程、第二线进程和第三线进程,且在查询结果为第一直播数据流已通过第二线进程进行回源的情况下,第一线进程接收到用于表征第一终端设备请求获取第一直播数据流的第一直播请求,第三线进程接收到用于表征第二终端设备请求获取第一直播数据流的第二直播请求,那么第一线进程可以将第一直播请求发送至第二线进程,以使第二线进程根据第一直播请求向第一终端设备发送第一直播数据流,第三线进程可以将第二直播请求发送至第二线进程,以使第二线进程根据第二直播请求向第二终端设备发送第一直播数据流,从而可以实现同一个第一直播数据的复用,有效减少直播回源的次数,从而降低直播源设备站的压力,并能够节省设备投入和技术改造成本。
在一些实施例中,如图3所示,直播方法还包括但不限于以下步骤S310。
步骤S310,在查询结果为共享内存数据中不存在第一直播数据流的情况下,第一线进程根据第一直播请求向直播源设备对第一直播数据流进行回源处理,得到第一直播数据流,并将第一直播数据流发送至第一终端设备。
具体地,在查询结果为共享内存数据中不存在第一直播数据流的情况下,即可以理解为没有任何线进程对第一直播数据流进行回源,或者第一直播数据流已经在内存中被老化,那么第一线进程可以根据第一直播请求向直播源设备对第一直播数据流进行回源处理,得到第一直播数据流,并将第一直播数据流发送至第一终端设备,同时,第一线进程可以将第一直播数据流的回源情况共享至共享内存数据中,以使其他线进程可以在从共享内存数据中查找第一线进程的回源状态,从而可以实现同一个第一直播数据的复用,有效减少直播回源的次数,从而降低直播源设备站的压力,并能够节省设备投入和技术改造成本。
在一写实施例中,如图4所示,步骤S300之前还包括但不限于以下步骤S410和步骤S420。
步骤S410,主进程将第二直播请求分配至第二线进程,第二直播请求表征第二终端设备请求获取第一直播数据流;
步骤S420,第二线进程根据第二直播请求对第一直播数据流进行回源处理,得到第一直播数据流,并将第一直播数据流发送至第二终端设备。
具体地,当主进程接收到用于表征第二终端设备请求获取第一直播数据流的第二直播请求时,主进程可以将第二直播请求分配至第二线进程,然后第二线进程可以根据第二直播请求对第一直播数据流进行回源处理,得到第一直播数据流,并将第一直播数据流发送至第二终端设备,同时第二线进程可以将第一直播数据流的回源情况共享至共享内存数据中,以使其他线进程可以在从共享内存数据中查找第一线进程的回源状态,从而可以实现同一个第一直播数据的复用,有效减少直播回源的次数,从而降低直播源设备站的压力,并能够节省设备投入和技术改造成本。
在一实施例中,当主进程接收到用于表征第二终端设备请求获取第一直播数据流的第二直播请求时,主进程可以获取所有线进程的负载均衡信息,然后根据负载均衡信息确定目标线进程为第二线进程,并将第二直播请求分配至第二线进程,然后第二线进程可以根据第二直播请求对第一直播数据流进行回源处理,得到第一直播数据流,并将第一直播数据流发送至第二终端设备,同时第二线进程可以将第一直播数据流的回源情况共享至共享内存数据中,以使其他线进程可以在从共享内存数据中查找第一线进程的回源状态,从而可以实现同一个第一直播数据的复用,有效减少直播回源的次数,从而降低直播源设备站的压力,并能够节省设备投入和技术改造成本。
在一实施例中,如图5所示,步骤S300包括但不限于以下步骤S510、步骤S520和步骤S530。
步骤S510,第一线进程根据第一直播请求向直播源设备对第一直播数据流进行回源处理,得到RTMP格式的第一直播数据流;
步骤S520,第一线进程将RTMP格式的第一直播数据流进行格式转换处理,得到FLV格式的第一直播数据流;
步骤S530,第一线进程将FLV格式的第一直播数据流通过超文本传输HTTP协议发送至第一终端设备。
在一实施例中,当第一终端设备表征第一终端设备需要获取FLV格式的第一直播数据流,由于从直播源设备所回源的第一直播数据流的格式为RTMP格式,所以第一线进程需要将RTMP格式的第一直播数据流进行格式转换处理,得到FLV格式的第一直播数据流,然后通过超文本传输HTTP协议将FLV格式的第一直播数据流发送至第一终端设备,从而使得第一终端设备能够播放第一直播数据流的音视频内容。
在一实施例中,第一线进程在获取RTMP格式的第一直播数据流之后,可以对RTMP格式的第一直播数据流进行格式转换处理,得到FLV格式的第一直播数据流,然后第一线进程根据HTTP协议的分块传输CHUNK编码将FLV格式的第一直播数据流进行分块处理,并将分块处理后的FLV格式的第一直播数据流发送至第一终端设备,从而使得第一终端设备能够播放第一直播数据流的音视频内容。
在一实施例中,当第一终端设备表征第一终端设备需要获取FLV格式的第一直播数据流,由于从直播源设备所回源的第一直播数据流的格式为RTMP格式,所以第一线进程可以按HTTP-FLV协议将RTMP格式的第一直播数据流进行转码处理并虚拟成为一个无限大的FLV格式的第一直播数据流,并通过HTTP协议进行传输,第一终端设备仅发送一次HTTPGET请求,请求中携带需要访问的第一直播数据流对应的直播流名,CDN内容分发服务系统能够返回HTTP响应,响应信息中不携带消息体内容长度,直接向第一终端设备发送无限长FLV文件内容,或者使用HTTP CHUNK模式将无限长FLV文件按分段模式向第一终端设备进行发送,从而使得第一终端设备能够播放第一直播数据流的音视频内容。
在一实施例中,如图6所示,步骤S300包括但不限于以下步骤S610、步骤S620、步骤S630和步骤S640。
步骤S610,第一线进程根据第一直播请求向直播源设备对第一直播数据流进行回源处理,得到实时消息传输协议RTMP格式的第一直播数据流;
步骤S620,根据动态码率自适应技术HLS协议将RTMP格式的第一直播数据流进行切片处理,生成多个TS文件格式的第一直播数据流;
步骤S630,根据多个TS文件格式的第一直播数据流生成直播映射列表;
步骤S640,根据直播映射列表将TS文件格式的第一直播数据流通过HTTP协议发送至第一终端设备。
在一实施例中,当第一终端设备表征第一终端设备需要获取传输TS文件格式的第一直播数据流,由于从直播源设备所回源的第一直播数据流的格式为RTMP格式,所以第一线进程需要根据HLS协议将RTMP格式的第一直播数据流进行切片处理,生成多个TS文件格式的第一直播数据流,然后根据多个TS文件格式的第一直播数据流生成直播映射列表,再根据直播映射列表将TS文件格式的第一直播数据流通过HTTP协议发送至第一终端设备,从而使得第一终端设备能够播放第一直播数据流的音视频内容。
在一实施例中,第一线进程接回源得到RTMP格式的第一直播数据流后,可以按HLS协议将RTMP协议的第一直播数据流生成TS切片,为每个TS切片建立存储映射关系表,根据TS切片的存储映射关系表生成直播M3U8列表,然后根据直播M3U8列表将TS文件格式的第一直播数据流通过HTTP协议发送至第一终端设备,从而使得第一终端设备能够播放第一直播数据流的音视频内容。
在一实施例中,如图7所示,直播方法还包括但不限于以下步骤S710、步骤S720、步骤S730和步骤S740。
步骤S710,第一线进程对内存设置环形缓冲队列,环形缓冲队列包括第一帧数据和最后一帧数据;
步骤S720,根据多个视频关键帧数据确定第二个视频关键帧数据;
步骤S730,在最后一帧数据的时间戳和第二个视频关键帧的时间戳的时间差值大于预设的缓冲时间的情况下,将第一帧数据的时间戳和第一时间戳之间的时间段中的所有直播数据流进行老化处理,其中,第一时间戳为第一帧数据的时间戳加上预设的缓冲时间所得到的时间戳,所有直播数据流包括第一直播数据流。
在一实施例中,首先第一线进程在内存中设置环形缓冲队列,例如环形缓冲队列的项数量可以默认配置是2048项,并预设置缓冲时间cachetime,环形缓冲队列的每一项存放一帧音视频数据,环形队列中第一帧数据设置为gop_po,环形队列中最后一帧数据设置为gop_last,当环形缓冲队列中所存放的直播数据流对应的帧数据的时间戳超过cachetime后,老化的规则可以设定为:若环形队列中只有一个视频关键帧,则不对直播数据流进行老化处理,此时则有可能出现环形队列中实际存放的直播数据流对应的帧数据的时间戳大于cachetime,当来了第二个关键帧后,gop_last对应的帧数据的时间戳减去第二个视频关键帧的时间戳的时间差大于cachetime后,则把从gop_pos开始到gop_pos+cachetime之间的帧数据(包括直播数据流)全部老化掉,环形缓冲队列的gos_pos是隔一段时间会向前跳,而gop_last则是递增,到队列尾后再回到队列头。
需要说明的是,环形缓冲队列的项数量可以设置为2048项,可以设置为1024项,本实施例对其不作具体限定。
可以理解的是,第一终端设备触发频道回源,正常情况下用户的获取的直播数据流的进度client_pos和gop_pos基本保持一致,但是如果由于网络、限速等原因,直播数据流向第一终端设备发送延时,则client_pos会慢慢落后于gop_pos,当client_pos落后gop_pos达到cachetime后,则第一终端设备的client_pos会向前跳cachetime,以使client_pos等于gop_pos。
第二终端设备需要观看与第一终端设备相同频道的直播数据流时,则设置第二终端设备的client_pos等于gop_pos,然后把client_pos+cachetime的直播数据流发送给第二终端设备,然后第二终端设备client_pos会向前跳cachetime,以使client_pos等于gop_pos,如果配置项低延迟lowlatency模式开启,当第二终端设备client_pos落后于最近的关键帧时,则会向前跳到最新的视频关键帧。
需要说明的是,上述内容分发服务设备侧的直播方法的实施例均属于相同的发明构思,因此这些实施例具有相同的实现原理以及技术效果,此处不再详述。
另外,本发明的一个实施例还提供了一种内容分发服务设备,该内容分发服务设备包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序。
处理器和存储器可以通过总线或者其他方式连接。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
需要说明的是,本实施例中的内容分发服务设备,可以应用为例如图1所示实施例中的内容分发服务设备120,本实施例中的内容分发服务设备能够构成例如图1所示实施例中的系统架构的一部分,这些实施例均属于相同的发明构思,因此这些实施例具有相同的实现原理以及技术效果,此处不再详述。
实现上述实施例的直播方法所需的非暂态软件程序以及指令存储在存储器中,当被处理器执行时,执行上述实施例中的直播方法,例如,执行以上描述的图2中的方法步骤S100至S300、图3中的方法步骤S310、图4中的方法步骤S410至S420、图5中的方法步骤S510至S530、图6中的方法步骤S610至S640、图7中的方法步骤S710至S730。
另外,本发明的一个实施例还提供了一种智能面板,该智能面板包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序。
处理器和存储器可以通过总线或者其他方式连接。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
以上所描述的通信设备实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
此外,本发明的一个实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个处理器或控制器执行,例如,被上述通信设备实施例中的一个处理器执行,可使得上述处理器执行上述实施例中的直播方法,例如,执行以上描述的图2中的方法步骤S100至S300、图3中的方法步骤S310、图4中的方法步骤S410至S420、图5中的方法步骤S510至S530、图6中的方法步骤S610至S640、图7中的方法步骤S710至S730。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
以上是对本发明的较佳实施进行了具体说明,但本发明并不局限于上述实施方式,熟悉本领域的技术人员在不违背本发明精神的前提下还可作出种种的等同变形或替换,这些等同的变形或替换均包含在本发明权利要求所限定的范围内。
Claims (10)
1.一种直播方法,应用于内容分发服务设备,所述内容分发服务设备包括主进程、第一线进程和第二线进程,所述方法包括:
所述主进程将第一直播请求分配至所述第一线进程,所述第一直播请求表征第一终端设备请求获取第一直播数据流;
所述第一线进程根据所述第一直播请求从共享内存数据中对所述第一直播数据流的回源状态进行查询,得到查询结果;
在所述查询结果为所述第一直播数据流已通过所述第二线进程进行回源的情况下,所述第一线进程将所述第一直播请求发送至所述第二线进程,以使所述第二线进程根据所述第一直播请求向所述第一终端设备发送所述第一直播数据流。
2.根据权利要求1所述的直播方法,其特征在于,所述方法还包括:
在所述查询结果为所述共享内存数据中不存在所述第一直播数据流的情况下,所述第一线进程根据所述第一直播请求向直播源设备对所述第一直播数据流进行回源处理,得到所述第一直播数据流,并将所述第一直播数据流发送至所述第一终端设备。
3.根据权利要求1所述的直播方法,其特征在于,所述在所述查询结果为所述第一直播数据流已通过所述第二线进程进行回源的情况下,所述第一线进程将所述第一直播请求发送至所述第二线进程,所述第二线进程根据所述第一直播请求向所述第一终端设备发送所述第一直播数据流之前,所述方法还包括:
所述主进程将所述第二直播请求分配至所述第二线进程,所述第二直播请求表征第二终端设备请求获取所述第一直播数据流;
所述第二线进程根据所述第二直播请求对所述第一直播数据流进行回源处理,得到所述第一直播数据流,并将所述第一直播数据流发送至所述第二终端设备。
4.根据权利要求1所述的直播方法,其特征在于,所述主进程将所述第一直播请求分配至所述第一线进程,包括:
所述主进程获取线进程的负载均衡信息;
所述主进程根据所述负载均衡信息将所述第一直播请求分配至所述第一线进程。
5.根据权利要求1至4任意一项所述的直播方法,其特征在于,当所述第一终端设备表征所述第一终端设备需要获取FLV格式的第一直播数据流,所述第一线进程根据所述第一直播请求向直播源设备对所述第一直播数据流进行回源处理,得到所述第一直播数据流,并将所述第一直播数据流发送至所述第一终端设备,包括:
所述第一线进程根据所述第一直播请求向直播源设备对所述第一直播数据流进行回源处理,得到实时消息传输协议RTMP格式的第一直播数据流;
所述第一线进程将所述RTMP格式的第一直播数据流进行格式转换处理,得到FLV格式的第一直播数据流;
所述第一线进程将所述FLV格式的第一直播数据流通过超文本传输HTTP协议发送至所述第一终端设备。
6.根据权利要求5所述的直播方法,其特征在于,所述将所述FLV格式的第一直播数据流通过超文本传输HTTP协议发送至所述第一终端设备,包括:
所述第一线进程根据所述HTTP协议的分块传输CHUNK编码将所述FLV格式的第一直播数据流进行分块处理,并将所述分块处理后的所述FLV格式的第一直播数据流发送至所述第一终端设备。
7.根据权利要求1至4任意一项所述的直播方法,其特征在于,当所述第一终端设备表征所述第一终端设备需要获取传输TS文件格式的第一直播数据流,所述第一线进程根据所述第一直播请求向直播源设备对所述第一直播数据流进行回源处理,得到所述第一直播数据流,并将所述第一直播数据流发送至所述第一终端设备,包括:
所述第一线进程根据所述第一直播请求向直播源设备对所述第一直播数据流进行回源处理,得到实时消息传输协议RTMP格式的第一直播数据流;
根据动态码率自适应技术HLS协议将所述RTMP格式的第一直播数据流进行切片处理,生成多个所述TS文件格式的第一直播数据流;
根据多个所述TS文件格式的第一直播数据流生成直播映射列表;
根据所述直播映射列表将所述TS文件格式的第一直播数据流通过HTTP协议发送至所述第一终端设备。
8.根据权利要求1所述的直播方法,其特征在于,所述方法还包括:
所述第一线进程对内存设置环形缓冲队列,所述环形缓冲队列包括第一帧数据和最后一帧数据;
获取所述环形缓冲队列中的多个视频关键帧数据;
根据所述多个视频关键帧数据确定第二个视频关键帧数据;
在所述最后一帧数据的时间戳和第二个视频关键帧的时间戳的时间差值大于预设的缓冲时间的情况下,将所述第一帧数据的时间戳和第一时间戳之间的时间段中的所有直播数据流进行老化处理,其中,第一时间戳为所述第一帧数据的时间戳加上所述预设的缓冲时间所得到的时间戳,所述所有直播数据流包括所述第一直播数据流。
9.一种内容分发服务设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至8任意一项所述的直播方法。
10.一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行权利要求1至8任意一项所述的直播方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111239620.7A CN116033191A (zh) | 2021-10-25 | 2021-10-25 | 直播方法、内容分发服务设备及存储介质 |
PCT/CN2022/114282 WO2023071468A1 (zh) | 2021-10-25 | 2022-08-23 | 直播方法、内容分发服务设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111239620.7A CN116033191A (zh) | 2021-10-25 | 2021-10-25 | 直播方法、内容分发服务设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116033191A true CN116033191A (zh) | 2023-04-28 |
Family
ID=86074618
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111239620.7A Pending CN116033191A (zh) | 2021-10-25 | 2021-10-25 | 直播方法、内容分发服务设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116033191A (zh) |
WO (1) | WO2023071468A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105824707A (zh) * | 2016-04-21 | 2016-08-03 | 乐视控股(北京)有限公司 | 一种流媒体服务多进程的合并回源方法及设备 |
CN107302525A (zh) * | 2017-06-02 | 2017-10-27 | 上海帝联信息科技股份有限公司 | 拉流控制方法及装置、可读存储介质、流媒体服务器 |
CN109257335B (zh) * | 2018-08-22 | 2021-11-19 | 网宿科技股份有限公司 | 保持回源链路的方法、回源方法、相关装置及存储介质 |
CN112218100B (zh) * | 2019-07-09 | 2023-05-26 | 阿里巴巴集团控股有限公司 | 内容分发网络、数据处理方法、装置、设备及存储介质 |
CN112995753B (zh) * | 2019-12-16 | 2024-03-22 | 中兴通讯股份有限公司 | 一种媒体流分发方法、cdn节点服务器、cdn系统和可读存储介质 |
-
2021
- 2021-10-25 CN CN202111239620.7A patent/CN116033191A/zh active Pending
-
2022
- 2022-08-23 WO PCT/CN2022/114282 patent/WO2023071468A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023071468A1 (zh) | 2023-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11356748B2 (en) | Method, apparatus and system for slicing live streaming | |
EP4099703A2 (en) | Switching between transmitting a preauthored video frame and a composited video frame | |
US20210368239A1 (en) | Distributing method, system, edge node, and central scheduling system for streaming media resource | |
CN102055718B (zh) | 一种在http streaming系统中实现分层请求内容的方法,装置和系统 | |
EP3734927A1 (en) | Content service implementation method and device, and content delivery network node | |
CN103957469A (zh) | 基于实时转封装的互联网视频点播方法及系统 | |
US20230073074A1 (en) | Embedding MQTT messages in media streams | |
US20110082943A1 (en) | P2p network system and data transmitting and receiving method thereof | |
US10601730B2 (en) | Aggregated adaptive bit rate streaming | |
US10432696B2 (en) | Transmitting apparatus, transmitting method, receiving apparatus, receiving method, program, and content distribution system | |
CN106604077B (zh) | 自适应流媒体传输方法及装置 | |
US20240155019A1 (en) | Synchronizing independent media and data streams using media stream synchronization points | |
WO2019193991A1 (ja) | 配信装置、配信方法、およびプログラム | |
CN116033191A (zh) | 直播方法、内容分发服务设备及存储介质 | |
CN111200562B (zh) | 导流方法、静态父节点、边缘节点以及cdn网络 | |
WO2015109842A1 (zh) | 一种处理分段节目的方法、服务器及客户端设备 | |
CN113055636A (zh) | 一种数据处理方法及会议系统 | |
CN113840168A (zh) | 一种iptv多媒体播放方法、设备及储存介质 | |
CN206759499U (zh) | 一种数据分发设备及系统 | |
CN113949696B (zh) | 资源分发方法、电子设备及计算机可读存储介质 | |
US20230008021A1 (en) | Synchronizing independent media and data streams using media stream synchronization points | |
WO2016101626A1 (zh) | 一种频道码流处理方法、装置、终端及系统 | |
KR20160096941A (ko) | 이기종망을 통한 iptv 방송 서비스 제공 방법, 전송 서버 및 시스템 | |
WO2023014783A1 (en) | Synchronizing independent media and data streams using media stream synchronization points |
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 |