WO2019200631A1 - 流媒体资源的上传、下载方法、分发系统及流媒体服务器 - Google Patents

流媒体资源的上传、下载方法、分发系统及流媒体服务器 Download PDF

Info

Publication number
WO2019200631A1
WO2019200631A1 PCT/CN2018/086181 CN2018086181W WO2019200631A1 WO 2019200631 A1 WO2019200631 A1 WO 2019200631A1 CN 2018086181 W CN2018086181 W CN 2018086181W WO 2019200631 A1 WO2019200631 A1 WO 2019200631A1
Authority
WO
WIPO (PCT)
Prior art keywords
streaming media
target
media resource
streaming
client
Prior art date
Application number
PCT/CN2018/086181
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 网宿科技股份有限公司
Priority to EP18821981.0A priority Critical patent/EP3598716A4/en
Priority to US16/098,574 priority patent/US11316910B2/en
Publication of WO2019200631A1 publication Critical patent/WO2019200631A1/zh

Links

Images

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/75Media network packet handling
    • 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/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Definitions

  • the present invention relates to the field of Internet technologies, and in particular, to a method for uploading and downloading streaming media resources, a distribution system, and a streaming media server.
  • WebRTC Web Real-Time Communication
  • a point-to-point communication link can usually be established between user A and user B.
  • the specific process can include the following multiple steps:
  • Step 1 User A initiates a query to the P2P server to obtain its own public network address.
  • Step 2 User A generates an Offer SDP according to the streaming media information collected by the user, and sends the Offer SDP to the user B through the signaling server.
  • Step 3 User B accepts and processes the Offer SDP, and generates an Answer SDP according to the streaming media information collected by the hardware, and sends the Answer SDP to the user A through the signaling server transfer;
  • Step 4 User B initiates a query to the P2P server to obtain its own public network address.
  • Step 5 User A generates an ICE Candidate according to its public network address, and transmits it to User B through the signaling server.
  • Step 6 User B generates ICE Candidate according to its public network address, and transmits it to User A through the signaling server.
  • Step 7 Both user A and user B can send their own streaming media to the other party according to the exchanged SDP and ICE Candidate, and receive the streaming media sent by the other party.
  • the conference participants need to perform the above-mentioned standard process with all other users in the conference, so that a communication connection can be established with other users.
  • the streaming media resource needs to be sent to each of the other users separately.
  • N users participating in a video conference such that one of the users needs to perform N-1 times of the above seven steps to establish a communication connection with other users.
  • the streaming media resource needs to be sent N-1 times.
  • the purpose of the application is to provide a method for uploading and downloading streaming media resources, a distribution system, and a streaming media server, which can reduce the network bandwidth requirement and improve the timeliness of communication.
  • the present application provides a method for uploading a streaming media resource, where the method includes: receiving an upload request from a streaming client to a target streaming media resource, where the upload request includes the push Streaming client-supported candidate streaming media information; generating response stream media information based on the candidate streaming media information, and generating an access address for accessing the target streaming media resource; and feeding back the response to the push streaming client Streaming the media information and the access address, so that the push streaming client processes the target streaming media resource according to the response streaming media information, and causes the push streaming client to upload and process according to the access address Targeting the streaming media resource; receiving the processed target streaming media resource uploaded by the push streaming client, and associating the processed target streaming media resource with the response streaming media information.
  • another aspect of the present application further provides a streaming media server, the streaming media server including a memory and a processor, the memory being used to store a computer program, when the computer program is executed by the processor, Implement the above method.
  • the present application further provides a method for downloading a streaming media resource, the method comprising: receiving an acquisition request from a streaming client to a target streaming media resource; determining whether the target exists locally a streaming media resource, if present, generating an access address for accessing the target streaming media resource; feeding back the access address and the target streaming media information associated with the target streaming media resource to the pull streaming client, so as to enable the The pull stream client obtains the target streaming media resource based on the access address and the target streaming media information.
  • another aspect of the present application further provides a streaming media server, the streaming media server including a memory and a processor, the memory being used to store a computer program, when the computer program is executed by the processor, Implement the above method.
  • another aspect of the present application further provides a distribution system for streaming media resources, where the system includes a push streaming client and a streaming media server, where: the push streaming client is used to determine candidates for support And transmitting, to the streaming media server, an upload request that is directed to the target streaming media resource, where the upload request includes the candidate streaming media information; and receiving a response packet returned by the streaming media server, the response packet
  • the method includes the response streaming media information and the access address generated by the streaming media server, processing the target streaming media resource according to the response streaming media information, and uploading the processed target streaming media resource according to the access address;
  • the streaming media server is configured to generate response stream media information based on the candidate streaming media information, and generate an access address for accessing the target streaming media resource, and feed back the response flow to the push streaming client Media information and a response message of the access address; receiving the processed processing uploaded by the push streaming client Objectives streaming source, and the processed media streaming media resource and the information stored in association reply stream.
  • the entire process can be split into two parts of uploading and downloading, and the HTTP protocol and the WebRTC protocol are merged in the two parts, thereby simplifying the establishment process of the communication connection.
  • the streaming media resource is transferred by the streaming media server, and the user does not need to repeatedly send the same streaming media resource in the network multiple times, and only needs to upload the streaming media resource to the streaming media server, and download the streaming media from the streaming media server. Resources are available, which can greatly reduce the need for network bandwidth.
  • the push streaming client may send an HTTP upload request to the streaming media server, and the HTTP module in the streaming media server analyzes the HTTP upload request, thereby generating the response streaming media information and the access address, and The HTTP response message provides the response stream information and the access address to the push stream client.
  • the push streaming client can establish a WebRTC communication connection with the streaming media server, and subsequently upload the streaming media resource according to the access address, and the uploaded streaming media resource can be processed by the WebRTC model in the streaming media server.
  • the streaming client can send an HTTP obtaining request to the streaming server, and the HTTP module in the streaming server can generate an access address, and the access address and the streaming media information associated with the streaming resource pointed to by the HTTP obtaining request.
  • the streaming client can establish a WebRTC communication connection with the streaming server. Subsequently, the streaming client downloads the streaming media resource from the WebRTC module in the streaming media server according to the access address provided by the streaming media server. It can be seen that the technical solution provided by the present application simplifies the establishment process of the WebRTC communication connection, thereby improving the timeliness of communication. In addition, the streaming of streaming media resources through the streaming server can greatly reduce the need for network bandwidth.
  • FIG. 1 is a schematic diagram of interaction of a standard WebRTC process in the prior art
  • FIG. 2 is a flowchart of a method for uploading streaming media resources in an embodiment of the present invention
  • FIG. 3 is a schematic diagram of interaction of a method for uploading streaming media resources in an embodiment of the present invention
  • FIG. 4 is a flowchart of a method for downloading streaming media resources in an embodiment of the present invention.
  • FIG. 5 is a schematic diagram of interaction of a method for downloading streaming media resources according to an embodiment of the present invention.
  • FIG. 6 is a schematic diagram of a distribution system of streaming media resources in an embodiment of the present invention.
  • FIG. 7 is a schematic structural diagram of a computer terminal according to an embodiment of the present invention.
  • the embodiment provides a method for uploading a streaming media resource, and the method can be applied between a push streaming client and a streaming media server.
  • the method can include the following steps.
  • S11 Receive an upload request from the push streaming client to the target streaming media resource, where the upload request includes the candidate streaming media information supported by the push streaming client.
  • the data storage and forwarding can be performed by the streaming media server.
  • the P2P server and the signaling server can be omitted, thereby simplifying the system architecture.
  • the streaming media server may include an HTTP module for processing an HTTP request, and a WebRTC module for performing streaming resource transmission.
  • each of the streaming media resources can be given a global unique identifier, so that the corresponding streaming media resource can be characterized by the unique identifier.
  • the unique identifier may be a Uniform Resource Locator (URL).
  • the naming rule of the uniform resource locator may be combined with RTMP (Real Time Messaging Protocol).
  • RTMP Real Time Messaging Protocol
  • the URL naming rules of streaming media resources in HTTP are the same.
  • the URL of a streaming resource can be http://www.a.com/live/test.
  • the Offer SDP may be generated based on the streaming media information collected by the hardware.
  • information such as a video coding mode, an audio coding mode, a transmission protocol, and a security protocol supported by the push streaming client may be included.
  • a simple example of the Offer SDP can be as follows:
  • Video coding can use H264, VP8, VP9;
  • Audio coding can use AAC, MP3, OPUS;
  • Encryption can be enabled
  • the generated Offer SDP can be the candidate streaming information described above.
  • S13 Generate response media information based on the candidate streaming media information, and generate an access address for accessing the target streaming media resource.
  • the streaming media server may extract the included candidate streaming media information. Then, the streaming media server may determine a target video encoding mode and a target audio encoding mode supported by the candidate streaming media information according to its own hardware condition, and construct a response flow based on the target video encoding mode and the target audio encoding mode.
  • Media information For example, the streaming media server may determine that the target streaming media resource that the push streaming client is ready to upload is currently received, and the video encoding mode is H264, the audio encoding mode is OPUS, and the target streaming media resource may be encrypted.
  • an example of the response streaming media information generated by the streaming server, Answer SDP can be as follows:
  • ICE candidate information in addition to the SDP information, ICE candidate information is required, and the ICE candidate information may be constructed based on the public network IP address.
  • both ends of a WebRTC communication connection can be connected to each other as long as one end has a fixed public IP address.
  • the streaming media server generally has a fixed public IP address. Therefore, the client that tries to establish a WebRTC communication connection with the streaming server can save the process of obtaining its own public network address from the P2P server, and the process of generating the ICE candidate. This can be done by a streaming server.
  • the streaming media server can obtain its own public network IP address and port address, and the public network IP address can be stored in the streaming media server without being read from other servers.
  • the streaming server may use the combination of the public network IP address and the port address as an access address for accessing the target streaming media resource.
  • the public network IP address may be 10.8.114.195
  • the port address for receiving the streaming media resource may be 54225
  • the finally generated access address may be 10.8.114.195:54225.
  • the access address can be used as the ICE candidate described above.
  • the streaming server can obtain the response stream information (Answer SDP) and the ICE candidate required to establish a WebRTC communication connection.
  • S15 The feedback streaming media information and the access address are fed back to the push streaming client, so that the push streaming client processes the target streaming media resource according to the response streaming media information, and causes the The push streaming client uploads the processed target streaming media resource according to the access address.
  • the streaming server may feed back the response message to the push client in response to the received upload request.
  • the response message may be an HTTP response message with a status code of 200.
  • the response stream message body and the access address may be included in the response message body of the response message.
  • the push stream client can establish a WebRTC communication connection with the streaming server. Then, the push streaming client may process, encrypt, and the like the target streaming media resource according to the information defined in the Answer SDP. After the processing is completed, the processed target streaming media resource may be uploaded to the streaming media server according to the access address.
  • S17 Receive the processed target streaming media resource uploaded by the push streaming client, and associate the processed target streaming media resource with the response streaming media information.
  • the streaming media server may store the processed target streaming media resource in a specified path. Then, an association between the unique identifier of the target streaming media resource and the response streaming media information may be established. In this way, if a streaming client requests to obtain the target streaming media resource, the associated response streaming media information may be queried according to the unique identifier of the target streaming media resource, and the response streaming media information may be used as a WebRTC communication connection. A necessary condition is fed back to the pull stream client.
  • the process of transmitting the target streaming media resource between the foregoing and the push streaming client may be completed in the WebRTC module of the streaming media server.
  • the present application further provides a method for downloading a streaming media resource.
  • the method may be applied between a streaming media server and a streaming client. Referring to FIG. 4 and FIG. 5, the method may include the following steps.
  • S21 Receive an acquisition request from the streaming client to the target streaming media resource.
  • the streaming media resource may be obtained from the streaming media server.
  • the pull stream client may initiate an acquisition request to the streaming media server to the target streaming media resource.
  • the acquisition request may be, for example, an HTTP GET request.
  • the URL of the request may be a unique identifier of the target streaming media resource, such that the obtaining request may include a unique identifier for characterizing the target streaming media resource.
  • S23 Determine whether the target streaming media resource exists locally, and if yes, generate an access address for accessing the target streaming media resource.
  • the streaming media server may determine, according to the unique identifier carried by the streaming media server, whether there is a target streaming media resource that the streaming client wants to download. Specifically, the streaming media server may locally query whether the streaming media resource having the unique identifier exists, and if yes, determine that the target streaming media resource exists locally; if not, it may determine that the target does not exist locally. Streaming media resources.
  • the streaming media server may feed back the error prompting information to the streaming client. If the target streaming media resource exists in the streaming media server, the streaming client can establish a WebRTC communication connection with the streaming media server, so that the target streaming media resource can be downloaded from the streaming media server.
  • the streaming media server has a fixed public network IP address, so that it can obtain its own public network IP address and port address, and the public network IP address can be stored in the streaming media server without reading from other servers. . Then, the streaming server may use the combination of the public network IP address and the port address as an access address for accessing the target streaming media resource.
  • the public network IP address may be 10.8.114.195
  • the port address for transmitting the streaming media resource may be 54225
  • the finally generated access address may be 10.8.114.195:54225.
  • This access address can be used as the ICE candidate required to establish a WebRTC communication connection.
  • the streaming media resource stored in the streaming media server may be uploaded by another streaming client.
  • the streaming media server may The streaming media resource and the corresponding response streaming media information are stored in association.
  • the streaming media server can query the response streaming media information associated with the target streaming media resource according to the unique identifier of the target streaming media resource, and use the response streaming media information as the target streaming media information associated with the target streaming media resource.
  • the streaming media server can provide the target streaming media information to the streaming client as the Offer SDP, and the streaming server can also provide the access address generated in step S23 as the ICE candidate to the streaming client.
  • the streaming media server may return a response message to the pull stream client, where the response message may be, for example, an HTTP response message with a status code of 200.
  • the response message body of the response message may include the above-mentioned access address (ICE candidate) and target streaming media information (Offer SDP) associated with the target streaming media resource.
  • ICE candidate access address
  • Offer SDP target streaming media information
  • the streaming client can establish a WebRTC communication connection with the streaming server.
  • the target streaming media resource may be obtained from the streaming media server based on the access address and the target streaming media information.
  • the target streaming media information can be decoded and decrypted according to the audio and video encoding mode and the encryption mode defined in the target streaming media information, so that the decoded and encrypted target streaming media resources can be played locally.
  • the foregoing process of receiving the acquisition request and returning the response message to the streaming client may be performed in the HTTP module of the streaming server, and the target streaming resource between the streaming client and the streaming client is performed.
  • the transfer process can be done in the WebRTC module of the streaming server.
  • the application further provides a streaming media server, which includes a memory and a processor, wherein the memory stores a computer program, and when the computer program is executed by the processor, the method described in the first embodiment can be implemented. Various method steps.
  • the present application further provides a streaming media server, where the streaming media server includes a memory and a processor, where the computer program is stored in the memory, and when the computer program is executed by the processor, the second embodiment can be implemented.
  • the streaming media server includes a memory and a processor, where the computer program is stored in the memory, and when the computer program is executed by the processor, the second embodiment can be implemented.
  • the memory may include physical means for storing information, typically by digitizing the information and then storing it in a medium that utilizes electrical, magnetic or optical means.
  • the memory according to the embodiment may further include: a device for storing information by using an electric energy method, such as a RAM, a ROM, etc.; a device for storing information by using a magnetic energy method, such as a hard disk, a floppy disk, a magnetic tape, a magnetic core memory, a magnetic bubble memory, and a USB flash drive; A device that optically stores information, such as a CD or a DVD.
  • an electric energy method such as a RAM, a ROM, etc.
  • a magnetic energy method such as a hard disk, a floppy disk, a magnetic tape, a magnetic core memory, a magnetic bubble memory, and a USB flash drive
  • a device that optically stores information such as a CD or a DVD.
  • computer storage media such as quantum memories, graphene memories, and the like.
  • the processor can be implemented in any suitable manner.
  • the processor can take the form of, for example, a microprocessor or processor and computer readable media, logic gates, switches, and special-purpose integrations for storing computer readable program code (eg, software or firmware) executable by the (micro)processor.
  • ASIC Application Specific Integrated Circuit
  • programmable logic controller programmable logic controller and embedded microcontroller form.
  • the present application further provides a distribution system for streaming media resources, where the system includes a push streaming client and a streaming media server, where:
  • the push streaming client is configured to determine candidate streaming media information that is supported by itself, and send an upload request to the streaming media server to the target streaming media resource, where the uploading request includes the candidate streaming media information; Determining, by the streaming media server, a response packet, where the response packet includes the response streaming media information and the access address generated by the streaming media server, and processing the target streaming media resource according to the response streaming media information, and Uploading the processed target streaming media resource according to the access address;
  • the streaming media server is configured to generate response stream media information based on the candidate streaming media information, and generate an access address for accessing the target streaming media resource, and feed back the response flow to the push streaming client Media information and a response message of the access address; receiving the processed target streaming media resource uploaded by the push streaming client, and associating the processed target streaming media resource with the response streaming media information storage.
  • the system further includes a pull stream client, where the pull stream client is configured to send an acquisition request to the streaming media server to the target streaming media resource; and receive the returned by the streaming media server a response message, where the response message includes target streaming media information associated with the target streaming media resource and an access address generated by the streaming media server; and the flow based on the access address and the target streaming media information Obtaining the target streaming media resource in a media server;
  • the streaming media server is further configured to: in response to the obtaining request, generate an access address for accessing the target streaming media resource; and feed back the access address and the target streaming media to the streaming client The target streaming media information associated with the resource.
  • the streaming media server obtains its own public network IP address and port address when generating an access address for accessing the target streaming media resource, and the public network IP address and the port are The combination of addresses serves as an access address for accessing the target streaming media resource.
  • Computer terminal 10 may include one or more (only one of which is shown) processor 102 (processor 102 may include, but is not limited to, a processing device such as a microprocessor MCU or a programmable logic device FPGA), for storing data.
  • processor 102 may include, but is not limited to, a processing device such as a microprocessor MCU or a programmable logic device FPGA), for storing data.
  • FIG. 7 is merely illustrative and does not limit the structure of the above electronic device.
  • computer terminal 10 may also include more or fewer components than shown in FIG. 7, or have a different configuration than that shown in FIG.
  • the memory 104 can be used to store software programs and modules of application software, and the processor 102 executes various functional applications and data processing by running software programs and modules stored in the memory 104.
  • Memory 104 may include high speed random access memory, and may also include non-volatile memory such as one or more magnetic storage devices, flash memory, or other non-volatile solid state memory.
  • memory 104 may further include memory remotely located relative to processor 102, which may be coupled to computer terminal 10 via a network. Examples of such networks include, but are not limited to, the Internet, intranets, local area networks, mobile communication networks, and combinations thereof.
  • Transmission device 106 is for receiving or transmitting data via a network.
  • the network specific examples described above may include a wireless network provided by a communication provider of the computer terminal 10.
  • the transmission device 106 includes a Network Interface Controller (NIC) that can be connected to other network devices through a base station to communicate with the Internet.
  • the transmission device 106 can be a Radio Frequency (RF) module for communicating with the Internet wirelessly.
  • NIC Network Interface Controller
  • RF Radio Frequency
  • the entire process can be split into two parts of uploading and downloading, and the HTTP protocol and the WebRTC protocol are merged in the two parts, thereby simplifying the establishment process of the communication connection.
  • the streaming media resource is transferred by the streaming media server, and the user does not need to repeatedly send the same streaming media resource in the network multiple times, and only needs to upload the streaming media resource to the streaming media server, and download the streaming media from the streaming media server. Resources are available, which can greatly reduce the need for network bandwidth.
  • the push streaming client may send an HTTP upload request to the streaming media server, and the HTTP module in the streaming media server analyzes the HTTP upload request, thereby generating the response streaming media information and the access address, and The HTTP response message provides the response stream information and the access address to the push stream client.
  • the push streaming client can establish a WebRTC communication connection with the streaming media server, and subsequently upload the streaming media resource according to the access address, and the uploaded streaming media resource can be processed by the WebRTC model in the streaming media server.
  • the streaming client can send an HTTP obtaining request to the streaming server, and the HTTP module in the streaming server can generate an access address, and the access address and the streaming media information associated with the streaming resource pointed to by the HTTP obtaining request.
  • the streaming client can establish a WebRTC communication connection with the streaming server. Subsequently, the streaming client downloads the streaming media resource from the WebRTC module in the streaming media server according to the access address provided by the streaming media server. It can be seen that the technical solution provided by the present application simplifies the establishment process of the WebRTC communication connection, thereby improving the timeliness of communication. In addition, the streaming of media resources through the streaming server can greatly reduce the need for network bandwidth.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种流媒体资源的上传、下载方法、分发系统及流媒体服务器,其中,所述上传方法包括:接收推流客户端发来的指向目标流媒体资源的上传请求,所述上传请求中包括候选流媒体信息;基于所述候选流媒体信息生成应答流媒体信息,并生成用于访问所述目标流媒体资源的访问地址;向所述推流客户端反馈所述应答流媒体信息以及所述访问地址;接收所述推流客户端上传的经过处理的目标流媒体资源,并将所述经过处理的目标流媒体资源和所述应答流媒体信息关联存储。本申请提供的技术方案,能够在降低网络带宽需求的同时,提高通信的时效性。

