WO2019019371A1 - 一种流媒体数据的传输方法、存储介质和流媒体服务器 - Google Patents

一种流媒体数据的传输方法、存储介质和流媒体服务器 Download PDF

Info

Publication number
WO2019019371A1
WO2019019371A1 PCT/CN2017/104536 CN2017104536W WO2019019371A1 WO 2019019371 A1 WO2019019371 A1 WO 2019019371A1 CN 2017104536 W CN2017104536 W CN 2017104536W WO 2019019371 A1 WO2019019371 A1 WO 2019019371A1
Authority
WO
WIPO (PCT)
Prior art keywords
streaming media
connection
connection request
target
server
Prior art date
Application number
PCT/CN2017/104536
Other languages
English (en)
French (fr)
Inventor
吴烁宇
Original Assignee
平安科技(深圳)有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 平安科技(深圳)有限公司 filed Critical 平安科技(深圳)有限公司
Publication of WO2019019371A1 publication Critical patent/WO2019019371A1/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • H04L69/162Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23106Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network 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/63Control 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/643Communication protocols
    • H04N21/6437Real-time Transport Protocol [RTP]

Definitions

  • the present application relates to the field of data transmission technologies, and in particular, to a method for transmitting streaming media data, a storage medium, and a streaming media server.
  • the current practice on the web side is to use the RTMP protocol or the HLS protocol as the audio and video transmission protocol and the streaming server to complete the data transmission, using the browser's audio/video tag of the mobile terminal. Video playback.
  • the RTMP protocol is not applicable to most mobile terminal browsers; the HLS protocol is prone to delays due to the slicing file mechanism, and is not suitable for scenarios with high latency requirements such as interaction and live broadcast.
  • the embodiment of the present application provides a method for transmitting streaming media data, a storage medium, and a streaming media server, which can continuously complete the transmission of streaming media data, reduce the delay of data transmission, and provide low latency for the browser of the mobile terminal.
  • Awkward streaming data support services are provided.
  • a method for transmitting streaming media data including:
  • the streaming media server receives a target connection request from a browser of the mobile terminal, where the target connection request includes information of the connection object; [0009] the streaming media server creates a target event processor corresponding to the target connection request, and the target event processor uses a websocket protocol to perform data transmission with a browser of the mobile terminal; [0010] the stream The media server queries whether the connection object of the other connection request exists the same as the connection object of the target connection request;
  • the streaming server multiplexes the streaming media data in the buffer queue corresponding to the first connection request to the target event.
  • the target event processor sends the multiplexed streaming media data to a browser of the mobile terminal;
  • the first connection request refers to that the connection object in the other connection request is connected to the target
  • the requested connection object has the same connection request;
  • the streaming server creates a new buffer queue corresponding to the target connection request, according to the target connection request.
  • the information of the connection object extracts corresponding streaming media data, and distributes the extracted streaming media data to the target event processor through the new buffer queue, so that the target event processor will extract the extracted streaming media.
  • the data is sent to the browser of the mobile terminal.
  • a computer readable storage medium storing computer readable instructions, the computer readable instructions being executed by a processor to implement the transmission of the streaming media data The steps of the method.
  • a streaming media server comprising a memory, a processor, and computer readable instructions stored in the memory and executable on the processor, the processor executing the computer
  • the readable instructions implement the following steps:
  • the streaming media server receives a target connection request from a browser of the mobile terminal, the target connection request including information of the connection object;
  • the streaming media server creates a target event processor corresponding to the target connection request, and the target event processor uses a websocket protocol to perform data transmission with a browser of the mobile terminal;
  • the streaming media server queries whether the connection object of the other connection request is the same as the connection object of the target connection request;
  • the streaming media server multiplexes the streaming media data in the buffer queue corresponding to the first connection request to the destination a target event processor, so that the target event processor sends the multiplexed streaming media data to a browser of the mobile terminal;
  • the first connection request refers to a connection object in the other connection request and the The connection request of the target connection request is the same connection request;
  • the streaming server creates a new buffer queue corresponding to the target connection request, according to the target connection request.
  • the information of the connection object extracts corresponding streaming media data, and distributes the extracted streaming media data to the target event processor through the new buffer queue, so that the target event processor will extract the extracted streaming media.
  • the data is sent to the browser of the mobile terminal.
  • a streaming media server including:
  • a connection request receiving module configured to receive a target connection request from a browser of the mobile terminal, where the target connection request includes information of the connection object;
  • an event processor creating module configured to create a target event handler corresponding to the target connection request, where the target event processor uses a websocket protocol to perform data transmission with a browser of the mobile terminal;
  • a query module configured to query whether a connection object that has other connection requests already exists is the same as the connection object of the target connection request
  • a data multiplexing module configured to: if the query result of the query module is yes, the streaming media server multiplexes the streaming media data in the buffer queue corresponding to the first connection request to the target event a processor, so that the target event processor sends the multiplexed streaming media data to a browser of the mobile terminal; the first connection request refers to that the connection object in the other connection request is connected to the target The requested connection object has the same connection request;
  • a streaming media data extraction module configured to: if the query result of the query module is no, the streaming media server creates a new buffer queue corresponding to the target connection request, and connects according to the target The information of the requested connection object extracts corresponding streaming media data, and distributes the extracted streaming media data to the target event processor through the new buffer queue, so that the target event processor will extract the extracted stream.
  • the media data is sent to the browser of the mobile terminal.
  • the foregoing streaming media server may check whether the connection object of the target connection request has been connected by another connection request, and if yes, may multiplex other connections.
  • Requesting streaming media data quickly completing the acquisition of streaming media data, if not, establishing a new buffering queue, extracting streaming media data to a new buffering queue for subsequent multiplexing of other connection requests; obtaining streaming media data
  • the streaming media server sends the mobile terminal to the mobile terminal through the websocket protocol, supports the mobile terminal browser based on the websocket protocol, can continuously complete the transmission of the streaming media data, reduces the delay of data transmission, and adds the data multiplexing method to the streaming media.
  • the data is quickly acquired, and the streaming server can provide low-latency streaming media data support services for the mobile terminal.
  • FIG. 1 is a flowchart of an embodiment of a method for transmitting streaming media data according to an embodiment of the present application
  • FIG. 2 is a schematic flowchart of determining a streaming media server in an application scenario according to a method for transmitting streaming media data in an embodiment of the present application;
  • FIG. 3 is a schematic diagram of a principle of a streaming media server according to an embodiment of the present application.
  • FIG. 4 is a structural diagram of an embodiment of a streaming media server according to an embodiment of the present application.
  • FIG. 5 is a schematic diagram of a streaming media server according to an embodiment of the present application.
  • the embodiment of the present application provides a method for transmitting streaming media data, a storage medium, and a streaming media server, which are used to solve the problem that the existing streaming media server is difficult to provide low-latency streaming media data support for the browser of the mobile terminal. problem.
  • An embodiment of a method for transmitting streaming media data in an embodiment of the present application includes:
  • the streaming media server receives a target connection request from a browser of the mobile terminal, where the target connection request includes information of the connection object.
  • the user when the user of the mobile terminal wants to watch the live audio or video live broadcast, the user may initiate a connection request to the streaming server through the browser on the mobile terminal, which is called the connection request in this embodiment.
  • Request for the target connection may include information of the connection object, where the connection object refers to an address or a unique identifier of the object that the target connection request needs to request to connect and obtain the streaming media data, and the streaming media server may The connection object finds the corresponding audio and video data from the server local or network.
  • the target connection request in this embodiment is initiated by the browser of the mobile terminal.
  • the page of the browser is generated by using the HTML5 standard.
  • the streaming media server in this embodiment may be deployed in a CDN (Content Distribution Network) network.
  • CDN Content Distribution Network
  • the distribution of different connection requests to different servers by the CDN network improves the quality of service of each server while mitigating and optimizing the overall service pressure of each server. Therefore, as shown in FIG. 2, before the streaming server receives the target connection request from the browser of the mobile terminal, the method may further include:
  • the scheduling center of the CDN network determines, according to the network connection between the mobile terminal and each node server on the CDN network, one of the node servers as the streaming media server.
  • a plurality of node servers may be deployed on a CDN network, and these node servers are also referred to as edge nodes (ie, service nodes in the CDN network that are closest to the client access), and are scheduled by the CD N network.
  • the center conducts unified scheduling management.
  • CDN network can be based on the network connection between the mobile terminal and each node server, such as which node server and mobile terminal are closer on the network line, and / or which node server current service pressure is small And so on, thereby determining one of the node servers from each of the node servers as a streaming server that provides services to the mobile terminal.
  • the streaming media server may establish a data transmission link based on a websocket protocol with the mobile terminal.
  • the streaming media server may complete establishment of a data transmission link with the mobile terminal by using a websoc ket service program preset on the streaming media server.
  • the websocket service program is pre-deployed on the CDN network, and is automatically synchronized to the respective node servers in the form of a binary file through an internal service update channel of the CDN network. It can be understood that the web socket service program is executed in the form of a binary file, which can greatly reduce the cost and cost of deploying the extension of the websocket service program on each node server of the CDN network, and improve the deployment and update efficiency of the service program.
  • the streaming media server creates a target event processor corresponding to the target connection request, where the target event processor uses a websocket protocol to perform data transmission with a browser of the mobile terminal.
  • the streaming media server data transmission is performed separately from each of the different connection requests by respective event processors.
  • the streaming server can pre-create each Handler, that is, each event processor, by using the websocket package in the officially maintained standard package g o.net of the go language.
  • These event handlers can primarily target HTTP requests.
  • the streaming server can bind the ws address set by a specific rule (for example, ws://.. Jws/stream_name, the address represents a stream, and stream_name represents an arbitrary stream name), respectively, to bind these Handlers, a ws address is tied Make a Handler.
  • the target connection request may trigger an idle handler on the streaming server, and the triggered handler then associates with the target connection request, and the handler acts as
  • the target event processor uses the websocket protocol to perform data transmission with the browser of the mobile terminal.
  • the streaming media server queries whether the connection object of the other connection request is the same as the connection object of the target connection request, and if so, step 104 is performed, and if not, step 105 is performed; [0050] Based on the consideration of fast acquisition of streaming media data, if the connection object of a connection request already exists on the streaming media server is the same as the connection object of the target connection request, it indicates that the streaming media data that needs to be acquired by the target connection request has been It is acquired in advance by another connection request, and the streaming data acquired by another connection request is currently being cached on the streaming server.
  • the streaming media server does not need to re-acquire the same streaming media data for the target connection request, and directly reuses the streaming media data obtained by the other connection request, and provides the browser to the mobile terminal.
  • the connection object of the connection request is found to be the same as the connection object of the target connection request, the process may be performed.
  • the streaming media server may pre-establish a streaming media connection pool, where the streaming media connection pool is used to store and manage the current flow management object of each connection request, and the flow management object record There is information about the connection object of the connection request corresponding thereto.
  • the foregoing step 103 may be specifically: the streaming media server queries whether the connection object of the other connection management object in the streaming media connection pool has the same connection object as the target connection request.
  • the streaming media server may further register the flow management object corresponding to the target connection request into the office.
  • the streaming media connection pool may be further registered.
  • the streaming media connection pool on the streaming media server can be created by using the go language map object, and stores the currently connected StreamManager information, that is, the flow management object.
  • the streaming connection pool can allocate an in-pool connection object Conn to the StreamManager, and the in-pool connection object Conn is used to identify the target connection request corresponding to the StreamManager.
  • the StreamManager can also record information about the connection object of the corresponding connection request, where the connection object can be distinguished according to stream_name.
  • the streaming server finds that the stream_names of the two StreamManager records in the current streaming media connection pool are the same, it can be considered that the connection requests corresponding to the two StreamManagers have the same connection object, that is, between the two connection requests.
  • Streaming media data can be reused.
  • the previous connection request since the previous connection request usually has a corresponding buffer queue, the latter connection request can directly share an existing buffer queue with the previous connection request.
  • the streaming media server multiplexes the streaming media data in the buffer queue corresponding to the first connection request to the target event processor, so that the target event processor will reuse the obtained streaming media data.
  • a browser sent to the mobile terminal the first connection request refers to a connection request in which the connection object of the other connection request is the same as the connection object of the target connection request;
  • the streaming data in the buffer queue corresponding to the first connection request is handed over to the target event processor, so that the target event processor will use the streaming media.
  • the data is sent to the browser of the mobile terminal, and the streaming media data is quickly obtained. Because the data multiplexing method is adopted, the streaming media server can more effectively provide the streaming media data support service for the browser of the mobile terminal.
  • the streaming media server creates a new buffer queue corresponding to the target connection request.
  • connection object of the other connection request is not the same as the connection object of the target connection request
  • the streaming server needs to provide a new buffer queue for the target connection request, so as to The target connection request acquires streaming media data.
  • the streaming media server may pre-establish a buffer, and the buffer is used to store a buffer queue corresponding to each connection request. And, in order to improve the utilization of the buffer and ensure that the streaming media server provides the quality and efficiency of the streaming media data service, the streaming media server may adjust the size of the buffer according to the current streaming media data acquisition speed; wherein, the current The faster the streaming data is acquired, the smaller the adjusted buffer is. The slower the current streaming data acquisition speed is, the larger the adjusted buffer is.
  • the streaming server since the case where the buffer queue multiplexing between each connection request, the streaming server so create a new buffer queue inch, can only create the corresponding connection pool registered in streaming StreamManag e r Buffer queue. It can be understood that if the target connection request can multiplex the buffer queue of other connection requests, the StreamManager corresponding to the target connection request does not need to register the inbound media connection pool; conversely, if the target connection request has no other connection request that can be reused The buffer queue is configured, and the StreamManager corresponding to the target connection request is registered in the streaming media connection pool. Therefore, the streaming server is The StreamManager registered in the streaming media connection pool creates a corresponding buffer queue. That is, the streaming server creates a corresponding buffer queue for the connection request that cannot obtain the streaming media data by using the data multiplexing mode.
  • the streaming media server extracts corresponding streaming media data according to the information of the connection object of the target connection request.
  • the information of the connection object of the target connection request may be a storage address or a unique identifier of a certain audio and video data
  • the streaming media server may find the corresponding information from the server local or the network according to the information of the connection object. Audio and video data.
  • the streaming media server may obtain a corresponding buffer queue through the StreamManager, and then establish an RTMP with the node server where the connection object is located through the buffer queue. Connected so that it can be streamed from the node server to the buffer queue.
  • the streaming media data obtained by the streaming may be buffered in a corresponding buffer queue on the streaming server in the format of the RTMP packet.
  • the streaming server may pre-establish an RTMP connection pool, the RTMP connection.
  • the pool is used to manage these RTM connections.
  • RTMP and websocket stream services can be combined in program design, or shared memory can be provided for cross-process access, so that buffered data of RTMP connection can be obtained from the existing RTMP connection pool on the node server, to the maximum extent.
  • the multiplexed streaming media data on the streaming media server is not specifically limited in this embodiment.
  • the streaming media server distributes the extracted streaming media data to the target event processor through the new buffer queue, so that the target event processor sends the extracted streaming media data to The browser of the mobile terminal.
  • the target event processor uses the websocket protocol to perform data transmission with the browser of the mobile terminal, and after the streaming media server extracts the streaming media data, the target event processor may extract the extracted streams.
  • the media data is sent to the browser of the mobile terminal.
  • the streaming media server may further be configured with a statistical data collection process Data collector and a streaming media monitoring process monitor.
  • the streaming server can build Monitor through Go prediction and pass RPC. (remote procedure call)
  • the mechanism registers the remote procedure call and passes the connection statistics (RTMP connection number, each buffer queue size, network connection status, client request IP, number of exceptions, CPU usage, etc.) as a parameter to the Monitor.
  • the Monitor is responsible for collecting parameter information and judging whether it is necessary to initiate an alarm signal to the dispatch center of the CDN network according to the parameter information; in addition, it can also be determined through the CDN internal signaling channel (for example: HTTP or TCP connection), according to the CDN.
  • the internal data transfer protocol submits the WebSocket flow connection status of the streaming media server to the dispatch center.
  • the monitor may report to the dispatching center according to the severity of the fault.
  • the monitor can also collect relevant system information and attempt to restart the websocket service to ensure high availability of the websocket service.
  • the scheduling center of the CDN network can adjust the current service pressure of each node server according to the feedback information of the Monitor, thereby improving the service quality of each node server in the CDN network as much as possible, especially Alleviate the service pressure of each node server in a special segment (such as a busy network).
  • the streaming media server receives a target connection request from a browser of the mobile terminal, where the target connection request includes information of the connection object; and then, the streaming media server creates a connection with the target Requesting a corresponding target event processor, wherein the target event processor uses a websocke t protocol to perform data transmission with a browser of the mobile terminal; and then, the streaming media server queries whether a connection object and other connection request have existed The connection object of the target connection request is the same; if yes, the streaming server multiplexes the streaming media data in the buffer queue corresponding to the first connection request to the target event processor, so that the target event processor will Transmitting the obtained streaming media data to the browser of the mobile terminal; the first connection request refers to a connection request in which the connection object of the other connection request is the same as the connection object of the target connection request; if not, Then the streaming server creates a new one corresponding to the target connection request a buffer queue, extracting corresponding streaming media data according to the information of
  • the streaming server can check whether the connection object of the target connection request has been If there is another connection request, if it is, the streaming media data of other connection requests can be multiplexed, and the streaming media data can be quickly obtained. If not, a new buffer queue is created, and the streaming media data is extracted to the new buffer queue.
  • the streaming media server sends the browser to the mobile terminal through the websocket protocol, and the mobile terminal browser is highly supported based on the websocket protocol, and the streaming media data can be continuously completed. The transmission, the delay of data transmission is reduced, and the data multiplexing method is used to quickly obtain the streaming media data, and the streaming media server can provide low-latency streaming media data support services for the browser of the mobile terminal.
  • FIG. 4 is a structural diagram of an embodiment of a streaming media server in an embodiment of the present application.
  • a streaming media server includes:
  • a connection request receiving module 401 configured to receive a target connection request from a browser of the mobile terminal, where the target connection request includes information of the connection object;
  • an event handler creating module 402 configured to create a target event processor corresponding to the target connection request, where the target event processor uses a websocket protocol to perform data transmission with a browser of the mobile terminal;
  • a query module 403 configured to query whether a connection object that has other connection requests already exists is the same as the connection object of the target connection request;
  • the data multiplexing module 404 is configured to: if the query result of the query module 403 is yes, the streaming media server multiplexes the streaming media data in the buffer queue corresponding to the first connection request to the a target event processor, so that the target event processor sends the multiplexed streaming media data to a browser of the mobile terminal; the first connection request refers to a connection object in the other connection request and the The connection request of the target connection request is the same connection request;
  • the streaming media data extraction module 405 is configured to: if the query result of the query module 403 is negative, the streaming media server creates a new buffer queue corresponding to the target connection request, according to the aims The information of the connection object of the connection request extracts corresponding streaming media data, and distributes the extracted streaming media data to the target event processor through the new buffer queue, so that the target event processor will extract the extracted data.
  • the streaming media data is sent to a browser of the mobile terminal.
  • the streaming media server may pre-establish a streaming media connection pool, where the streaming media connection pool is used to store and manage the current flow management object of each connection request, and the flow management object records a connection request corresponding thereto. Information about the connection object;
  • the query module includes: a connection object query unit, configured to query, in each flow management object of the streaming media connection pool, whether a connection object of another connection request exists and a connection object of the target connection request the same;
  • the streaming media server may further include: a stream management registration module, configured to register a flow management object corresponding to the target connection request into the streaming media connection pool.
  • the streaming media server may pre-establish a buffer, where the buffer is used to store a buffer queue corresponding to each connection request;
  • the streaming media server may further include:
  • a buffer adjustment module configured to adjust a size of the buffer according to a current streaming media data acquisition speed
  • the scheduling center of the CDN network determines one of the node servers as the streaming media server according to the network connection between the mobile terminal and each node server on the CDN network;
  • the streaming media server may further include: a transmission link establishing module, configured to establish a data transmission link based on a websocket protocol between the streaming media server and the mobile terminal.
  • the transmission link establishing module may include: a service program establishing unit, configured to complete a data transmission link with the mobile terminal by using a websocket service program preset on the streaming media server The websocket service program is pre-deployed on the CDN network and automatically synchronized to the respective node servers in the form of a binary file through an internal service update channel of the CDN network.
  • the streaming server 5 includes a processor 50, a memory 51, and computer readable instructions 52 stored in the memory 51 and executable on the processor 50, such as a program that executes a method of transmitting streaming media data.
  • the processor 50 executes the computer readable instructions 52 to implement the steps in the foregoing method for transmitting various streaming media data, such as steps 101 through 107 shown in FIG.
  • the processor 50 executes the computer readable instructions 52 to implement the functions of the modules/units in the various apparatus embodiments described above, such as the functions of the modules 401 to 405 shown in FIG.
  • the computer readable instructions 52 may be partitioned into one or more modules/units, the one or more modules/units being stored in the memory 51, and by the processor 50 executed to complete the application.
  • the one or more modules/units may be a series of computer readable instruction instruction segments capable of performing a particular function, the instruction segments being used to describe the execution of the computer readable instructions 52 in the streaming media server 5.
  • the streaming media server 5 may be a computing device such as a desktop computer, a notebook, a palmtop computer, and a cloud server.
  • the streaming server may include, but is not limited to, a processor 50, a memory 51. It will be understood by those skilled in the art that FIG. 5 is merely an example of the streaming media server 5, and does not constitute a limitation to the streaming media server 5, and may include more or less components than those illustrated, or may be combined with some components, or different. Components, such as the streaming server, may also include input and output devices, network access devices, buses, and the like.
  • the processor 50 may be a central processing unit (CPU), or may be another general-purpose processor, a digital signal processor (DSP), or an application specific integrated circuit (Application Specific Integrated Circuit, ASIC), ready-to-use programmable gate array
  • CPU central processing unit
  • DSP digital signal processor
  • ASIC Application Specific Integrated Circuit
  • the general purpose processor may be a microprocessor or the processor or any conventional processor or the like.
  • the memory 51 may be an internal storage unit of the streaming media server 5, such as a hard disk or a memory of the streaming media server 5.
  • the memory 51 may also be an external storage device of the streaming media server 5, such as a plug-in hard disk provided on the streaming media server 5, a smart memory card (SMC), and a secure digital (Secure Digital, SD) card, flash card, etc.
  • the memory 51 may also include both an internal storage unit of the streaming media server 5 and an external device. Storage device.
  • the memory 51 is configured to store the computer readable instructions and other programs and data required by the streaming server.
  • the memory 51 can also be used to temporarily store data that has been output or is about to be output.
  • each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.
  • the above integrated unit can be implemented in the form of hardware or in the form of a software functional unit.
  • the integrated unit if implemented in the form of a software functional unit and sold or used as a standalone product, may be stored in a computer readable storage medium.
  • a computer readable storage medium A number of instructions are included to cause a computer device (which may be a personal computer, server, or network device, etc.) to perform all or part of the steps of the methods described in various embodiments of the present application.
  • the foregoing storage medium includes: a U disk, a removable hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk, and the like, which can store program codes. .

Abstract

一种流媒体数据的传输方法、存储介质和流媒体服务器,用于解决现有流媒体服务器难以为移动终端的浏览器提供低延时的流媒体数据支持的问题。该方法包括:流媒体服务器接收来自移动终端的浏览器的目标连接请求;创建一个与目标连接请求对应的目标事件处理器,目标事件处理器采用websocket协议与所述浏览器进行数据传输;查询是否已存在其它连接请求的连接对象与目标连接请求的连接对象相同;若是,则将其它连接请求的流媒体数据复用至目标事件处理器;若否,则创建一个新的缓冲队列,提取相应的流媒体数据并这些流媒体数据通过新的缓冲队列分发至目标事件处理器,以便于目标事件处理器将这些流媒体数据发送给移动终端的浏览器。

Description

一种流媒体数据的传输方法、 存储介质和流媒体服务器
[0001] 本申请申明享有 2017年 7月 24日递交的申请号为 201710605614.6、 名称为 "一种 流媒体数据的传输方法、 存储介质和流媒体服务器"中国专利申请的优先权, 该 中国专利申请的整体内容以参考的方式结合在本申请中。
技术领域
[0002] 本申请涉及数据传输技术领域, 尤其涉及一种流媒体数据的传输方法、 存储介 质和流媒体服务器。
背景技术
[0003] 随着移动终端业务的快速发展, 以及高速移动网络的铺设, 越来越多的用户通 过移动终端来收看音视频的直播。
[0004] 在移动终端接收音视频直播数据方面, 目前在 web端的普遍做法为采用 RTMP 协议或 HLS协议作为音视频传输协议与流媒体服务器完成数据传输, 利用移动终 端的浏览器 audio/video标签进行视频播放。 但是, RTMP协议不适用于大部分移 动终端的浏览器; HLS协议因切片文件机制容易导致延吋过长, 不适用于互动、 直播等对吋延要求较高的场景。
[0005] 因此, 寻找一种能对移动终端的浏览器提供低延吋的流媒体数据支持的流媒体 服务器, 这成为了本领域技术人员亟需解决的问题。
技术问题
[0006] 本申请实施例提供了一种流媒体数据的传输方法、 存储介质和流媒体服务器, 能够持续完成流媒体数据的传输, 减少数据传输的吋延, 为移动终端的浏览器 提供低延吋的流媒体数据支持服务。
问题的解决方案
技术解决方案
[0007] 第一方面, 提供了一种流媒体数据的传输方法, 包括:
[0008] 流媒体服务器接收来自移动终端的浏览器的目标连接请求, 所述目标连接请求 包括连接对象的信息; [0009] 所述流媒体服务器创建一个与所述目标连接请求对应的目标事件处理器, 所述 目标事件处理器采用 websocket协议与所述移动终端的浏览器进行数据传输; [0010] 所述流媒体服务器査询是否已存在其它连接请求的连接对象与所述目标连接请 求的连接对象相同;
[0011] 若已存在其它连接请求的连接对象与所述目标连接请求的连接对象相同, 则所 述流媒体服务器将第一连接请求对应的缓冲队列中的流媒体数据复用至所述目 标事件处理器, 以便于所述目标事件处理器将复用得到的流媒体数据发送给所 述移动终端的浏览器; 所述第一连接请求是指所述其它连接请求中连接对象与 所述目标连接请求的连接对象相同的连接请求;
[0012] 若不存在其它连接请求的连接对象与所述目标连接请求的连接对象相同, 则所 述流媒体服务器创建一个与所述目标连接请求对应的新的缓冲队列, 根据所述 目标连接请求的连接对象的信息提取相应的流媒体数据, 并将提取得到的流媒 体数据通过所述新的缓冲队列分发至所述目标事件处理器, 以便于所述目标事 件处理器将提取得到的流媒体数据发送给所述移动终端的浏览器。
[0013] 第二方面, 提供了一种计算机可读存储介质, 所述计算机可读存储介质存储有 计算机可读指令, 所述计算机可读指令被处理器执行吋实现上述的流媒体数据 的传输方法的步骤。
[0014] 第三方面, 提供了一种流媒体服务器, 包括存储器、 处理器以及存储在所述存 储器中并可在所述处理器上运行的计算机可读指令, 所述处理器执行所述计算 机可读指令吋实现如下步骤:
[0015] 流媒体服务器接收来自移动终端的浏览器的目标连接请求, 所述目标连接请求 包括连接对象的信息;
[0016] 所述流媒体服务器创建一个与所述目标连接请求对应的目标事件处理器, 所述 目标事件处理器采用 websocket协议与所述移动终端的浏览器进行数据传输;
[0017] 所述流媒体服务器査询是否已存在其它连接请求的连接对象与所述目标连接请 求的连接对象相同;
[0018] 若已存在其它连接请求的连接对象与所述目标连接请求的连接对象相同, 则所 述流媒体服务器将第一连接请求对应的缓冲队列中的流媒体数据复用至所述目 标事件处理器, 以便于所述目标事件处理器将复用得到的流媒体数据发送给所 述移动终端的浏览器; 所述第一连接请求是指所述其它连接请求中连接对象与 所述目标连接请求的连接对象相同的连接请求;
[0019] 若不存在其它连接请求的连接对象与所述目标连接请求的连接对象相同, 则所 述流媒体服务器创建一个与所述目标连接请求对应的新的缓冲队列, 根据所述 目标连接请求的连接对象的信息提取相应的流媒体数据, 并将提取得到的流媒 体数据通过所述新的缓冲队列分发至所述目标事件处理器, 以便于所述目标事 件处理器将提取得到的流媒体数据发送给所述移动终端的浏览器。
[0020] 第四方面, 提供了一种流媒体服务器, 包括:
[0021] 连接请求接收模块, 用于接收来自移动终端的浏览器的目标连接请求, 所述目 标连接请求包括连接对象的信息;
[0022] 事件处理器创建模块, 用于创建一个与所述目标连接请求对应的目标事件处理 器, 所述目标事件处理器采用 websocket协议与所述移动终端的浏览器进行数据 传输;
[0023] 査询模块, 用于査询是否已存在其它连接请求的连接对象与所述目标连接请求 的连接对象相同;
[0024] 数据复用模块, 用于若所述査询模块的査询结果为是, 则所述流媒体服务器将 第一连接请求对应的缓冲队列中的流媒体数据复用至所述目标事件处理器, 以 便于所述目标事件处理器将复用得到的流媒体数据发送给所述移动终端的浏览 器; 所述第一连接请求是指所述其它连接请求中连接对象与所述目标连接请求 的连接对象相同的连接请求;
[0025] 流媒体数据提取模块, 用于若所述査询模块的査询结果为否, 则所述流媒体服 务器创建一个与所述目标连接请求对应的新的缓冲队列, 根据所述目标连接请 求的连接对象的信息提取相应的流媒体数据, 并将提取得到的流媒体数据通过 所述新的缓冲队列分发至所述目标事件处理器, 以便于所述目标事件处理器将 提取得到的流媒体数据发送给所述移动终端的浏览器。
发明的有益效果
有益效果 [0026] 从以上技术方案可以看出, 本申请实施例具有以下优点:
[0027] 在本申请实施例中, 上述的流媒体服务器在接收到目标连接请求之后, 可以检 査该目标连接请求的连接对象是否已经有其它连接请求连接过, 若是, 则可以 复用其它连接请求的流媒体数据, 快速完成流媒体数据的获取, 若否, 则建立 新的缓冲队列, 提取流媒体数据至新的缓冲队列, 以便于后续其它连接请求的 复用; 在获取到流媒体数据之后, 流媒体服务器通过 websocket协议发送至移动 终端, 基于 websocket协议对移动终端浏览器的高度支持, 可持续完成流媒体数 据的传输, 减少数据传输的吋延, 再加上数据复用方式对流媒体数据完成快速 获取, 该流媒体服务器可以为移动终端提供低延吋的流媒体数据支持服务。 对附图的简要说明
附图说明
[0028] 为了更清楚地说明本申请实施例中的技术方案, 下面将对实施例或现有技术描 述中所需要使用的附图作简单地介绍, 显而易见地, 下面描述中的附图仅仅是 本申请的一些实施例, 对于本领域普通技术人员来讲, 在不付出创造性劳动性 的前提下, 还可以根据这些附图获得其他的附图。
[0029] 图 1为本申请实施例中一种流媒体数据的传输方法一个实施例流程图;
[0030] 图 2为本申请实施例中一种流媒体数据的传输方法在一个应用场景下确定流媒 体服务器的流程示意图;
[0031 ] 图 3为本申请实施例中流媒体服务器的原理示意图;
[0032] 图 4为本申请实施例中一种流媒体服务器一个实施例结构图;
[0033] 图 5为本申请一实施例提供的流媒体服务器的示意图。
本发明的实施方式
[0034] 本申请实施例提供了一种流媒体数据的传输方法、 存储介质和流媒体服务器, 用于解决现有流媒体服务器难以为移动终端的浏览器提供低延吋的流媒体数据 支持的问题。
[0035] 为使得本申请的发明目的、 特征、 优点能够更加的明显和易懂, 下面将结合本 申请实施例中的附图, 对本申请实施例中的技术方案进行清楚、 完整地描述, 显然, 下面所描述的实施例仅仅是本申请一部分实施例, 而非全部的实施例。 基于本申请中的实施例, 本领域普通技术人员在没有做出创造性劳动前提下所 获得的所有其它实施例, 都属于本申请保护的范围。
[0036] 请参阅图 1, 本申请实施例中一种流媒体数据的传输方法一个实施例包括:
[0037] 101、 流媒体服务器接收来自移动终端的浏览器的目标连接请求, 所述目标连 接请求包括连接对象的信息;
[0038] 本实施例中, 当移动终端的用户想要观看实吋的音频直播或者视频直播吋, 用 户可以通过移动终端上的浏览器向流媒体服务器发起连接请求, 本实施例称该 连接请求为目标连接请求。 可以理解的是, 该目标连接请求中可以包括连接对 象的信息, 这里说的连接对象指的是该目标连接请求需要请求连接并获取流媒 体数据的对象的地址或者唯一标识, 流媒体服务器可以依据连接对象从服务器 本地或者网络中寻找到相应的音视频数据。
[0039] 需要说明的是, 本实施例中的目标连接请求由移动终端的浏览器发起, 特别地 , 该浏览器的页面采用 HTML5标准生成。
[0040] 进一步地, 为了避免过多的连接请求均集中在一台服务器上, 导致服务器压力 过大的问题, 本实施例中的流媒体服务器可以部署在一个 CDN (内容分发网络 ) 网络中, 由 CDN网络将不同连接请求分发至不同的服务器上, 在缓解和优化 各个服务器的整体服务压力的同吋提高了各个服务器的服务质量。 因此, 如图 2 所示, 在流媒体服务器接收来自移动终端的浏览器的目标连接请求之前, 本方 法还可以包括:
[0041] 201、 CDN网络的调度中心根据所述移动终端与所述 CDN网络上各个节点服务 器之间的网络连接情况确定所述各个节点服务器中的一个节点服务器作为所述 流媒体服务器;
[0042] 202、 所述流媒体服务器与所述移动终端之间建立基于 websocket协议的数据传 输链路。
[0043] 对于上述步骤 201, 一个 CDN网络上可以部署有多个节点服务器, 这些节点服 务器也称为边缘节点 (即, CDN网络中离客户端访问最近的服务节点) , 由 CD N网络的调度中心进行统一的调度管理。 当某个移动终端需要与 CDN网络上的节 点服务器通信吋, CDN网络可以根据该移动终端与各个节点服务器之间的网络 连接情况, 比如哪个节点服务器与移动终端在网络线路上距离更近、 和 /或哪个 节点服务器当前的服务压力较小等, 从而从各个节点服务器中确定出其中一个 节点服务器作为给所述移动终端提供服务的流媒体服务器。
[0044] 对于上述步骤 202, 在确定出该流媒体服务器之后, 该流媒体服务器可以与所 述移动终端之间建立基于 websocket协议的数据传输链路。
[0045] 更进一步地, 所述流媒体服务器可以通过预设在所述流媒体服务器上的 websoc ket服务程序完成与所述移动终端之间的数据传输链路的建立。 其中, 所述 webso cket服务程序预先部署在所述 CDN网络上, 并通过所述 CDN网络的内部服务更新 渠道以二进制文件形式自动同步到所述各个节点服务器上。 可以理解的是, web socket服务程序以二进制文件的形式被执行, 可以大大减少 websocket服务程序在 CDN网络的各个节点服务器上部署扩展的代价和成本, 提高服务程序的部署、 更新效率。
[0046] 102、 所述流媒体服务器创建一个与所述目标连接请求对应的目标事件处理器 , 所述目标事件处理器采用 websocket协议与所述移动终端的浏览器进行数据传 输;
[0047] 在该流媒体服务器中, 通过各个事件处理器来分别与各个不同的连接请求进行 数据传输。 具体地, 该流媒体服务器可以预先利用 go语言的官方维护的标准包 g o.net中的 websocket包来创建各个 Handler, 即各个事件处理器。 这些事件处理器 可以主要针对 HTTP请求。 其中, 该流媒体服务器可以将采用特定规则设置的 ws 地址 (例如 ws://.. Jws/stream_name,该地址代表一路流, stream_name代表任意流 名称) 分别绑定这些 Handler, —个 ws地址绑定一个 Handler。
[0048] 当该流媒体服务器接收到该目标连接请求之后, 该目标连接请求可以触发流媒 体服务器上的一个空闲的 handler, 触发的这个 handler随即与该目标连接请求建 立对应关系, 并且该 handler作为目标事件处理器采用 websocket协议与所述移动 终端的浏览器进行数据传输。
[0049] 103、 所述流媒体服务器査询是否已存在其它连接请求的连接对象与所述目标 连接请求的连接对象相同, 若是, 则执行步骤 104, 若否, 则执行步骤 105 ; [0050] 基于快速获取流媒体数据方面的考虑, 若流媒体服务器上已存在某个连接请求 的连接对象与该目标连接请求的连接对象相同, 则表示该目标连接请求需要获 取的流媒体数据已被另一个连接请求提前获取到, 而另一个连接请求获取的这 些流媒体数据目前正缓存在该流媒体服务器上。 因此, 该流媒体服务器无需另 外再为目标连接请求重新获取相同的流媒体数据, 直接将另一个连接请求获取 的流媒体数据重复利用, 提供给该移动终端的浏览器即可。 反之, 若流媒体服 务器査询后发现并不存在某个连接请求的连接对象与所述目标连接请求的连接 对象相同, 则可以执行步骤 105。
[0051] 进一步地, 如图 3所示, 所述流媒体服务器可以预先建立流媒体连接池, 所述 流媒体连接池用于存储和管理当前各路连接请求的流管理对象, 流管理对象记 录有与其对应的连接请求的连接对象的信息。 其中, 上述步骤 103可以具体为: 所述流媒体服务器査询所述流媒体连接池的各个流管理对象中是否已存在其它 连接请求的连接对象与所述目标连接请求的连接对象相同。
[0052] 若不存在其它连接请求的连接对象与所述目标连接请求的连接对象相同, 则在 步骤 105之前, 所述流媒体服务器还可以将所述目标连接请求对应的流管理对象 注册进所述流媒体连接池。
[0053] 参阅图 3, 该流媒体服务器上的流媒体连接池可以通过 go语言的 map对象创建, 存储当前连接的 StreamManager信息, 即流管理对象。 每个连接请求对应的 Strea mManager成功建立之后, 流媒体连接池可以为该 StreamManager分配一个池内连 接对象 Conn, 该池内连接对象 Conn用于标识该 StreamManager对应的目标连接请 求。 另外, 该 StreamManager还可以记录有对应的连接请求的连接对象的信息, 这里的连接对象可以根据 stream—name进行区分。 因此, 若流媒体服务器査找到 当前流媒体连接池中两个 StreamManager记录的 stream_name相同, 则可以认为这 两个 StreamManager对应的连接请求具有相同的连接对象, 也即代表这两个连接 请求之间的流媒体数据可以复用。 对于这里所说的复用, 由于前一个连接请求 通常已建立有对应的缓冲队列, 因此后一个连接请求直接可以与前一个连接请 求共用一个已有的缓冲队列即可。
[0054] 反之, 若不存在两个连接请求具有相同的连接对象吋, 表明当前的目标连接请 求无法利用一个已有的缓冲队列, 因此, 需要将该目标连接请求对应的 StreamM anager注册进所述流媒体连接池, 以便于后续建立该目标连接请求对应的缓冲队 列。
[0055] 104、 所述流媒体服务器将第一连接请求对应的缓冲队列中的流媒体数据复用 至所述目标事件处理器, 以便于所述目标事件处理器将复用得到的流媒体数据 发送给所述移动终端的浏览器; 所述第一连接请求是指所述其它连接请求中连 接对象与所述目标连接请求的连接对象相同的连接请求;
[0056] 可以理解的是, 当存在可以复用的第一连接请求吋, 将该第一连接请求对应缓 冲队列中的流媒体数据交给目标事件处理器, 从而目标事件处理器将这些流媒 体数据发送给移动终端的浏览器, 实现了流媒体数据的快速获取; 由于采用了 数据复用的方式, 该流媒体服务器可以更加高效地为该移动终端的浏览器提供 流媒体数据的支持服务。
[0057] 105、 所述流媒体服务器创建一个与所述目标连接请求对应的新的缓冲队列;
[0058] 可以理解的是, 当不存在其它连接请求的连接对象与所述目标连接请求的连接 对象相同吋, 则流媒体服务器需要为该目标连接请求提供一个新的缓冲队列, 以便于为该目标连接请求获取流媒体数据。
[0059] 其中, 进一步地, 所述流媒体服务器可以预先建立缓冲区, 所述缓冲区用于存 放各路连接请求对应的缓冲队列。 并且, 为了提高缓冲区的利用率以及保证流 媒体服务器提供流媒体数据服务的质量、 效率, 所述流媒体服务器可以根据当 前的流媒体数据获取速度调整所述缓冲区的大小; 其中, 当前的流媒体数据获 取速度越快, 则调整后的所述缓冲区越小; 当前的流媒体数据获取速度越慢, 则调整后的所述缓冲区越大。
[0060] 需要说明的是, 由于各个连接请求之间存在缓冲队列复用的情况, 因此流媒体 服务器在创建新的缓冲队列吋, 可以只为在流媒体连接池中注册的 StreamManag er创建对应的缓冲队列。 可以理解的是, 若目标连接请求可以复用其它连接请求 的缓冲队列, 则该目标连接请求对应的 StreamManager无需注册进流媒体连接池 ; 反之, 若目标连接请求没有可以复用的其它连接请求的缓冲队列, 则该目标 连接请求对应的 StreamManager注册进该流媒体连接池, 因此, 流媒体服务器为 流媒体连接池中注册的 StreamManager创建对应的缓冲队列, 也即相当于流媒体 服务器为无法采用数据复用方式获取到流媒体数据的连接请求创建对应的缓冲 队列。
[0061] 106、 所述流媒体服务器根据所述目标连接请求的连接对象的信息提取相应的 流媒体数据;
[0062] 可以理解的是, 目标连接请求的连接对象的信息可以是某个音视频数据的存储 地址或者唯一标识等, 流媒体服务器可以根据这个连接对象的信息从服务器本 地或者网络中寻找到相应的音视频数据。
[0063] 特别地, 若该连接对象存放于其它节点服务器上, 如图 3所示, 该流媒体服务 器可以通过 StreamManager获取对应的缓冲队列, 然后通过该缓冲队列与连接对 象所在的节点服务器建立 RTMP连接, 从而可以从该节点服务器上取流至缓冲队 列中。 其中, 取流得到的流媒体数据可以以 RTMP数据包的格式缓存在流媒体服 务器上对应的缓冲队列。
[0064] 如图 3所示, 为了便于管理各个缓冲队列与 CDN网络中的其它节点服务器或网 络中的其它服务器之间的 RTMP连接, 该流媒体服务器可以预先建立一个 RTMP 连接池, 该 RTMP连接池用于管理这些 RTM连接。 另外, 还可以结合 RTMP和 we bsocket流服务在程序上统一设计, 或者提供共享内存进行跨进程访问, 从而可 以实现 RTMP连接的缓冲数据从节点服务器上现有的 RTMP连接池中获取, 达到 最大限度地复用流媒体服务器上的流媒体数据, 对此本实施例不作具体限定。
[0065] 107、 所述流媒体服务器将提取得到的流媒体数据通过所述新的缓冲队列分发 至所述目标事件处理器, 以便于所述目标事件处理器将提取得到的流媒体数据 发送给所述移动终端的浏览器。
[0066] 本实施例中, 目标事件处理器采用 websocket协议与所述移动终端的浏览器进行 数据传输, 在流媒体服务器提取得到流媒体数据之后, 该目标事件处理器可以 将提取到的这些流媒体数据发送给移动终端的浏览器。
[0067] 进一步地, 在流媒体服务器预先建立有流媒体连接池、 缓冲区和 /或 RTMP连接 池的基础上, 该流媒体服务器还可以设置有统计数据收集进程 Data collector和流 媒体监控进程 monitor 流媒体服务器可以通过 Go预言建立 Monitor, 并通过 RPC (remote procedure call远程过程调用) 机制注册远程过程调用, 将连接统计数据 (RTMP连接数、 各个缓冲队列大小、 网络连接情况、 客户端请求 IP、 异常次数 、 CPU使用率等) 作为参数传递给 Monitor进行统计, Monitor负责收集参数信息 并根据这些参数信息判断是否需要向 CDN网络的调度中心发起报警信号; 另外 , 其还可以定吋通过 CDN内部信令通道 (例如: HTTP或 TCP连接), 按照 CDN内 部数据传输协议, 提交该流媒体服务器的 WebSocket流连接状态至调度中心。
[0068] 当流媒体数据获取不正常或者是某个节点服务器出现访问故障吋, Monitor可 以按照故障的严重程度及吋上报至调度中心。 另外, 当 websocket服务程序崩溃 吋, 该 Monitor还可以收集相关的系统信息, 并对 websocket服务程序尝试进行重 启操作, 以保证 websocket服务程序的高可用性。
[0069] 可以理解的是, CDN网络的调度中心根据 Monitor的反馈信息可以对各个节点 服务器当前的服务压力进行及吋的调整, 从而尽可能地提高 CDN网络中各个节 点服务器的服务质量, 尤其是缓解在特殊吋段 (比如网络繁忙吋段) 各个节点 服务器的服务压力。
[0070] 本实施例中, 首先, 流媒体服务器接收来自移动终端的浏览器的目标连接请求 , 所述目标连接请求包括连接对象的信息; 然后, 所述流媒体服务器创建一个 与所述目标连接请求对应的目标事件处理器, 所述目标事件处理器采用 websocke t协议与所述移动终端的浏览器进行数据传输; 接着, 所述流媒体服务器査询是 否已存在其它连接请求的连接对象与所述目标连接请求的连接对象相同; 若是 , 则所述流媒体服务器将第一连接请求对应的缓冲队列中的流媒体数据复用至 所述目标事件处理器, 以便于所述目标事件处理器将复用得到的流媒体数据发 送给所述移动终端的浏览器; 所述第一连接请求是指所述其它连接请求中连接 对象与所述目标连接请求的连接对象相同的连接请求; 若否, 则所述流媒体服 务器创建一个与所述目标连接请求对应的新的缓冲队列, 根据所述目标连接请 求的连接对象的信息提取相应的流媒体数据, 并将提取得到的流媒体数据通过 所述新的缓冲队列分发至所述目标事件处理器, 以便于所述目标事件处理器将 提取得到的流媒体数据发送给所述移动终端的浏览器。 可知, 上述的流媒体服 务器在接收到目标连接请求之后, 可以检査该目标连接请求的连接对象是否已 经有其它连接请求连接过, 若是, 则可以复用其它连接请求的流媒体数据, 快 速完成流媒体数据的获取, 若否, 则建立新的缓冲队列, 提取流媒体数据至新 的缓冲队列, 以便于后续其它连接请求的复用; 在获取到流媒体数据之后, 流 媒体服务器通过 websocket协议发送至移动终端的浏览器, 基于 websocket协议对 移动终端浏览器的高度支持, 可持续完成流媒体数据的传输, 减少数据传输的 吋延, 再加上数据复用方式对流媒体数据完成快速获取, 该流媒体服务器可以 为移动终端的浏览器提供低延吋的流媒体数据支持服务。
[0071] 应理解, 上述实施例中各步骤的序号的大小并不意味着执行顺序的先后, 各过 程的执行顺序应以其功能和内在逻辑确定, 而不应对本申请实施例的实施过程 构成任何限定。
[0072] 上面主要描述了一种流媒体数据的传输方法, 下面将对一种流媒体服务器进行 详细描述。
[0073] 图 4示出了本申请实施例中一种流媒体服务器一个实施例结构图。
[0074] 本实施例中, 一种流媒体服务器包括:
[0075] 连接请求接收模块 401, 用于接收来自移动终端的浏览器的目标连接请求, 所 述目标连接请求包括连接对象的信息;
[0076] 事件处理器创建模块 402, 用于创建一个与所述目标连接请求对应的目标事件 处理器, 所述目标事件处理器采用 websocket协议与所述移动终端的浏览器进行 数据传输;
[0077] 査询模块 403, 用于査询是否已存在其它连接请求的连接对象与所述目标连接 请求的连接对象相同;
[0078] 数据复用模块 404, 用于若所述査询模块 403的査询结果为是, 则所述流媒体服 务器将第一连接请求对应的缓冲队列中的流媒体数据复用至所述目标事件处理 器, 以便于所述目标事件处理器将复用得到的流媒体数据发送给所述移动终端 的浏览器; 所述第一连接请求是指所述其它连接请求中连接对象与所述目标连 接请求的连接对象相同的连接请求;
[0079] 流媒体数据提取模块 405, 用于若所述査询模块 403的査询结果为否, 则所述流 媒体服务器创建一个与所述目标连接请求对应的新的缓冲队列, 根据所述目标 连接请求的连接对象的信息提取相应的流媒体数据, 并将提取得到的流媒体数 据通过所述新的缓冲队列分发至所述目标事件处理器, 以便于所述目标事件处 理器将提取得到的流媒体数据发送给所述移动终端的浏览器。
[0080] 进一步地, 所述流媒体服务器可以预先建立流媒体连接池, 所述流媒体连接池 用于存储和管理当前各路连接请求的流管理对象, 流管理对象记录有与其对应 的连接请求的连接对象的信息;
[0081] 所述査询模块包括: 连接对象査询单元, 用于査询所述流媒体连接池的各个流 管理对象中是否已存在其它连接请求的连接对象与所述目标连接请求的连接对 象相同;
[0082] 所述流媒体服务器还可以包括: 流管理注册模块, 用于将所述目标连接请求对 应的流管理对象注册进所述流媒体连接池。
[0083] 进一步地, 所述流媒体服务器可以预先建立缓冲区, 所述缓冲区用于存放各路 连接请求对应的缓冲队列;
[0084] 所述流媒体服务器还可以包括:
[0085] 缓冲区调整模块, 用于根据当前的流媒体数据获取速度调整所述缓冲区的大小
; 其中, 当前的流媒体数据获取速度越快, 则调整后的所述缓冲区越小; 当前 的流媒体数据获取速度越慢, 则调整后的所述缓冲区越大。
[0086] 进一步地, CDN网络的调度中心根据所述移动终端与所述 CDN网络上各个节点 服务器之间的网络连接情况确定所述各个节点服务器中的一个节点服务器作为 所述流媒体服务器;
[0087] 所述流媒体服务器还可以包括: 传输链路建立模块, 用于所述流媒体服务器与 所述移动终端之间建立基于 websocket协议的数据传输链路。
[0088] 进一步地, 所述传输链路建立模块可以包括: 服务程序建立单元, 用于通过预 设在所述流媒体服务器上的 websocket服务程序完成与所述移动终端之间的数据 传输链路的建立; 其中, 所述 websocket服务程序预先部署在所述 CDN网络上, 并通过所述 CDN网络的内部服务更新渠道以二进制文件形式自动同步到所述各 个节点服务器上。
[0089] 图 5是本申请一实施例提供的流媒体服务器的示意图。 如图 5所示, 该实施例的 流媒体服务器 5包括: 处理器 50、 存储器 51以及存储在所述存储器 51中并可在所 述处理器 50上运行的计算机可读指令 52, 例如执行流媒体数据的传输方法的程 序。 所述处理器 50执行所述计算机可读指令 52吋实现上述各个流媒体数据的传 输方法实施例中的步骤, 例如图 1所示的步骤 101至 107。 或者, 所述处理器 50执 行所述计算机可读指令 52吋实现上述各装置实施例中各模块 /单元的功能, 例如 图 4所示模块 401至 405的功能。
[0090] 示例性的, 所述计算机可读指令 52可以被分割成一个或多个模块 /单元, 所述 一个或者多个模块 /单元被存储在所述存储器 51中, 并由所述处理器 50执行, 以 完成本申请。 所述一个或多个模块 /单元可以是能够完成特定功能的一系列计算 机可读指令指令段, 该指令段用于描述所述计算机可读指令 52在所述流媒体服 务器 5中的执行过程。
[0091] 所述流媒体服务器 5可以是桌上型计算机、 笔记本、 掌上电脑及云端服务器等 计算设备。 所述流媒体服务器可包括, 但不仅限于, 处理器 50、 存储器 51。 本 领域技术人员可以理解, 图 5仅仅是流媒体服务器 5的示例, 并不构成对流媒体 服务器 5的限定, 可以包括比图示更多或更少的部件, 或者组合某些部件, 或者 不同的部件, 例如所述流媒体服务器还可以包括输入输出设备、 网络接入设备 、 总线等。
[0092] 所述处理器 50可以是中央处理单元 (Central Processing Unit, CPU) , 还可以是其 他通用处理器、 数字信号处理器(Digital Signal Processor, DSP)、 专用集成电路 (Application Specific Integrated Circuit, ASIC)、 现成可编程门阵列
(Field-Programmable Gate Array , FPGA)或者其他可编程逻辑器件、 分立门或者 晶体管逻辑器件、 分立硬件组件等。 通用处理器可以是微处理器或者该处理器 也可以是任何常规的处理器等。
[0093] 所述存储器 51可以是所述流媒体服务器 5的内部存储单元, 例如流媒体服务器 5 的硬盘或内存。 所述存储器 51也可以是所述流媒体服务器 5的外部存储设备, 例 如所述流媒体服务器 5上配备的插接式硬盘, 智能存储卡 (Smart Media Card, SMC) , 安全数字 (Secure Digital, SD) 卡, 闪存卡 (Flash Card) 等。 进一步 地, 所述存储器 51还可以既包括所述流媒体服务器 5的内部存储单元也包括外部 存储设备。 所述存储器 51用于存储所述计算机可读指令以及所述流媒体服务器 所需的其他程序和数据。 所述存储器 51还可以用于暂吋地存储已经输出或者将 要输出的数据。
[0094] 另外, 在本申请各个实施例中的各功能单元可以集成在一个处理单元中, 也可 以是各个单元单独物理存在, 也可以两个或两个以上单元集成在一个单元中。 上述集成的单元既可以采用硬件的形式实现, 也可以采用软件功能单元的形式 实现。
[0095] 所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用 吋, 可以存储在一个计算机可读取存储介质中。 基于这样的理解, 本申请的技 术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分 可以以软件产品的形式体现出来, 该计算机软件产品存储在一个存储介质中, 包括若干指令用以使得一台计算机设备 (可以是个人计算机, 服务器, 或者网 络设备等) 执行本申请各个实施例所述方法的全部或部分步骤。 而前述的存储 介质包括: U盘、 移动硬盘、 只读存储器 (ROM, Read-Only Memory) 、 随机 存取存储器 (RAM, Random Access Memory) 、 磁碟或者光盘等各种可以存储 程序代码的介质。
[0096] 以上所述, 以上实施例仅用以说明本申请的技术方案, 而非对其限制; 尽管参 照前述实施例对本申请进行了详细的说明, 本领域的普通技术人员应当理解: 其依然可以对前述各实施例所记载的技术方案进行修改, 或者对其中部分技术 特征进行等同替换; 而这些修改或者替换, 并不使相应技术方案的本质脱离本 申请各实施例技术方案的精神和范围。

Claims

权利要求书
[权利要求 1] 一种流媒体数据的传输方法, 其特征在于, 包括:
流媒体服务器接收来自移动终端的浏览器的目标连接请求, 所述目标 连接请求包括连接对象的信息;
所述流媒体服务器创建一个与所述目标连接请求对应的目标事件处理 器, 所述目标事件处理器采用 websocket协议与所述移动终端的浏览 器进行数据传输;
所述流媒体服务器査询是否已存在其它连接请求的连接对象与所述目 标连接请求的连接对象相同;
若已存在其它连接请求的连接对象与所述目标连接请求的连接对象相 同, 则所述流媒体服务器将第一连接请求对应的缓冲队列中的流媒体 数据复用至所述目标事件处理器, 以便于所述目标事件处理器将复用 得到的流媒体数据发送给所述移动终端的浏览器; 所述第一连接请求 是指所述其它连接请求中连接对象与所述目标连接请求的连接对象相 同的连接请求;
若不存在其它连接请求的连接对象与所述目标连接请求的连接对象相 同, 则所述流媒体服务器创建一个与所述目标连接请求对应的新的缓 冲队列, 根据所述目标连接请求的连接对象的信息提取相应的流媒体 数据, 并将提取得到的流媒体数据通过所述新的缓冲队列分发至所述 目标事件处理器, 以便于所述目标事件处理器将提取得到的流媒体数 据发送给所述移动终端的浏览器。
[权利要求 2] 根据权利要求 1所述的流媒体数据的传输方法, 其特征在于, 所述流 媒体服务器预先建立流媒体连接池, 所述流媒体连接池用于存储和管 理当前各路连接请求的流管理对象, 流管理对象记录有与其对应的连 接请求的连接对象的信息;
所述流媒体服务器査询是否已存在其它连接请求的连接对象与所述目 标连接请求的连接对象相同具体为: 所述流媒体服务器査询所述流媒 体连接池的各个流管理对象中是否已存在其它连接请求的连接对象与 所述目标连接请求的连接对象相同;
若不存在其它连接请求的连接对象与所述目标连接请求的连接对象相 同, 则在所述流媒体服务器创建一个与所述目标连接请求对应的新的 缓冲队列之前, 所述流媒体服务器将所述目标连接请求对应的流管理 对象注册进所述流媒体连接池。
[权利要求 3] 根据权利要求 1所述的流媒体数据的传输方法, 其特征在于, 所述流 媒体服务器预先建立缓冲区, 所述缓冲区用于存放各路连接请求对应 的缓冲队列;
所述流媒体数据的传输方法还包括:
所述流媒体服务器根据当前的流媒体数据获取速度调整所述缓冲区的 大小; 其中, 当前的流媒体数据获取速度越快, 则调整后的所述缓冲 区越小; 当前的流媒体数据获取速度越慢, 则调整后的所述缓冲区越 大。
[权利要求 4] 根据权利要求 1至 3中任意一项所述的流媒体数据的传输方法, 其特征 在于, 在流媒体服务器接收来自移动终端的浏览器的目标连接请求之 前, 还包括 =
CDN网络的调度中心根据所述移动终端与所述 CDN网络上各个节点 服务器之间的网络连接情况确定所述各个节点服务器中的一个节点服 务器作为所述流媒体服务器;
所述流媒体服务器与所述移动终端之间建立基于 websocket协议的数 据传输链路。
[权利要求 5] 根据权利要求 4所述的流媒体数据的传输方法, 其特征在于, 所述流 媒体服务器通过预设在所述流媒体服务器上的 websocket服务程序完 成与所述移动终端之间的数据传输链路的建立; 其中, 所述 websocke t服务程序预先部署在所述 CDN网络上, 并通过所述 CDN网络的内部 服务更新渠道以二进制文件形式自动同步到所述各个节点服务器上。
[权利要求 6] —种计算机可读存储介质, 所述计算机可读存储介质存储有计算机可 读指令, 其特征在于, 所述计算机可读指令被处理器执行吋实现如下 步骤:
流媒体服务器接收来自移动终端的浏览器的目标连接请求, 所述目标 连接请求包括连接对象的信息;
所述流媒体服务器创建一个与所述目标连接请求对应的目标事件处理 器, 所述目标事件处理器采用 websocket协议与所述移动终端的浏览 器进行数据传输;
所述流媒体服务器査询是否已存在其它连接请求的连接对象与所述目 标连接请求的连接对象相同;
若已存在其它连接请求的连接对象与所述目标连接请求的连接对象相 同, 则所述流媒体服务器将第一连接请求对应的缓冲队列中的流媒体 数据复用至所述目标事件处理器, 以便于所述目标事件处理器将复用 得到的流媒体数据发送给所述移动终端的浏览器; 所述第一连接请求 是指所述其它连接请求中连接对象与所述目标连接请求的连接对象相 同的连接请求;
若不存在其它连接请求的连接对象与所述目标连接请求的连接对象相 同, 则所述流媒体服务器创建一个与所述目标连接请求对应的新的缓 冲队列, 根据所述目标连接请求的连接对象的信息提取相应的流媒体 数据, 并将提取得到的流媒体数据通过所述新的缓冲队列分发至所述 目标事件处理器, 以便于所述目标事件处理器将提取得到的流媒体数 据发送给所述移动终端的浏览器。
[权利要求 7] 根据权利要求 6所述的计算机可读存储介质, 其特征在于, 所述流媒 体服务器预先建立流媒体连接池, 所述流媒体连接池用于存储和管理 当前各路连接请求的流管理对象, 流管理对象记录有与其对应的连接 请求的连接对象的信息;
所述流媒体服务器査询是否已存在其它连接请求的连接对象与所述目 标连接请求的连接对象相同具体为: 所述流媒体服务器査询所述流媒 体连接池的各个流管理对象中是否已存在其它连接请求的连接对象与 所述目标连接请求的连接对象相同; 若不存在其它连接请求的连接对象与所述目标连接请求的连接对象相 同, 则在所述流媒体服务器创建一个与所述目标连接请求对应的新的 缓冲队列之前, 所述流媒体服务器将所述目标连接请求对应的流管理 对象注册进所述流媒体连接池。
[权利要求 8] 根据权利要求 6所述的计算机可读存储介质, 其特征在于, 所述流媒 体服务器预先建立缓冲区, 所述缓冲区用于存放各路连接请求对应的 缓冲队列;
所述计算机可读指令被处理器执行吋还包括:
所述流媒体服务器根据当前的流媒体数据获取速度调整所述缓冲区的 大小; 其中, 当前的流媒体数据获取速度越快, 则调整后的所述缓冲 区越小; 当前的流媒体数据获取速度越慢, 则调整后的所述缓冲区越 大。
[权利要求 9] 根据权利要求 6至 8中任意一项所述的计算机可读存储介质, 其特征在 于, 在流媒体服务器接收来自移动终端的浏览器的目标连接请求之前 , 还包括:
CDN网络的调度中心根据所述移动终端与所述 CDN网络上各个节点 服务器之间的网络连接情况确定所述各个节点服务器中的一个节点服 务器作为所述流媒体服务器;
所述流媒体服务器与所述移动终端之间建立基于 websocket协议的数 据传输链路。
[权利要求 10] 根据权利要求 9所述的计算机可读存储介质, 其特征在于, 所述流媒 体服务器通过预设在所述流媒体服务器上的 websocket服务程序完成 与所述移动终端之间的数据传输链路的建立; 其中, 所述 websocket 服务程序预先部署在所述 CDN网络上, 并通过所述 CDN网络的内部 服务更新渠道以二进制文件形式自动同步到所述各个节点服务器上。
[权利要求 11] 一种流媒体服务器, 包括存储器、 处理器以及存储在所述存储器中并 可在所述处理器上运行的计算机可读指令, 其特征在于, 所述处理器 执行所述计算机可读指令吋实现如下步骤: 流媒体服务器接收来自移动终端的浏览器的目标连接请求, 所述目标 连接请求包括连接对象的信息;
所述流媒体服务器创建一个与所述目标连接请求对应的目标事件处理 器, 所述目标事件处理器采用 websocket协议与所述移动终端的浏览 器进行数据传输;
所述流媒体服务器査询是否已存在其它连接请求的连接对象与所述目 标连接请求的连接对象相同;
若已存在其它连接请求的连接对象与所述目标连接请求的连接对象相 同, 则所述流媒体服务器将第一连接请求对应的缓冲队列中的流媒体 数据复用至所述目标事件处理器, 以便于所述目标事件处理器将复用 得到的流媒体数据发送给所述移动终端的浏览器; 所述第一连接请求 是指所述其它连接请求中连接对象与所述目标连接请求的连接对象相 同的连接请求;
若不存在其它连接请求的连接对象与所述目标连接请求的连接对象相 同, 则所述流媒体服务器创建一个与所述目标连接请求对应的新的缓 冲队列, 根据所述目标连接请求的连接对象的信息提取相应的流媒体 数据, 并将提取得到的流媒体数据通过所述新的缓冲队列分发至所述 目标事件处理器, 以便于所述目标事件处理器将提取得到的流媒体数 据发送给所述移动终端的浏览器。
[权利要求 12] 根据权利要求 11所述的流媒体服务器, 其特征在于, 所述流媒体服务 器预先建立流媒体连接池, 所述流媒体连接池用于存储和管理当前各 路连接请求的流管理对象, 流管理对象记录有与其对应的连接请求的 连接对象的信息;
所述流媒体服务器査询是否已存在其它连接请求的连接对象与所述目 标连接请求的连接对象相同具体为: 所述流媒体服务器査询所述流媒 体连接池的各个流管理对象中是否已存在其它连接请求的连接对象与 所述目标连接请求的连接对象相同;
若不存在其它连接请求的连接对象与所述目标连接请求的连接对象相 同, 则在所述流媒体服务器创建一个与所述目标连接请求对应的新的 缓冲队列之前, 所述流媒体服务器将所述目标连接请求对应的流管理 对象注册进所述流媒体连接池。
[权利要求 13] 根据权利要求 11所述的流媒体服务器, 其特征在于, 所述流媒体服务 器预先建立缓冲区, 所述缓冲区用于存放各路连接请求对应的缓冲队 列;
所述处理器执行所述计算机可读指令吋还包括: 所述流媒体服务器根据当前的流媒体数据获取速度调整所述缓冲区的 大小; 其中, 当前的流媒体数据获取速度越快, 则调整后的所述缓冲 区越小; 当前的流媒体数据获取速度越慢, 则调整后的所述缓冲区越 大。
[权利要求 14] 根据权利要求 11至 13中任意一项所述的流媒体服务器, 其特征在于, 在流媒体服务器接收来自移动终端的浏览器的目标连接请求之前, 还 包括:
CDN网络的调度中心根据所述移动终端与所述 CDN网络上各个节点 服务器之间的网络连接情况确定所述各个节点服务器中的一个节点服 务器作为所述流媒体服务器;
所述流媒体服务器与所述移动终端之间建立基于 websocket协议的数 据传输链路。
[权利要求 15] 根据权利要求 14所述的流媒体服务器, 其特征在于, 所述流媒体服务 器通过预设在所述流媒体服务器上的 websocket服务程序完成与所述 移动终端之间的数据传输链路的建立; 其中, 所述 websocket服务程 序预先部署在所述 CDN网络上, 并通过所述 CDN网络的内部服务更 新渠道以二进制文件形式自动同步到所述各个节点服务器上。
[权利要求 16] —种流媒体服务器, 其特征在于, 包括:
连接请求接收模块, 用于接收来自移动终端的浏览器的目标连接请求 , 所述目标连接请求包括连接对象的信息;
事件处理器创建模块, 用于创建一个与所述目标连接请求对应的目标 事件处理器, 所述目标事件处理器采用 websocket协议与所述移动终 端的浏览器进行数据传输;
査询模块, 用于査询是否已存在其它连接请求的连接对象与所述目标 连接请求的连接对象相同;
数据复用模块, 用于若所述査询模块的査询结果为是, 则所述流媒体 服务器将第一连接请求对应的缓冲队列中的流媒体数据复用至所述目 标事件处理器, 以便于所述目标事件处理器将复用得到的流媒体数据 发送给所述移动终端的浏览器; 所述第一连接请求是指所述其它连接 请求中连接对象与所述目标连接请求的连接对象相同的连接请求; 流媒体数据提取模块, 用于若所述査询模块的査询结果为否, 则所述 流媒体服务器创建一个与所述目标连接请求对应的新的缓冲队列, 根 据所述目标连接请求的连接对象的信息提取相应的流媒体数据, 并将 提取得到的流媒体数据通过所述新的缓冲队列分发至所述目标事件处 理器, 以便于所述目标事件处理器将提取得到的流媒体数据发送给所 述移动终端的浏览器。
[权利要求 17] 根据权利要求 16所述的流媒体服务器, 其特征在于, 所述流媒体服务 器预先建立流媒体连接池, 所述流媒体连接池用于存储和管理当前各 路连接请求的流管理对象, 流管理对象记录有与其对应的连接请求的 连接对象的信息;
所述査询模块包括: 连接对象査询单元, 用于査询所述流媒体连接池 的各个流管理对象中是否已存在其它连接请求的连接对象与所述目标 连接请求的连接对象相同;
所述流媒体服务器还包括: 流管理注册模块, 用于将所述目标连接请 求对应的流管理对象注册进所述流媒体连接池。
[权利要求 18] 根据权利要求 16所述的流媒体服务器, 其特征在于, 所述流媒体服务 器预先建立缓冲区, 所述缓冲区用于存放各路连接请求对应的缓冲队 列;
所述流媒体服务器还包括: 缓冲区调整模块, 用于根据当前的流媒体数据获取速度调整所述缓冲 区的大小; 其中, 当前的流媒体数据获取速度越快, 则调整后的所述 缓冲区越小; 当前的流媒体数据获取速度越慢, 则调整后的所述缓冲 区越大。
[权利要求 19] 根据权利要求 16至 18中任一项所述的流媒体服务器, 其特征在于, C
DN网络的调度中心根据所述移动终端与所述 CDN网络上各个节点服 务器之间的网络连接情况确定所述各个节点服务器中的一个节点服务 器作为所述流媒体服务器;
所述流媒体服务器还包括: 传输链路建立模块, 用于所述流媒体服务 器与所述移动终端之间建立基于 websocket协议的数据传输链路。
[权利要求 20] 根据权利要求 19所述的流媒体服务器, 其特征在于, 所述传输链路建 立模块包括: 服务程序建立单元, 用于通过预设在所述流媒体服务器 上的 websocket服务程序完成与所述移动终端之间的数据传输链路的 建立; 其中, 所述 websocket服务程序预先部署在所述 CDN网络上, 并通过所述 CDN网络的内部服务更新渠道以二进制文件形式自动同 步到所述各个节点服务器上。
PCT/CN2017/104536 2017-07-24 2017-09-29 一种流媒体数据的传输方法、存储介质和流媒体服务器 WO2019019371A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201710605614.6 2017-07-24
CN201710605614.6A CN107404480B (zh) 2017-07-24 2017-07-24 一种流媒体数据的传输方法、存储介质和流媒体服务器

Publications (1)

Publication Number Publication Date
WO2019019371A1 true WO2019019371A1 (zh) 2019-01-31

Family

ID=60401403

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2017/104536 WO2019019371A1 (zh) 2017-07-24 2017-09-29 一种流媒体数据的传输方法、存储介质和流媒体服务器

Country Status (2)

Country Link
CN (1) CN107404480B (zh)
WO (1) WO2019019371A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113691827A (zh) * 2021-08-26 2021-11-23 维沃移动通信有限公司 媒体流传输方法及装置
CN113824777A (zh) * 2021-09-06 2021-12-21 武汉中科通达高新技术股份有限公司 数据管理方法和数据管理装置
CN113840269A (zh) * 2021-08-06 2021-12-24 深圳Tcl新技术有限公司 一种多媒体数据传输方法、装置、电子设备和存储介质
CN114125493A (zh) * 2021-11-22 2022-03-01 威创集团股份有限公司 一种流媒体的分布式存储方法、装置和设备

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109413453B (zh) * 2018-10-19 2021-08-27 广州酷狗计算机科技有限公司 视频播放方法、装置、终端及存储介质
CN111367868B (zh) * 2018-12-26 2023-12-29 三六零科技集团有限公司 一种文件获取请求的处理方法和装置
CN109831511B (zh) 2019-02-18 2020-10-23 华为技术有限公司 调度内容分发网络cdn边缘节点的方法及设备
CN112995753B (zh) * 2019-12-16 2024-03-22 中兴通讯股份有限公司 一种媒体流分发方法、cdn节点服务器、cdn系统和可读存储介质
CN111586140A (zh) * 2020-04-30 2020-08-25 深圳市优必选科技股份有限公司 一种数据交互的方法及服务器
CN113553525A (zh) * 2021-07-20 2021-10-26 上海众源网络有限公司 一种界面控制请求处理方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105409183A (zh) * 2013-08-23 2016-03-16 华为技术有限公司 用于在html5应用中实现任何网络功能客户端或服务器的系统和设备
CN105828046A (zh) * 2016-05-16 2016-08-03 浙江宇视科技有限公司 一种数据流的传输方法和装置
CN106453451A (zh) * 2015-08-08 2017-02-22 陈昶宇 共享自适应内容数据链路快取缓存网络技术(sadcn)
CN106850706A (zh) * 2015-12-04 2017-06-13 南宁富桂精密工业有限公司 流媒体数据传输系统、传输方法及数据分发服务器

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7975282B2 (en) * 2007-11-01 2011-07-05 Sharp Laboratories Of America, Inc. Distributed cache algorithms and system for time-shifted, and live, peer-to-peer video streaming
CN101184021B (zh) * 2007-12-14 2010-06-02 成都市华为赛门铁克科技有限公司 一种实现流媒体缓存置换的方法、设备及系统
US9906590B2 (en) * 2015-08-20 2018-02-27 Verizon Digital Media Services Inc. Intelligent predictive stream caching
CN106604043A (zh) * 2016-12-30 2017-04-26 Ut斯达康(深圳)技术有限公司 一种互联网直播方法及直播服务器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105409183A (zh) * 2013-08-23 2016-03-16 华为技术有限公司 用于在html5应用中实现任何网络功能客户端或服务器的系统和设备
CN106453451A (zh) * 2015-08-08 2017-02-22 陈昶宇 共享自适应内容数据链路快取缓存网络技术(sadcn)
CN106850706A (zh) * 2015-12-04 2017-06-13 南宁富桂精密工业有限公司 流媒体数据传输系统、传输方法及数据分发服务器
CN105828046A (zh) * 2016-05-16 2016-08-03 浙江宇视科技有限公司 一种数据流的传输方法和装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113840269A (zh) * 2021-08-06 2021-12-24 深圳Tcl新技术有限公司 一种多媒体数据传输方法、装置、电子设备和存储介质
CN113840269B (zh) * 2021-08-06 2023-11-14 深圳Tcl新技术有限公司 一种多媒体数据传输方法、装置、电子设备和存储介质
CN113691827A (zh) * 2021-08-26 2021-11-23 维沃移动通信有限公司 媒体流传输方法及装置
CN113824777A (zh) * 2021-09-06 2021-12-21 武汉中科通达高新技术股份有限公司 数据管理方法和数据管理装置
CN113824777B (zh) * 2021-09-06 2023-12-19 武汉中科通达高新技术股份有限公司 数据管理方法和数据管理装置
CN114125493A (zh) * 2021-11-22 2022-03-01 威创集团股份有限公司 一种流媒体的分布式存储方法、装置和设备

Also Published As

Publication number Publication date
CN107404480B (zh) 2019-10-29
CN107404480A (zh) 2017-11-28

Similar Documents

Publication Publication Date Title
WO2019019371A1 (zh) 一种流媒体数据的传输方法、存储介质和流媒体服务器
WO2019019370A1 (zh) 一种音视频的直播处理方法、存储介质和一种移动终端
US20180205976A1 (en) Method and apparatus of obtaining video fragment
US9674252B2 (en) System and method for efficient delivery of repetitive multimedia content
EP4027664A1 (en) Method and apparatus for providing network auxiliary information, electronic device, and computer-readable storage medium
WO2014180407A1 (zh) 推送方法及装置
WO2010124550A1 (zh) 内容分发方法、装置与内容分发网络系统
WO2013170835A2 (zh) 直播内容分发系统及方法
CN107734350B (zh) 直播系统及直播方法
WO2013075578A1 (zh) 网络资源文件的离线下载系统和方法
WO2008141538A1 (fr) Procédé, dispositif et système servant à distribuer des données de fichier
CN108881944A (zh) 一种流媒体加速发布方法与系统
WO2020216279A1 (zh) 一种媒体流发送方法、装置和设备
US11089124B2 (en) Hybrid pull and push based streaming
WO2017161757A1 (zh) 一种流媒体文件分发方法及系统
CN102882829A (zh) 一种转码方法及系统
WO2015035816A1 (zh) 一种nginx服务器配置维护方法及系统
US9059941B1 (en) Providing router information according to a programmatic interface
WO2015120766A1 (zh) 一种视频优化系统及方法
US20190190971A1 (en) Reducing latency in multicast delivery of content
WO2017101370A1 (zh) 直播视频的处理方法及装置
WO2016165524A1 (zh) 内容访问方法、无线接入网内容分发网络基站和核心内容分发网络装置
WO2022241990A1 (zh) 一种媒体传输链路管理方法、装置及存储介质
WO2019218474A1 (zh) 一种视频通话服务的响应方法及系统
WO2020124726A1 (zh) 音视频流分发系统中的音视频流分发方法及动态父节点

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17919371

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17919371

Country of ref document: EP

Kind code of ref document: A1

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 06/08/2020)

122 Ep: pct application non-entry in european phase

Ref document number: 17919371

Country of ref document: EP

Kind code of ref document: A1