CN107018446A - 一种网络视频点播以及直播的推流方法 - Google Patents
一种网络视频点播以及直播的推流方法 Download PDFInfo
- Publication number
- CN107018446A CN107018446A CN201710224381.5A CN201710224381A CN107018446A CN 107018446 A CN107018446 A CN 107018446A CN 201710224381 A CN201710224381 A CN 201710224381A CN 107018446 A CN107018446 A CN 107018446A
- Authority
- CN
- China
- Prior art keywords
- program
- request
- plug
- module
- client
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 61
- 230000008569 process Effects 0.000 claims abstract description 31
- 238000012545 processing Methods 0.000 claims abstract description 26
- 230000008878 coupling Effects 0.000 claims abstract description 6
- 238000010168 coupling process Methods 0.000 claims abstract description 6
- 238000005859 coupling reaction Methods 0.000 claims abstract description 6
- 238000005538 encapsulation Methods 0.000 claims description 23
- 230000003139 buffering effect Effects 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 9
- 239000000872 buffer Substances 0.000 claims description 4
- 238000009472 formulation Methods 0.000 claims description 4
- 230000006399 behavior Effects 0.000 claims description 2
- 230000006854 communication Effects 0.000 claims description 2
- 239000000284 extract Substances 0.000 claims description 2
- 238000000926 separation method Methods 0.000 claims description 2
- 238000004891 communication Methods 0.000 claims 1
- 238000005516 engineering process Methods 0.000 abstract description 11
- 230000005540 biological transmission Effects 0.000 abstract description 6
- 230000008901 benefit Effects 0.000 abstract description 4
- 238000013461 design Methods 0.000 abstract description 2
- 238000010899 nucleation Methods 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 3
- 239000012634 fragment Substances 0.000 description 3
- 239000002775 capsule Substances 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000012546 transfer Methods 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 or rendering scenes according to encoded video stream scene graphs
- H04N21/44004—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/612—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/65—Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
-
- 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/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/432—Content retrieval operation from a local storage medium, e.g. hard-disk
-
- 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/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4334—Recording operations
-
- 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 or rendering scenes according to encoded video stream scene graphs
- H04N21/4402—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
-
- 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/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
- H04N21/47202—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting content on demand, e.g. video on demand
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明一种网络视频点播以及直播的推流方法涉及云视频领域,是一种基于HTTP协议的网络视频点播以及直播,特别是涉及网络多媒体点播直播服务领域的音视频传输技术,适用于所有通过网络提供多媒体数据和服务的应用场景。所采用的模块包括HTTP请求管理模块、节目源管理模块、媒体处理模块和推流服务模块;推流方法包括节目源的获取和处理、客户端HTTP请求解析、推流服务器向客户端请求推送节目数据流以及客户端请求关闭四类操作。本发明设计合理,结构科学,针对云视频应用场景,提供了一种新颖的跨公网的视频推流方案,可以达到市场上其它主流直播技术的服务性能,同时又避免了其它技术方案中的延迟等缺点,具备高扩展和低耦合的优势。
Description
技术领域
本发明一种网络视频点播以及直播的推流方法涉及云视频领域,是一种基于HTTP协议的网络视频点播以及直播,特别是涉及网络多媒体点播直播服务领域的音视频传输技术,适用于所有通过网络提供多媒体数据和服务的应用场景。
背景技术
随着云计算技术的不断发展,视频云也随之产生并不断发展,作为视频云的一项重要技术,即视频推流(视频流化)技术,受到业界越来越多关注。云视频推流技术的发展经历了如下几个阶段:
1) 多播协议方案:该方案采用多播协议发送音视频传输流,通常该方案要求接收客户端与服务器处于同一个网络内,采用该技术方案无法跨公网。
2)基于RTSP等协议的跨网络单播方案:这一类技术方案通常采用TCP协议进行多媒体数据的传输,同时还需要采用专门的应用层协议来进行传输信令并对数据传输和媒体播放进行控制,尽管该类方案可以跨网络在公网上实现音视频的传输,但协议开销和复杂度较为明显,并且随着网络技术的发展,该类方案的劣势更加明显。
3)苹果公司提出的HLS (HTTP Live Streaming)方案: 该方案的实现较为直接,首先连续的对原始的信号源切片,然后将所获得的媒体切片文件名放入一个后缀名为m3u8的索引文件中,后续随着切片的进行,不断更新该索引文件,点直播请求通过HTTP协议来进行服务。该方案的优点是协议简单,操作方便,仅采用了使用最普遍的HTTP应用层协议,对媒体信号源的改动较小。但也有较为明显的缺点:延迟较大,以索引文件仅包含3个切片文件为例,每个切片的时间长度为6秒,则在直播方案中至少有18秒的延迟;兼容性差,首先该方案是针对苹果系列产品所开发出的技术方案,主要针对的信号源格式为封装成TS传输流的H264编码的视频和AAC编码的音频,因此对于其它音视频编码格式,该方案实现的兼容性并不好,导致很多移动设备的软硬件播放器不能正常播放。
4) 其它现有的点直播视频推流方案:一种类似于HLS的视频推流技术是基于DASH(Dynamic adaptive streaming over HTTP)协议的推流方案,该技术大部分与HLS一致,但是兼容的音视频编码格式较多,音视频分片的方式灵活多样,并且兼容的封装格式也比HLS要多,该方案也需要与标准的HTTP服务器或专门的流媒体服务器配合才能工作。此外,还有一种较为流行的推流技术是基于RTMP协议的推流方案,该方案对客户端播放器兼容性较好,客户体验流畅,但是该方案采用专门的音视频数据封装方法,而不是通用的TS传输流封装格式。
现有的推流技术的实现方案主要有以下两种:
1)基于HTTP服务器的松耦合实现:该实现是通过独立实现HLS或DASH协议部分的信号源切片、索引文件更新操作,由第三方HTTP服务器向客户端提供服务,该实现中节目源的操作和HTTP的响应是两部分独立的功能,两者之间缺少协调性。
2)基于HTTP服务器的紧耦合实现:开源项目FFmpeg提供了命令行的调用方式,可以和标准的HTTP服务器(如Apache)配合,实现基于RTMP和HLS/DASH的推流服务,即HTTP服务器调用FFmpeg对节目源进行转码和切片,HTTP服务器负责响应客户端的请求,但是该实现方法服务器开销较大,灵活度较低。
发明内容
本发明的目的是针对上述不足之处,提供一种网络视频点播以及直播的推流方法,针对云视频应用场景,将对HTTP协议的支持和节目源的音视频封装格式的支持结合起来,同时还考虑到对其它不同节目源数据封装格式的扩展,进而实现较好的推流服务性能、较低的服务器开销、较高的可扩展性。
本发明是采取以下技术方案实现的:
一种网络视频点播以及直播的推流方法所采用的模块包括HTTP请求管理模块、节目源管理模块、媒体处理模块和推流服务模块;HTTP请求管理模块包括HTTP请求解析子模块和HTTP请求处理子模块;节目源管理模块通过外部接口与外部节目源服务器通信;节目源管理模块与媒体处理模块相联;媒体处理模块与推流服务模块相联,为推流服务模块提供节目源数据;HTTP请求处理子模块和推流服务模块相连,向推流服务模块转发用户的节目请求,推流服务模块通过网络接口直接向用户发送节目数据流。
节目源管理模块从外部信号源获取节目数据,并作为推流的节目来源,节目源管理模块通过外部接口请求节目源数据流,与外部信号源服务器建立连接及进行数据交互过程中的通信参数协商、身份认证、协议解析等操作;
媒体处理模块与节目源编码格式和封装格式相关的处理和操作,主要包括对节目源数据流进行切片操作,并对切片后的节目分片进行缓冲;这样通过将节目源数据的请求和节目源数据的操作分离,实现了节目源的管理操作与节目源所采用的具体音视频编码格式及封装格式解耦合;
HTTP请求解析模块解析用户的请求,并将解析结果转发给HTTP请求处理子模块,HTTP请求处理子模块检查请求是否能够满足,如果可以满足用户的请求,则向推流服务模块转发用户的节目请求,实现了客户端的请求和节目源的管理解耦合;
推流服务模块根据所缓冲的节目分片和客户端的请求来执行具体的推流操作,向请求推流服务的客户端发送节目流数据。
推流服务模块进行推流有以下两种情况:
1)当一个新的客户端请求到达并被服务器端接受,并被放入请求队列时,推流服务模块会立即将缓存中最新的一个分片发送给该客户端;
2)当媒体处理模块为节目源创建好一个分片并将其放入缓存中,推流服务模块将该分片数据发送给该节目源的请求队列中的所有客户端。
一种网络视频点播以及直播的推流方法,包括节目源的获取和处理、客户端HTTP请求解析、推流服务器向客户端请求推送节目数据流以及客户端请求关闭四类操作;具体包括如下步骤,
1)节目源的获取和处理;
1-1)节目源管理模块根据外部信号源所使用的协议和流程,向信号源请求节目数据,待信号源成功响应请求后,节目源管理模块开始接收节目数据;
1-2)节目源管理模块收到节目数据流后转发给媒体处理模块
1-3)媒体处理模块根据节目源的编码格式和封装格式对节目源数据进行切片,节目源数据的切片遵循HLS或DASH中切片的原则,也可以同时有采用多种切片原则的实现,即针对不同格式的节目源采用不同的切片原则;例如,对于H264格式的视频编码,切片时需要从关键帧处进行切割。节目源数据的请求和节目源数据的处理分别由独立的功能模块实现,降低了模块间的耦合度提高了本发明的可扩展性。
1-4)节目源数据的切片操作完成后,媒体处理模块将节目分片进行缓冲,并将该切片信息更新到相应的节目源管理模块中;
2)客户端HTTP请求解析;
当媒体处理模块在内存中为节目源至少缓冲一个切片时,即可以开始接受用户的播放请求,向客户端提供服务;
2-1)HTTP请求解析子模块收到用户的HTTP请求后,遵照HTTP协议标准进行解析,若客户端请求节目播放,则提取客户请求的节目ID,将客户端请求放入节目ID所对应的请求队列;
2-2)HTTP请求处理子模块根据客户请求的节目ID,检查内存中是否缓冲有该节目ID对应的节目分片;若缓冲有节目分片,则向客户端回复请求成功的响应消息,并将该客户端请求放入节目ID对应的请求队列;
3)推流服务模块向请求节目的客户端推送节目数据流;
推流服务模块为每一个频道或节目源建立一个队列来保存客户端的请求,每当节目源管理器在内存中生成了新的节目分片,或者当一个新的客户请求加入该请求队列,推流服务器即为该队列中的客户推送最新的节目分片数据;相应的,当某个节目源所对应的客户端请求被移出队列,推流服务器就不会再为该客户推送节目流;
4)客户端请求关闭;
当HTTP请求解析子模块发现某个客户端的请求终止,即关闭HTTP连接,HTTP请求解析模块会向推流服务模块请求将该客户请求从所请求的节目ID所对应的请求队列中移除,并释放相应资源,推流服务器也将停止对该客户端进行推流操作。
进一步地,在所述步骤1-4)中,节目源管理模块中保存节目分片所需要的存储空间通过在内存中开辟缓冲区来实现,在内存中建立的缓冲区可以大大提高服务性能,降低服务延迟,同时不需要再使用索引文件,节目切片之间可以通过指针来建立索引。
本发明的优点:
本发明设计合理,结构科学,针对云视频应用场景,提供了一种新颖的跨公网的视频推流方案,可以达到市场上其它主流直播技术的服务性能,同时又避免了其它技术方案中的延迟等缺点,具备高扩展和低耦合的优势。将对HTTP协议的支持和节目源的音视频封装格式的支持结合起来,同时还考虑到对其它不同节目源数据封装格式、节目源规模、所能服务的用户规模的扩展,进而实现较好的推流服务性能、较低的服务器开销、较高的灵活性。采用独立的HTTP协议解析模块捕获并解析客户端的请求,根据具体请求内容做出相应的服务响应,并将客户端的请求放入所请求的节目源对应的请求队列;采用独立的节目源管理模块请求节目源数据流,将客户端的请求和节目源的管理解耦合;采用媒体处理模块负责与节目源编码格式和封装格式的处理和操作,将节目源管理与节目源所采用的音视频编码格式和封装格式解耦合;媒体处理模块对节目源数据流进行切片操作,并对切片后的节目分片进行缓冲;采用推流服务模块根据所缓冲的节目切片和客户端请求队列来执行具体的推流操作,在用户关闭HTTP连接请求前,推流服务无需HTTP协议解析模块协助即可独立进行。
附图说明
以下将结合附图对本发明作进一步说明:
图1为本发明的工作原理框图;
图2为本发明网络视频点播直播推流方法涉及的技术方案结构框图;
图3为本发明网络视频点播直播推流方法的工作流程图。
具体实施方式
附图1为一种基于HTTP协议的网络视频点播直播推流方法的基本原理图,图中的步骤解释如下:
节目源管理模块向信号源发送节目流请求;
节目源管理模块从信号源接收节目流数据;
媒体处理模块对所接收到的节目数据进行切片操作;
媒体处理模块对节目分片进行缓存;
HTTP请求解析子模块收到来自客户端的HTTP播放请求;
HTTP请求处理子模块对HTTP播放请求进行解析;
HTTP请求处理子模块将上一步中解析过的请求放入其请求的节目源的请求队列中;
推流服务模块向请求播放节目的客户端发送HTTP响应消息;
推流服务模块从节目源缓存获取节目源分片,并向该请求用户发送节目分片;
每当节目源生成一个新的分片并放入缓存,推流服务模块都会将该分片数据发送给节目源对应的请求队列中的所有用户。
附图2为一种基于HTTP协议的网络视频点播直播推流方法的结构图,其中的模块功能分别介绍如下:
节目源管理(模块):负责从头端信号源获取节目数据,并作为推流的节目源,涉及请求节目数据的协议和流程等。此外,与节目源的音视频编码格式和封装格式相关的操作由媒体处理模块负责。
媒体处理(模块):负责进行与节目源的音视频编码格式和封装格式相关的操作,如节目源的切片操作,以H264视频编码格式的TS流为例,切片操作所得到的每一个分片都是要以视频关键帧开始,并且关键帧之前要插入PAT(Program Association Table,节目关联表)和PMT(Program Map Table,节目映射表)。
HTTP请求管理(模块):负责解析并处理客户端的HTTP请求,其中包括HTTP请求解析和HTTP请求处理两个子模块,分别负责对HTTP请求的解析和处理。如果客户端所请求的节目源分片存在,则HTTP请求处理模块还会将该请求放入请求队列中。
推流服务(模块):该模块主要负责向请求推流服务的客户端发送节目流数据。推流发生在两种情况下:当一个新的客户端请求到达并被服务器端接受,并被放入请求队列时,推流服务模块会立即将缓存中最新的一个分片发送给该客户端;每当媒体处理模块为节目源创建好一个分片并将其放入缓存中,推流服务模块就会将该分片数据发送给该节目源的请求队列中的所有客户端。
本发明推流方法的可扩展性:鉴于业界多种音视频编码格式和封装格式多种共存,如H264+MP3的TS流,H264+AAC的RTMP流,因此如果需要扩展或者增加对音视频编码格式和封装格式的支持,仅需要在媒体处理模块中增加对相应音视频编码格式和封装格式支持的操作实现即可,节目源管理模块对节目源的操作都是调用媒体处理模块来进行实际操作的,媒体处理模块对节目源管理模块是透明的。
附图3为一种基于HTTP协议的网络视频点播直播推流方法的工作流程图,基于图1中的技术原理和图2的技术方案结构图,一种基于HTTP协议的网络视频点播直播推流方法的实现过程如下:
1)首先,全局的配置参数通过配置文件中的全局配置选项输入,如下例所示:
[Global]
channels_number=1
server_port=80
segment_duration=2
segments_num=3
全局配置共四个参数,[Global]是全局配置选项标签,channels_number表示当前推流服务器可以推出流的数目,如果是电视直播就代表频道数;server_port是当前推流服务器接受HTTP请求的监听端口号;segment_duration表示在内存中缓冲的节目源分片大小,单位是秒;segments_num表示在内存中缓冲的节目源分片的数目。
2)定义一个Channel类实现对节目源的管理。为了便于说明,我们以H264的视频编码格式和TS传输流封装格式为例来说明媒体处理模块的实现。定义了TS类和Slice类实现媒体处理模块的功能,其中TS类主要负责处理与音视频封装格式有关的操作,这里针对传输流封装相关的操作;Slice类专门负责对节目源进行切片操作。由于针对不同的编码格式和封装格式,有不同的切片标准,因此可以将Slice类中的切片的判断依据部分抽象成单独一个keyFrameDetector类,由该类专门负责寻找合适的切片位置。
每一个Channel类需要输入的配置信息,如下例所示:
[Channel_1]
name=CNTV
ip=239.1.11.1
port=8001
SourceInterface=192.168.15.100
其中[Channel_1]是节目源子配置选项标签,name为节目源的名称;ip是获取当前节目源的IP地址,在本例中,为多播地址;port为从ip获取当前节目源的端口号;SourceInterface为获取当前节目源所使用的本地网卡的IP地址,这是因为采用多播协议请求多播数据流时,要显式指定所使用的本地网卡。
3)对于HTTP协议解析和处理是使用开源库libevent来实现的。定义了一个PlayerClient类,该类使用libevent库中的buffer、bufferevent和event,libevent来实现HTTP请求的解析及后续的交互通信过程。其中,libevent采用注册回调函数的方法,实现对相应端口的监听,一旦所监听的时间发生,即调用并执行用户所注册的回调函数,这样可以避免采用更加复杂的异步事件处理实现,既保证了处理效率,又降低了处理开销。
4)定义了HttpTSServer类来负责向客户端推送节目源分片数据。其中缓冲区的实现采用了环形缓冲区的数据结构,每个分片依次相连,即当一个分片过期后,就被新到的数据所覆盖。节目源所属的客户端请求队列是采用链表数据结构实现。
本发明采用独立的HTTP协议解析模块捕获并解析客户端的请求,根据具体请求内容做出相应的服务响应,并将客户端的请求放入所请求的节目源对应的请求队列;采用独立的节目源管理模块请求节目源数据流,将客户端的请求和节目源的管理解耦合;采用媒体处理模块负责与节目源编码格式和封装格式的处理和操作,将节目源管理与节目源所采用的音视频编码格式和封装格式解耦合;媒体处理模块对节目源数据流进行切片操作,并对切片后的节目分片进行缓冲;采用推流服务模块根据所缓冲的节目切片和客户端请求队列来执行具体的推流操作,在用户关闭HTTP连接请求前,推流服务无需HTTP协议解析模块协助即可独立进行。
Claims (9)
1.一种网络视频点播以及直播的推流方法,其特征在于:所采用的模块包括HTTP请求管理模块、节目源管理模块、媒体处理模块和推流服务模块;HTTP请求管理模块包括HTTP请求解析子模块和HTTP请求处理子模块;节目源管理模块通过外部接口与外部节目源服务器通信;节目源管理模块与媒体处理模块相联;媒体处理模块与推流服务模块相联,为推流服务模块提供节目源数据;HTTP请求处理子模块和推流服务模块相连,向推流服务模块转发用户的节目请求,推流服务模块通过网络接口直接向用户发送节目数据流。
2.根据权利要求1所述的网络视频点播以及直播的推流方法,其特征在于:所述节目源管理模块从外部信号源获取节目数据,并作为推流的节目来源,节目源管理模块通过外部接口请求节目源数据流,与外部信号源服务器建立连接及进行数据交互过程中的通信参数协商、身份认证、协议解析等操作。
3.根据权利要求1所述的网络视频点播以及直播的推流方法,其特征在于:所述媒体处理模块与节目源编码格式和封装格式相关的处理和操作,主要包括对节目源数据流进行切片操作,并对切片后的节目分片进行缓冲;这样通过将节目源数据的请求和节目源数据的操作分离,实现了节目源的管理操作与节目源所采用的具体音视频编码格式及封装格式解耦合。
4.根据权利要求1所述的网络视频点播以及直播的推流方法,其特征在于:所述HTTP请求解析模块解析用户的请求,并将解析结果转发给HTTP请求处理子模块,HTTP请求处理子模块检查请求是否能够满足,如果可以满足用户的请求,则向推流服务模块转发用户的节目请求,实现了客户端的请求和节目源的管理解耦合。
5.根据权利要求1所述的网络视频点播以及直播的推流方法,其特征在于:推流服务模块根据所缓冲的节目分片和客户端的请求来执行具体的推流操作,向请求推流服务的客户端发送节目流数据。
6.根据权利要求1所述的网络视频点播以及直播的推流方法,其特征在于:推流服务模块进行推流有以下两种情况:
1)当一个新的客户端请求到达并被服务器端接受,并被放入请求队列时,推流服务模块会立即将缓存中最新的一个分片发送给该客户端;
2)当媒体处理模块为节目源创建好一个分片并将其放入缓存中,推流服务模块将该分片数据发送给该节目源的请求队列中的所有客户端。
7.一种网络视频点播以及直播的推流方法,其特征在于:包括节目源的获取和处理、客户端HTTP请求解析、推流服务器向客户端请求推送节目数据流以及客户端请求关闭四类操作。
8.一种网络视频点播以及直播的推流方法,其特征在于,具体包括如下步骤:
1)节目源的获取和处理;
1-1)节目源管理模块根据外部信号源所使用的协议和流程,向信号源请求节目数据,待信号源成功响应请求后,节目源管理模块开始接收节目数据;
1-2)节目源管理模块收到节目数据流后转发给媒体处理模块
1-3)媒体处理模块根据节目源的编码格式和封装格式对节目源数据进行切片,节目源数据的切片遵循HLS或DASH中切片的原则,也可以同时有采用多种切片原则的实现,即针对不同格式的节目源采用不同的切片原则;
1-4)节目源数据的切片操作完成后,媒体处理模块将节目分片进行缓冲,并将该切片信息更新到相应的节目源管理模块中;
2)客户端HTTP请求解析;
当媒体处理模块在内存中为节目源至少缓冲一个切片时,即可以开始接受用户的播放请求,向客户端提供服务;
2-1)HTTP请求解析子模块收到用户的HTTP请求后,遵照HTTP协议标准进行解析,若客户端请求节目播放,则提取客户请求的节目ID,将客户端请求放入节目ID所对应的请求队列;
2-2)HTTP请求处理子模块根据客户请求的节目ID,检查内存中是否缓冲有该节目ID对应的节目分片;若缓冲有节目分片,则向客户端回复请求成功的响应消息,并将该客户端请求放入节目ID对应的请求队列;
3)推流服务模块向请求节目的客户端推送节目数据流;
推流服务模块为每一个频道或节目源建立一个队列来保存客户端的请求,每当节目源管理器在内存中生成了新的节目分片,或者当一个新的客户请求加入该请求队列,推流服务器即为该队列中的客户推送最新的节目分片数据;相应的,当某个节目源所对应的客户端请求被移出队列,推流服务器就不会再为该客户推送节目流;
4)客户端请求关闭;
当HTTP请求解析子模块发现某个客户端的请求终止,即关闭HTTP连接,HTTP请求解析模块会向推流服务模块请求将该客户请求从所请求的节目ID所对应的请求队列中移除,并释放相应资源,推流服务器也将停止对该客户端进行推流操作。
9.根据权利要求8所述的一种网络视频点播以及直播的推流方法,其特征在于:在所述步骤1-4)中,节目源管理模块中保存节目分片所需要的存储空间通过在内存中开辟缓冲区来实现,节目切片之间通过指针来建立索引。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710224381.5A CN107018446B (zh) | 2017-04-07 | 2017-04-07 | 一种网络视频点播以及直播的推流方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710224381.5A CN107018446B (zh) | 2017-04-07 | 2017-04-07 | 一种网络视频点播以及直播的推流方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107018446A true CN107018446A (zh) | 2017-08-04 |
CN107018446B CN107018446B (zh) | 2019-11-22 |
Family
ID=59446539
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710224381.5A Active CN107018446B (zh) | 2017-04-07 | 2017-04-07 | 一种网络视频点播以及直播的推流方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107018446B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108322762A (zh) * | 2017-12-20 | 2018-07-24 | 湖北鸿云科技股份有限公司 | 基于flv文件的高性能媒体点播服务器及点播服务方法 |
CN109547825A (zh) * | 2018-12-28 | 2019-03-29 | 上海众源网络有限公司 | 一种多媒体数据推送方法及装置 |
WO2019100364A1 (zh) * | 2017-11-27 | 2019-05-31 | 天彩电子(深圳)有限公司 | 一种云视频平台中的动态资源调配方法 |
CN111316655A (zh) * | 2017-11-10 | 2020-06-19 | 高通股份有限公司 | 在dash感知应用与dash客户端之间用于服务互动性支持的接口 |
CN111385349A (zh) * | 2020-02-07 | 2020-07-07 | 北京达佳互联信息技术有限公司 | 通信处理方法、装置、终端、服务器及存储介质 |
CN111954014A (zh) * | 2020-08-13 | 2020-11-17 | 北京金山云网络技术有限公司 | 一种直播推流方法、装置、存储介质及设备 |
CN112118461A (zh) * | 2020-09-22 | 2020-12-22 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种音视频文件存储和分发方法与装置 |
CN112449213A (zh) * | 2020-11-25 | 2021-03-05 | 杭州视洞科技有限公司 | 一种基于FFmpeg实现的HLS切片服务方案 |
CN113613032A (zh) * | 2021-08-04 | 2021-11-05 | 杭州梦视网络科技有限公司 | 一种嵌入式远程教学实验系统的视频传输方法 |
CN113747213A (zh) * | 2021-09-06 | 2021-12-03 | 合肥润东通信科技股份有限公司 | 一种基于同轴网关实现dvb广播视频高效转发的系统及方法 |
CN114827741A (zh) * | 2021-01-18 | 2022-07-29 | 武汉斗鱼鱼乐网络科技有限公司 | 直播流管理方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102547385A (zh) * | 2011-12-29 | 2012-07-04 | 深圳市同洲视讯传媒有限公司 | 一种分布式推流的方法、装置及系统 |
CN102710966A (zh) * | 2012-06-13 | 2012-10-03 | 百视通网络电视技术发展有限责任公司 | 基于http协议的视频直播方法及系统 |
CN103179214A (zh) * | 2013-04-10 | 2013-06-26 | 网宿科技股份有限公司 | 基于http协议的直播流推流方法和系统 |
-
2017
- 2017-04-07 CN CN201710224381.5A patent/CN107018446B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102547385A (zh) * | 2011-12-29 | 2012-07-04 | 深圳市同洲视讯传媒有限公司 | 一种分布式推流的方法、装置及系统 |
CN102710966A (zh) * | 2012-06-13 | 2012-10-03 | 百视通网络电视技术发展有限责任公司 | 基于http协议的视频直播方法及系统 |
CN103179214A (zh) * | 2013-04-10 | 2013-06-26 | 网宿科技股份有限公司 | 基于http协议的直播流推流方法和系统 |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11310540B2 (en) | 2017-11-10 | 2022-04-19 | Qualcomm Incorporated | Interfaces between dash aware application and dash client for service interactivity support |
CN111316655A (zh) * | 2017-11-10 | 2020-06-19 | 高通股份有限公司 | 在dash感知应用与dash客户端之间用于服务互动性支持的接口 |
CN111316655B (zh) * | 2017-11-10 | 2021-11-02 | 高通股份有限公司 | 在dash感知应用与dash客户端之间用于服务互动性支持的接口 |
WO2019100364A1 (zh) * | 2017-11-27 | 2019-05-31 | 天彩电子(深圳)有限公司 | 一种云视频平台中的动态资源调配方法 |
CN108322762A (zh) * | 2017-12-20 | 2018-07-24 | 湖北鸿云科技股份有限公司 | 基于flv文件的高性能媒体点播服务器及点播服务方法 |
CN109547825A (zh) * | 2018-12-28 | 2019-03-29 | 上海众源网络有限公司 | 一种多媒体数据推送方法及装置 |
US11444992B2 (en) | 2020-02-07 | 2022-09-13 | Beijing Dajia Internet Information Technology Co., Ltd. | Method and apparatus for communication processing |
CN111385349A (zh) * | 2020-02-07 | 2020-07-07 | 北京达佳互联信息技术有限公司 | 通信处理方法、装置、终端、服务器及存储介质 |
CN111954014B (zh) * | 2020-08-13 | 2022-01-28 | 北京金山云网络技术有限公司 | 一种直播推流方法、装置、存储介质及设备 |
CN111954014A (zh) * | 2020-08-13 | 2020-11-17 | 北京金山云网络技术有限公司 | 一种直播推流方法、装置、存储介质及设备 |
CN112118461A (zh) * | 2020-09-22 | 2020-12-22 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种音视频文件存储和分发方法与装置 |
CN112118461B (zh) * | 2020-09-22 | 2022-10-18 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种音视频文件存储和分发方法与装置 |
CN112449213A (zh) * | 2020-11-25 | 2021-03-05 | 杭州视洞科技有限公司 | 一种基于FFmpeg实现的HLS切片服务方案 |
CN114827741A (zh) * | 2021-01-18 | 2022-07-29 | 武汉斗鱼鱼乐网络科技有限公司 | 直播流管理方法、装置、电子设备及存储介质 |
CN113613032A (zh) * | 2021-08-04 | 2021-11-05 | 杭州梦视网络科技有限公司 | 一种嵌入式远程教学实验系统的视频传输方法 |
CN113747213A (zh) * | 2021-09-06 | 2021-12-03 | 合肥润东通信科技股份有限公司 | 一种基于同轴网关实现dvb广播视频高效转发的系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107018446B (zh) | 2019-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107018446A (zh) | 一种网络视频点播以及直播的推流方法 | |
US20160337424A1 (en) | Transferring media data using a websocket subprotocol | |
CN100568966C (zh) | 一种音/视频数据的网络传输方法 | |
WO2008061416A1 (fr) | Procédé et système permettant d'accepter des données media de divers formats de codage | |
US20180176278A1 (en) | Detecting and signaling new initialization segments during manifest-file-free media streaming | |
CN105610824B (zh) | 一种基于屏幕镜像及rtsp流媒体框架的屏幕共享方法 | |
CN108260010A (zh) | 一种基于网络编解码和协作分发的视频点播方法以及系统 | |
CN108063745B (zh) | 一种基于安卓设备的视频通话方法及其系统 | |
CN109302576A (zh) | 会议处理方法和装置 | |
CN106790005B (zh) | 实现低延时hls直播的系统及方法 | |
KR20090090361A (ko) | 수신기 버퍼 아키텍처를 나타내는 버퍼 파라미터의 시그널링 | |
CN109462761A (zh) | 一种视频解码方法及装置 | |
CN107197386A (zh) | 一种无客户端的跨平台视频播放实现方法 | |
CN105900446B (zh) | 通信装置、通信数据生成方法和通信数据处理方法 | |
CN104363511B (zh) | 一种在移动设备中在线播放F4v视频的方法及系统 | |
CN109640115A (zh) | 一种流媒体文件转码方法和装置 | |
CN110072126A (zh) | 数据请求方法、协转服务器及计算机可读存储介质 | |
US20160315987A1 (en) | Communication devices, communication data generation method, and communication data processing method | |
US20200084246A1 (en) | Lawful Interception | |
JP2024503647A (ja) | メディアデータのバックグラウンドデータトラフィック配信 | |
CA2934905C (en) | Communication apparatus, communication data generation method, and communication data processing method | |
CN109147812A (zh) | 回声消除方法和装置 | |
CN110611639A (zh) | 流媒体会议的音频数据处理方法和装置 | |
CN108881794B (zh) | 一种基于视联网终端的网络会议通信方法和装置 | |
CN110445761A (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 |