Description

流媒体资源的上传、下载方法、分发系统及流媒体服务器 技术领域
本发明涉及互联网技术领域,特别涉及一种流媒体资源的上传、下载方法、分发系统及流媒体服务器。
背景技术
WebRTC(Web Real-Time Communication,源自网页实时通信)协议由于具有跨平台、高实时性的特点,被广泛用于基于网络的视频会议、视频通话等应用场景。
请参阅图1,标准的WebRTC协议中,通常可以在用户A和用户B之间建立点对点的通信链路。具体的过程可以包括以下多个步骤:
步骤1:用户A向P2P服务器发起查询,获得自己的公网地址;
步骤2:用户A根据自身的硬件采集到的流媒体信息,生成Offer SDP,通过信令服务器中转,将Offer SDP发送给用户B;
步骤3:用户B接受并处理Offer SDP,同时根据自身的硬件采集到的流媒体信息,生成Answer SDP,通过信令服务器中转,将Answer SDP发送给用户A;
步骤4:用户B向P2P服务器发起查询,获得自己的公网地址。
步骤5:用户A根据自身的公网地址生成ICE Candidate,通过信令服务器中转,发送给用户B。
步骤6:用户B根据自身的公网地址生成ICE Candidate,通过信令服务器中转,发送给用户A。
步骤7:用户A和用户B双方根据交换的SDP和ICE Candidate,从而可以发送自身的流媒体给对方,同时接收对方发送来的流媒体。
对于多人视频会议的场景,会议参与者需要和会议中所有的其他用户执行一次上述的标准流程,从而可以与其他用户建立通信连接。在与其他用户建立通信连接之后,当其中一个会议参与者需要共享一个流媒体资源时,需要分别向其他各个用户均发送一次该流媒体资源。举例来说,当前共有N个用户参与 视频会议,这样,其中一个用户需要执行N-1次上述的7个步骤,从而与其他用户建立通信连接。然后,当该用户需要共享一个流媒体资源时,需要将该流媒体资源发送N-1次。由此可见,按照当前的WebRTC标准流程,用户与用户之间需要花费较长时间建立彼此的连接,这样会影响通信的时效性。此外,每次需要共享流媒体资源时,用户与用户之间重复发送的数据量过于庞大,导致网络带宽需求较高。
发明内容
本申请的目的在于提供一种流媒体资源的上传、下载方法、分发系统及流媒体服务器,能够在降低网络带宽需求的同时,提高通信的时效性。
为实现上述目的,本申请一方面提供一种流媒体资源的上传方法,所述方法包括:接收推流客户端发来的指向目标流媒体资源的上传请求,所述上传请求中包括所述推流客户端支持的候选流媒体信息;基于所述候选流媒体信息,生成应答流媒体信息,并生成用于访问所述目标流媒体资源的访问地址;向所述推流客户端反馈所述应答流媒体信息以及所述访问地址,以使得所述推流客户端根据所述应答流媒体信息对所述目标流媒体资源进行处理,并使得所述推流客户端按照所述访问地址上传经过处理的目标流媒体资源;接收所述推流客户端上传的所述经过处理的目标流媒体资源,并将所述经过处理的目标流媒体资源和所述应答流媒体信息关联存储。
为实现上述目的,本申请另一方面还提供一种流媒体服务器,所述流媒体服务器包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现上述的方法。
为实现上述目的,本申请另一方面还提供一种流媒体资源的下载方法,所述方法包括:接收拉流客户端发来的指向目标流媒体资源的获取请求;判断本地是否存在所述目标流媒体资源,若存在,生成用于访问所述目标流媒体资源的访问地址;向所述拉流客户端反馈所述访问地址以及所述目标流媒体资源关联的目标流媒体信息,以使得所述拉流客户端基于所述访问地址和所述目标流媒体信息获取所述目标流媒体资源。
为实现上述目的,本申请另一方面还提供一种流媒体服务器,所述流媒体服务器包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程 序被所述处理器执行时,实现上述的方法。
为实现上述目的,本申请另一方面还提供一种流媒体资源的分发系统,所述系统包括推流客户端和流媒体服务器,其中:所述推流客户端,用于确定自身支持的候选流媒体信息,并向所述流媒体服务器发送指向目标流媒体资源的上传请求,所述上传请求中包括所述候选流媒体信息;接收所述流媒体服务器返回的响应报文,所述响应报文中包括所述流媒体服务器生成的应答流媒体信息和访问地址;根据所述应答流媒体信息对所述目标流媒体资源进行处理,并按照所述访问地址上传经过处理的目标流媒体资源;所述流媒体服务器,用于基于所述候选流媒体信息,生成应答流媒体信息,并生成用于访问所述目标流媒体资源的访问地址;向所述推流客户端反馈包含所述应答流媒体信息以及所述访问地址的响应报文;接收所述推流客户端上传的所述经过处理的目标流媒体资源,并将所述经过处理的目标流媒体资源和所述应答流媒体信息关联存储。
由上可见,本申请提供的技术方案中,可以将整个流程拆分为上传和下载两个部分,并且在这两个部分中将HTTP协议和WebRTC协议进行融合,从而简化通信连接的建立过程。此外,通过流媒体服务器进行流媒体资源的中转,用户无需将同一份流媒体资源在网络中重复发送多次,仅需要将流媒体资源上传至流媒体服务器,并从流媒体服务器中下载流媒体资源即可,能够极大地降低网络带宽的需求。具体地,在上传部分,推流客户端可以向流媒体服务器发送HTTP上传请求,流媒体服务器中的HTTP模块通过对HTTP上传请求进行分析,从而可以生成应答流媒体信息以及访问地址,并可以通过HTTP响应报文将应答流媒体信息以及访问地址提供给推流客户端。这样,推流客户端便可以与流媒体服务器建立WebRTC的通信连接,后续便可以根据访问地址上传流媒体资源,上传后的流媒体资源可以由流媒体服务器中的WebRTC模型进行处理。在下载部分,拉流客户端可以向流媒体服务器发送HTTP获取请求,流媒体服务器中的HTTP模块可以生成访问地址,并将该访问地址以及该HTTP获取请求指向的流媒体资源关联的流媒体信息包含于HTTP响应报文中反馈给拉流客户端,这样,拉流客户端便可以与流媒体服务器建立WebRTC的通信连接。后续,拉流客户端根据流媒体服务器提供的访问地址,从流媒体服务器中的WebRTC模块处下载流媒体资源。由此可见,本申请提供的技术方案,简化了WebRTC通信连接的建立过程,从而提高了通信的时效性。此外,通过流媒体服务器进行流媒体资源的中转, 能够极大地降低网络带宽的需求。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术中标准WebRTC流程的交互示意图;
图2是本发明实施例中流媒体资源的上传方法流程图;
图3是本发明实施例中流媒体资源的上传方法交互示意图;
图4是本发明实施例中流媒体资源的下载方法流程图;
图5是本发明实施例中流媒体资源的下载方法交互示意图;
图6是本发明实施例中流媒体资源的分发系统示意图;
图7是本发明实施例中计算机终端的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例一
本实施方式提供一种流媒体资源的上传方法,所述方法可以应用于推流客户端和流媒体服务器之间。请参阅图2和图3,所述方法可以包括以下步骤。
S11:接收推流客户端发来的指向目标流媒体资源的上传请求,所述上传请求中包括所述推流客户端支持的候选流媒体信息。
在本实施方式中,可以通过流媒体服务器进行数据的保存和转发,相比于标准的WebRTC流程中,可以省去P2P服务器和信令服务器,从而简化了系统架构。请参阅图6,所述流媒体服务器中可以包括一个用于处理HTTP请求的HTTP模块,以及一个用于进行流媒体资源传输的WebRTC模块。
在本实施方式中,对于每一路流媒体资源,均可以对其赋予一个全局的唯一标识,这样,通过该唯一标识,便可以表征对应的流媒体资源。在实际应用 中,所述唯一标识可以是统一资源定位符(Uniform Resource Locator,URL),在本实施方式中的统一资源定位符的命名规则可以与RTMP(Real Time Messaging Protocol,实时消息传输协议)、HTTP(HyperText Transfer Protocol,超文本传输协议)中流媒体资源的URL的命名规则一致。例如,某个流媒体资源的URL可以是http://www.a.com/live/test。
在本实施方式中,当推流客户端需要将目标流媒体资源上传至流媒体服务器时,首先可以基于自身的硬件采集到的流媒体信息,生成Offer SDP。在所述Offer SDP中,可以包括推流客户端支持的视频编码方式、音频编码方式、传输协议、安全协议等信息。例如,所述Offer SDP的一个简单示例可以如下:
Offer SDP{
现在要发送一路媒体流资源;
视频编码可以使用H264、VP8、VP9;
音频编码可以使用AAC、MP3、OPUS;
可以启用加密;
}
由此可见,在Offer SDP中可以例举出推流客户端所支持的多种视频编码方式以及多种音频编码方式。这样,生成的Offer SDP便可以是上述的候选流媒体信息。
在本实施方式中,推流客户端可以向该流媒体服务器发送指向所述目标流媒体资源的上传请求。该上传请求例如可以是HTTP POST请求。该请求的请求消息体便可以是上述的Offer SDP,这样,所述上传请求中便可以包含所述推流客户端支持的候选流媒体信息。此外,该上传请求的请求URL可以是所述目标流媒体资源的URL。这样,所述上传请求中可以包括用于表征所述目标流媒体资源的唯一标识。
S13:基于所述候选流媒体信息,生成应答流媒体信息,并生成用于访问所述目标流媒体资源的访问地址。
在本实施方式中,流媒体服务器接收到所述上传请求后,可以从中提取出包含的候选流媒体信息。然后,流媒体服务器可以根据自身的硬件条件,在所述候选流媒体信息中确定自身支持的目标视频编码方式和目标音频编码方式,并基于所述目标视频编码方式和目标音频编码方式构建应答流媒体信息。例如, 流媒体服务器可以确定当前能够接收推流客户端准备上传的目标流媒体资源,并指定视频编码方式为H264,音频编码方式为OPUS,并且可以对目标流媒体资源进行加密。那么,流媒体服务器生成的应答流媒体信息Answer SDP的一个示例可以如下所示:
Answer SDP{
可以接收你发送的媒体流;
视频编码请使用H264;
音频编码请使用OPUS;
请启用加密;
}
这样,流媒体服务器便可以生成针对所述目标流媒体资源的应答流媒体信息,该应答流媒体信息中可以指定音视频编码方式。
在本实施方式中,为了建立WebRTc,除了SDP信息之外,还需要ICE candidate信息,所述ICE candidate信息可以基于公网IP地址来构建。通常而言,WebRTC通信连接的两端只要有一端具备固定的公网IP地址,便可以实现互相连通。而流媒体服务器一般都会具备一个固定的公网IP地址,因此,与流媒体服务器试图建立WebRTC通信连接的客户端,可以省去从P2P服务器中获取自身公网地址的步骤,生成ICE candidate的过程可以由流媒体服务器来完成。具体地,流媒体服务器可以获取自身的公网IP地址和端口地址,该公网IP地址可以存储于流媒体服务器内,无需从其它服务器中读取。然后,流媒体服务器可以将所述公网IP地址和所述端口地址的组合作为用于访问所述目标流媒体资源的访问地址。例如,所述公网IP地址可以为10.8.114.195,用于接收流媒体资源的端口地址可以为54225,那么最终生成的访问地址便可以为10.8.114.195:54225。该访问地址便可以作为上述的ICE candidate。
这样,流媒体服务器便可以得到建立WebRTC通信连接所需的应答流媒体信息(Answer SDP)和访问地址(ICE candidate)。
S15:向所述推流客户端反馈所述应答流媒体信息以及所述访问地址,以使得所述推流客户端根据所述应答流媒体信息对所述目标流媒体资源进行处理,并使得所述推流客户端按照所述访问地址上传经过处理的目标流媒体资源。
在本实施方式中,流媒体服务器可以响应于接收到的上传请求,向所述推 流客户端反馈响应报文。该响应报文可以是状态码为200的HTTP响应报文。在该响应报文的响应消息体中,可以包括所述应答流媒体信息以及所述访问地址。上述的接收上传请求、生成应答流媒体信息和访问地址以及返回响应报文的过程,均可以通过流媒体服务器中的HTTP模块完成。
这样,推流客户端在接收到Answer SDP和ICE candidate之后,便可以与流媒体服务器建立WebRTC通信连接。然后,推流客户端可以根据所述Answer SDP中限定的信息,对所述目标流媒体资源进行编码、加密等处理。完成处理之后,可以将经过处理的目标流媒体资源按照所述访问地址上传至流媒体服务器中。
S17:接收所述推流客户端上传的所述经过处理的目标流媒体资源,并将所述经过处理的目标流媒体资源和所述应答流媒体信息关联存储。
在本实施方式中,流媒体服务器接收到所述推流客户端上传的经过处理的目标流媒体资源之后,可以将所述经过处理的目标流媒体资源存储于指定路径下。然后,可以建立所述目标流媒体资源的唯一标识与所述应答流媒体信息的关联关系。这样,后续如果有拉流客户端请求获取该目标流媒体资源时,可以根据该目标流媒体资源的唯一标识,查询到关联的应答流媒体信息,该应答流媒体信息可以作为建立WebRTC通信连接的一个必要条件反馈给拉流客户端。
在本实施方式中,上述与推流客户端之间进行的目标流媒体资源的传输过程,可以在流媒体服务器的WebRTC模块中完成。
实施例二
本申请还提供一种流媒体资源的下载方法,所述方法可以应用于流媒体服务器与拉流客户端之间,请参阅图4和图5,所述方法可以包括以下步骤。
S21:接收拉流客户端发来的指向目标流媒体资源的获取请求。
在本实施方式中,当拉流客户端需要在本地播放其他用户共享的流媒体资源时,可以从流媒体服务器中获取该流媒体资源。具体地,拉流客户端可以向流媒体服务器发起指向目标流媒体资源的获取请求。该获取请求例如可以是HTTP GET请求。该请求的URL可以是所述目标流媒体资源的唯一标识,这样,所述获取请求中可以包括用于表征所述目标流媒体资源的唯一标识。
S23:判断本地是否存在所述目标流媒体资源,若存在,生成用于访问所述目标流媒体资源的访问地址。
在本实施方式中,流媒体服务器接收到所述获取请求后,可以根据其携带的唯一标识,判断本地是否存在拉流客户端想要下载的目标流媒体资源。具体地,流媒体服务器可以在本地查询是否存在具备所述唯一标识的流媒体资源,若存在,则可以判定本地存在所述目标流媒体资源;若不存在,则可以判定本地不存在所述目标流媒体资源。
在本实施方式中,若在流媒体服务器中不存在所述目标流媒体资源,那么流媒体服务器可以向所述拉流客户端反馈错误提示信息。若在流媒体服务器中存在所述目标流媒体资源,那么拉流客户端可以与流媒体服务器建立WebRTC通信连接,从而可以从流媒体服务器中下载该目标流媒体资源。
在本实施方式中,流媒体服务器具备固定的公网IP地址,因此可以获取自身的公网IP地址和端口地址,该公网IP地址可以存储于流媒体服务器内,无需从其它服务器中读取。然后,流媒体服务器可以将所述公网IP地址和所述端口地址的组合作为用于访问所述目标流媒体资源的访问地址。例如,所述公网IP地址可以为10.8.114.195,用于传输流媒体资源的端口地址可以为54225,那么最终生成的访问地址便可以为10.8.114.195:54225。该访问地址便可以作为建立WebRTC通信连接时所需的ICE candidate。
S25:向所述拉流客户端反馈所述访问地址以及所述目标流媒体资源关联的目标流媒体信息,以使得所述拉流客户端基于所述访问地址和所述目标流媒体信息获取所述目标流媒体资源
在本实施方式中,流媒体服务器中存储的流媒体资源可以是其它的推流客户端上传的,根据实施例一中的描述,推流客户端在上传流媒体资源之后,流媒体服务器可以将该流媒体资源以及对应的应答流媒体信息进行关联存储。这样,流媒体服务器可以根据目标流媒体资源的唯一标识,查询到与其关联的应答流媒体信息,并将该应答流媒体信息作为所述目标流媒体资源关联的目标流媒体信息。这样,流媒体服务器可以将所述目标流媒体信息作为Offer SDP提供给拉流客户端,并且流媒体服务器可以将步骤S23中生成的访问地址作为ICE candidate也一并提供给拉流客户端。具体地,流媒体服务器可以向所述拉流客户端返回响应报文,该响应报文例如可以是状态码为200的HTTP响应报文。所述响应报文的响应消息体中可以包括上述的访问地址(ICE candidate)以及所述目标流媒体资源关联的目标流媒体信息(Offer SDP)。拉流客户端在获取到 流媒体服务器提供的Offer SDP和ICE candidate之后,便可以与流媒体服务器建立WebRTC通信连接。
在本实施方式中,拉流客户端与流媒体服务器建立WebRTC通信连接之后,便可以基于所述访问地址和所述目标流媒体信息,从所述流媒体服务器中获取所述目标流媒体资源,后续还可以根据目标流媒体信息中限定的音视频编码方式以及加密方式,对目标流媒体信息进行解码和解密,从而可以在本地播放解码和加密后的目标流媒体资源。
在本实施方式中,上述的接收获取请求以及向拉流客户端返回响应报文的过程,均可以在流媒体服务器的HTTP模块中进行,上述与拉流客户端之间进行的目标流媒体资源的传输过程,可以在流媒体服务器的WebRTC模块中完成。
实施例三
本申请还提供一种流媒体服务器,所述流媒体服务器包括存储器和处理器,所述存储器中存储计算机程序,所述计算机程序被所述处理器执行时,可以实现上述实施例一中描述的各个方法步骤。
此外,本申请还提供一种流媒体服务器,所述流媒体服务器包括存储器和处理器,所述存储器中存储计算机程序,所述计算机程序被所述处理器执行时,可以实现上述实施例二中描述的各个方法步骤。
在本申请中,所述存储器可以包括用于存储信息的物理装置,通常是将信息数字化后再以利用电、磁或者光学等方法的媒体加以存储。本实施方式所述的存储器又可以包括:利用电能方式存储信息的装置,如RAM、ROM等;利用磁能方式存储信息的装置,如硬盘、软盘、磁带、磁芯存储器、磁泡存储器、U盘;利用光学方式存储信息的装置,如CD或DVD。当然,还有其他方式的计算机存储介质,例如量子存储器、石墨烯存储器等等。
在本申请中,所述处理器可以按任何适当的方式实现。例如,所述处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。
本说明书实施方式提供的流媒体服务器,其本身所实现的具体功能,可以 与本说明书中的前述方法实施方式相对照解释,并能够达到前述方法实施方式的技术效果,这里便不再赘述。
实施例四
请参阅图6,本申请还提供一种流媒体资源的分发系统,所述系统包括推流客户端和流媒体服务器,其中:
所述推流客户端,用于确定自身支持的候选流媒体信息,并向所述流媒体服务器发送指向目标流媒体资源的上传请求,所述上传请求中包括所述候选流媒体信息;接收所述流媒体服务器返回的响应报文,所述响应报文中包括所述流媒体服务器生成的应答流媒体信息和访问地址;根据所述应答流媒体信息对所述目标流媒体资源进行处理,并按照所述访问地址上传经过处理的目标流媒体资源;
所述流媒体服务器,用于基于所述候选流媒体信息,生成应答流媒体信息,并生成用于访问所述目标流媒体资源的访问地址;向所述推流客户端反馈包含所述应答流媒体信息以及所述访问地址的响应报文;接收所述推流客户端上传的所述经过处理的目标流媒体资源,并将所述经过处理的目标流媒体资源和所述应答流媒体信息关联存储。
在一个实施方式中,所述系统还包括拉流客户端,所述拉流客户端用于向所述流媒体服务器发送指向所述目标流媒体资源的获取请求;接收所述流媒体服务器返回的响应报文,所述响应报文中包括所述目标流媒体资源关联的目标流媒体信息以及所述流媒体服务器生成的访问地址;基于所述访问地址和所述目标流媒体信息从所述流媒体服务器中获取所述目标流媒体资源;
相应地,所述流媒体服务器,还用于响应所述获取请求,生成用于访问所述目标流媒体资源的访问地址;向所述拉流客户端反馈所述访问地址以及所述目标流媒体资源关联的目标流媒体信息。
在一个实施方式中,所述流媒体服务器在生成用于访问所述目标流媒体资源的访问地址时,获取自身的公网IP地址和端口地址,并将所述公网IP地址和所述端口地址的组合作为用于访问所述目标流媒体资源的访问地址。
请参阅图7,在本申请中,上述实施例中的技术方案可以应用于如图7所示的计算机终端10上。计算机终端10可以包括一个或多个(图中仅示出一个) 处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。本领域普通技术人员可以理解,图7所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图7中所示更多或者更少的组件,或者具有与图7所示不同的配置。
存储器104可用于存储应用软件的软件程序以及模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
由上可见,本申请提供的技术方案中,可以将整个流程拆分为上传和下载两个部分,并且在这两个部分中将HTTP协议和WebRTC协议进行融合,从而简化通信连接的建立过程。此外,通过流媒体服务器进行流媒体资源的中转,用户无需将同一份流媒体资源在网络中重复发送多次,仅需要将流媒体资源上传至流媒体服务器,并从流媒体服务器中下载流媒体资源即可,能够极大地降低网络带宽的需求。具体地,在上传部分,推流客户端可以向流媒体服务器发送HTTP上传请求,流媒体服务器中的HTTP模块通过对HTTP上传请求进行分析,从而可以生成应答流媒体信息以及访问地址,并可以通过HTTP响应报文将应答流媒体信息以及访问地址提供给推流客户端。这样,推流客户端便可以与流媒体服务器建立WebRTC的通信连接,后续便可以根据访问地址上传流媒体资源,上传后的流媒体资源可以由流媒体服务器中的WebRTC模型进行处理。在下载部分,拉流客户端可以向流媒体服务器发送HTTP获取请求,流媒体服务器中的HTTP 模块可以生成访问地址,并将该访问地址以及该HTTP获取请求指向的流媒体资源关联的流媒体信息包含于HTTP响应报文中反馈给拉流客户端,这样,拉流客户端便可以与流媒体服务器建立WebRTC的通信连接。后续,拉流客户端根据流媒体服务器提供的访问地址,从流媒体服务器中的WebRTC模块处下载流媒体资源。由此可见,本申请提供的技术方案,简化了WebRTC通信连接的建立过程,从而提高了通信的时效性。此外,通过流媒体服务器进行流媒体资源的中转,能够极大地降低网络带宽的需求。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (14)

  1. 一种流媒体资源的上传方法,其特征在于,所述方法包括:
    接收推流客户端发来的指向目标流媒体资源的上传请求,所述上传请求中包括所述推流客户端支持的候选流媒体信息;
    基于所述候选流媒体信息,生成应答流媒体信息,并生成用于访问所述目标流媒体资源的访问地址;
    向所述推流客户端反馈所述应答流媒体信息以及所述访问地址,以使得所述推流客户端根据所述应答流媒体信息对所述目标流媒体资源进行处理,并使得所述推流客户端按照所述访问地址上传经过处理的目标流媒体资源;
    接收所述推流客户端上传的所述经过处理的目标流媒体资源,并将所述经过处理的目标流媒体资源和所述应答流媒体信息关联存储。
  2. 根据权利要求1所述的方法,其特征在于,生成用于访问所述目标流媒体资源的访问地址包括:
    获取自身的公网IP地址和端口地址,并将所述公网IP地址和所述端口地址的组合作为用于访问所述目标流媒体资源的访问地址。
  3. 根据权利要求1所述的方法,其特征在于,向所述推流客户端反馈所述应答流媒体信息以及所述访问地址包括:
    向所述推流客户端返回响应报文,所述响应报文的响应消息体中包括所述应答流媒体信息以及所述访问地址。
  4. 根据权利要求1所述的方法,其特征在于,所述上传请求中包括用于表征所述目标流媒体资源的唯一标识;相应地,将所述经过处理的目标流媒体资源和所述应答流媒体信息关联存储包括:
    将所述经过处理的目标流媒体资源存储于指定路径下,并建立所述目标流媒体资源的唯一标识与所述应答流媒体信息的关联关系。
  5. 一种流媒体服务器,所述流媒体服务器包括存储器和处理器,所述存储 器用于存储计算机程序,其特征在于,所述计算机程序被所述处理器执行时,实现如权利要求1至4中任一所述的方法。
  6. 一种流媒体资源的下载方法,其特征在于,所述方法包括:
    接收拉流客户端发来的指向目标流媒体资源的获取请求;
    判断本地是否存在所述目标流媒体资源,若存在,生成用于访问所述目标流媒体资源的访问地址;
    向所述拉流客户端反馈所述访问地址以及所述目标流媒体资源关联的目标流媒体信息,以使得所述拉流客户端基于所述访问地址和所述目标流媒体信息获取所述目标流媒体资源。
  7. 根据权利要求6所述的方法,其特征在于,所述获取请求中包括用于表征所述目标流媒体资源的唯一标识;
    相应地,判断本地是否存在所述目标流媒体资源包括:
    在本地查询是否存在具备所述唯一标识的流媒体资源,若存在,判定本地存在所述目标流媒体资源;若不存在,判定本地不存在所述目标流媒体资源。
  8. 根据权利要求6或7所述的方法,其特征在于,所述方法还包括:
    若本地不存在所述目标流媒体资源,向所述拉流客户端反馈错误提示信息。
  9. 根据权利要求6或7所述的方法,其特征在于,生成用于访问所述目标流媒体资源的访问地址包括:
    获取自身的公网IP地址和端口地址,并将所述公网IP地址和所述端口地址的组合作为用于访问所述目标流媒体资源的访问地址。
  10. 根据权利要求6所述的方法,其特征在于,向所述拉流客户端反馈所述访问地址以及所述目标流媒体资源关联的目标流媒体信息包括:
    向所述拉流客户端返回响应报文,所述响应报文的响应消息体中包括所述访问地址以及所述目标流媒体资源关联的目标流媒体信息。
  11. 一种流媒体服务器,所述流媒体服务器包括存储器和处理器,所述存储器用于存储计算机程序,其特征在于,所述计算机程序被所述处理器执行时,实现如权利要求6至10中任一所述的方法。
  12. 一种流媒体资源的分发系统,其特征在于,所述系统包括推流客户端和流媒体服务器,其中:
    所述推流客户端,用于确定自身支持的候选流媒体信息,并向所述流媒体服务器发送指向目标流媒体资源的上传请求,所述上传请求中包括所述候选流媒体信息;接收所述流媒体服务器返回的响应报文,所述响应报文中包括所述流媒体服务器生成的应答流媒体信息和访问地址;根据所述应答流媒体信息对所述目标流媒体资源进行处理,并按照所述访问地址上传经过处理的目标流媒体资源;
    所述流媒体服务器,用于基于所述候选流媒体信息,生成应答流媒体信息,并生成用于访问所述目标流媒体资源的访问地址;向所述推流客户端反馈包含所述应答流媒体信息以及所述访问地址的响应报文;接收所述推流客户端上传的所述经过处理的目标流媒体资源,并将所述经过处理的目标流媒体资源和所述应答流媒体信息关联存储。
  13. 根据权利要求12所述的系统,其特征在于,所述系统还包括拉流客户端,所述拉流客户端用于向所述流媒体服务器发送指向所述目标流媒体资源的获取请求;接收所述流媒体服务器返回的响应报文,所述响应报文中包括所述目标流媒体资源关联的目标流媒体信息以及所述流媒体服务器生成的访问地址;基于所述访问地址和所述目标流媒体信息从所述流媒体服务器中获取所述目标流媒体资源;
    相应地,所述流媒体服务器,还用于响应所述获取请求,生成用于访问所述目标流媒体资源的访问地址;向所述拉流客户端反馈所述访问地址以及所述目标流媒体资源关联的目标流媒体信息。
  14. 根据权利要求12或13所述的系统,其特征在于,所述流媒体服务器在生成用于访问所述目标流媒体资源的访问地址时,获取自身的公网IP地址和 端口地址,并将所述公网IP地址和所述端口地址的组合作为用于访问所述目标流媒体资源的访问地址。
PCT/CN2018/086181 2018-04-18 2018-05-09 流媒体资源的上传、下载方法、分发系统及流媒体服务器 WO2019200631A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP18821981.0A EP3598716A4 (en) 2018-04-18 2018-05-09 UPSTREAM DOWNLOAD AND DOWNLOAD PROCESSES OF CONTINUOUS MULTIMEDIA RESOURCE, DISTRIBUTION SYSTEM AND CONTINUOUS MULTIMEDIA SERVER
US16/098,574 US11316910B2 (en) 2018-04-18 2018-05-09 Method for uploading and downloading streaming media resources, distribution system and streaming media server

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201810349757.X 2018-04-18
CN201810349757.XA CN110392071B (zh) 2018-04-18 2018-04-18 流媒体资源的上传、下载方法、分发系统及流媒体服务器

Publications (1)

Publication Number Publication Date
WO2019200631A1 true WO2019200631A1 (zh) 2019-10-24

Family

ID=68240538

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2018/086181 WO2019200631A1 (zh) 2018-04-18 2018-05-09 流媒体资源的上传、下载方法、分发系统及流媒体服务器

Country Status (4)

Country Link
US (1) US11316910B2 (zh)
EP (1) EP3598716A4 (zh)
CN (1) CN110392071B (zh)
WO (1) WO2019200631A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113014859A (zh) * 2019-12-20 2021-06-22 阿里巴巴集团控股有限公司 用于获得视频数据的系统、方法、装置及电子设备

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110933470B (zh) * 2019-11-29 2022-02-22 杭州当虹科技股份有限公司 一种视频数据的共享方法
CN111787372B (zh) * 2020-07-01 2023-06-23 苏州万店掌网络科技有限公司 基于多种条件调度的流媒体分发方法
CN112202833B (zh) * 2020-08-26 2023-05-23 网宿科技股份有限公司 Cdn系统、请求处理方法以及调度服务器
CN112260961B (zh) * 2020-09-23 2024-06-14 北京金山云网络技术有限公司 一种网络流量调度方法、装置、电子设备及存储介质
CN112351299B (zh) * 2020-11-05 2022-11-04 山东亚华电子股份有限公司 一种宣教广播方法及设备
CN116708530A (zh) * 2022-02-25 2023-09-05 腾讯科技(深圳)有限公司 信息交互方法、装置及计算机设备、存储介质、程序产品
CN114844870B (zh) * 2022-03-25 2024-03-26 阿里巴巴(中国)有限公司 一种媒体流获取方法、装置、电子设备及存储介质
CN115002081B (zh) * 2022-05-30 2023-12-26 重庆紫光华山智安科技有限公司 媒体流传输方法及相关装置
CN114884750B (zh) * 2022-07-07 2022-10-21 杭州筋斗腾云科技有限公司 访问的处理方法、访问处理系统及计算机系统
CN116016995B (zh) * 2022-12-02 2023-08-22 长扬科技(北京)股份有限公司 一种视频获取设备和方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102006368A (zh) * 2010-12-03 2011-04-06 重庆新媒农信科技有限公司 基于移动终端记忆卡缓存技术的流媒体音频文件播放方法
CN103179214A (zh) * 2013-04-10 2013-06-26 网宿科技股份有限公司 基于http协议的直播流推流方法和系统
US20140337433A1 (en) * 2008-05-12 2014-11-13 Microsoft Corporation Media Streams from Containers Processed by Hosted Code
CN104427354A (zh) * 2013-08-28 2015-03-18 中兴通讯股份有限公司 一种直播媒体共享的方法、流媒体服务器及节点子系统
CN106453328A (zh) * 2016-10-18 2017-02-22 乐视控股(北京)有限公司 直播视频文件的推流方法、客户端及边缘流媒体服务器

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7937443B2 (en) * 2002-03-10 2011-05-03 Talkway, Inc. Email messaging program with built-in video and/or audio media recording and/or playback capabilities
US7733808B2 (en) * 2006-11-10 2010-06-08 Microsoft Corporation Peer-to-peer aided live video sharing system
US9240214B2 (en) * 2008-12-04 2016-01-19 Nokia Technologies Oy Multiplexed data sharing
WO2011006513A2 (en) * 2009-07-13 2011-01-20 Eyad Aii Mohammad Al Qalqili Method and system for advertising on the mobile main screen by cbs technology
CN101729602B (zh) * 2009-12-11 2012-10-24 北京工业大学 一种获取p2p视频系统节目信息的方法
US9183560B2 (en) * 2010-05-28 2015-11-10 Daniel H. Abelow Reality alternate
CN103546442B (zh) * 2012-07-17 2018-10-23 中兴通讯股份有限公司 浏览器的通讯监听方法及装置
US20140195675A1 (en) * 2013-01-09 2014-07-10 Giga Entertainment Media Inc. Simultaneous Content Data Streaming And Interaction System
CN103227788B (zh) * 2013-04-17 2016-02-03 广州市和声信息技术有限公司 实现网页应用程序与sip设备进行通信的方法和系统
CN103648014A (zh) * 2013-11-15 2014-03-19 乐视致新电子科技(天津)有限公司 智能电视向移动通信终端推送资源的方法和装置
US9661106B2 (en) * 2013-12-04 2017-05-23 Facebook, Inc. Uploading and transcoding media files
CN104702565B (zh) * 2013-12-05 2019-09-17 南京中兴新软件有限责任公司 媒体资源共享的方法、共享服务器及共享系统
CN103702062A (zh) * 2013-12-27 2014-04-02 Tcl集团股份有限公司 一种音视频通讯方法、装置及系统
CN106330997B (zh) * 2015-06-19 2019-08-09 网宿科技股份有限公司 一种用于移动终端应用的内容分发的方法和系统
CN105141660B (zh) * 2015-07-24 2018-04-24 网宿科技股份有限公司 一种流媒体管理方法及系统
US10523755B1 (en) * 2016-02-17 2019-12-31 Amazon Technologies, Inc. Peer-based cloud storage for media broadcasts
CN105847264A (zh) * 2016-03-31 2016-08-10 乐视控股(北京)有限公司 一种提供流媒体服务的方法和系统
US10638192B2 (en) * 2017-06-19 2020-04-28 Wangsu Science & Technology Co., Ltd. Live streaming quick start method and system
US10477286B2 (en) * 2017-06-19 2019-11-12 Wangsu Science & Technology Co., Ltd. Streaming media file processing method and live streaming system
CN107682657B (zh) * 2017-09-13 2020-11-10 中山市华南理工大学现代产业技术研究院 一种基于WebRTC的多人语音视频通话方法及系统
CN107809683B (zh) * 2017-11-22 2020-06-09 广东电网有限责任公司教育培训评价中心 一种基于浏览器无插件的直播系统及方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140337433A1 (en) * 2008-05-12 2014-11-13 Microsoft Corporation Media Streams from Containers Processed by Hosted Code
CN102006368A (zh) * 2010-12-03 2011-04-06 重庆新媒农信科技有限公司 基于移动终端记忆卡缓存技术的流媒体音频文件播放方法
CN103179214A (zh) * 2013-04-10 2013-06-26 网宿科技股份有限公司 基于http协议的直播流推流方法和系统
CN104427354A (zh) * 2013-08-28 2015-03-18 中兴通讯股份有限公司 一种直播媒体共享的方法、流媒体服务器及节点子系统
CN106453328A (zh) * 2016-10-18 2017-02-22 乐视控股(北京)有限公司 直播视频文件的推流方法、客户端及边缘流媒体服务器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3598716A4 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113014859A (zh) * 2019-12-20 2021-06-22 阿里巴巴集团控股有限公司 用于获得视频数据的系统、方法、装置及电子设备
CN113014859B (zh) * 2019-12-20 2023-08-25 阿里巴巴集团控股有限公司 用于获得视频数据的系统、方法、装置及电子设备

Also Published As

Publication number Publication date
US11316910B2 (en) 2022-04-26
US20210243238A1 (en) 2021-08-05
EP3598716A1 (en) 2020-01-22
CN110392071B (zh) 2021-06-22
CN110392071A (zh) 2019-10-29
EP3598716A4 (en) 2020-07-29

Similar Documents

Publication Publication Date Title
WO2019200631A1 (zh) 流媒体资源的上传、下载方法、分发系统及流媒体服务器
JP6254188B2 (ja) Imsベースのdashサービスにおいて、プレゼンスサーバによりプレゼンス情報を供給する方法、および、プレゼンスサーバを介してプレゼンス情報を受信するユーザ機器(ue)
US9705864B2 (en) Media session resumption in web session restoration
US8843596B2 (en) Conversion between streaming media communication protocols
JP6279621B2 (ja) インターネットプロトコル(ip)マルチメディア・サブシステム(ims)ベースのピアツーピア(p2p)コンテンツ配信
KR101320908B1 (ko) 유니캐스트 세션들과 멀티캐스트 세션 간을 변환하기 위한방법
WO2019061521A1 (zh) 一种代理转发方法和装置、代理服务器和多级代理网络
WO2019090902A1 (zh) 屏幕共享的方法、装置、电子设备及存储介质
US20170155927A1 (en) Method, device and system for playing live video
EP3576371B1 (en) Method and system for transmitting streaming media resource
WO2017107542A1 (zh) 视频节目获取方法、设备及系统
WO2016165584A1 (zh) 一种终端之间的通信方法和装置
US9509778B2 (en) SIP-based method, apparatus and system for secure communication between MTC devices
Drolia et al. Krowd: A key-value store for crowded venues
CN103945277A (zh) 实现移动终端视频分享的方法、系统和装置
WO2014187295A1 (zh) 一种通信方法、终端及通信系统
US8892663B2 (en) Apparatus and method for establishing partnership with a peer-to-peer (P2P) service based on gossip
JP6418665B2 (ja) Imsベースのdashサービスにおいて、プレゼンスサーバによりプレゼンス情報を供給する方法、および、プレゼンスサーバを介してプレゼンス情報を受信するユーザ機器(ue)
WO2010121525A1 (zh) 一种rtsp终端获取媒体资源的方法、装置及系统
Mohammed et al. A measurement study on media streaming over wi-fi in named data networking
US20150100668A1 (en) Method and apparatus for content verification
US20240022614A1 (en) Information interaction method and apparatus
CN116647707B (zh) 组播调度方法、装置和系统
WO2016082067A1 (zh) 资源共享的方法和终端
WO2024169235A1 (zh) 内容分发的方法、电子设备和计算机可读存储介质

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2018821981

Country of ref document: EP

Effective date: 20181231

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

Ref document number: 18821981

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE