CN109005430B - Method, system, device and storage medium for on-demand playing of audio/video contents - Google Patents

Method, system, device and storage medium for on-demand playing of audio/video contents Download PDF

Info

Publication number
CN109005430B
CN109005430B CN201811082868.5A CN201811082868A CN109005430B CN 109005430 B CN109005430 B CN 109005430B CN 201811082868 A CN201811082868 A CN 201811082868A CN 109005430 B CN109005430 B CN 109005430B
Authority
CN
China
Prior art keywords
node
video
audio
content
http
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811082868.5A
Other languages
Chinese (zh)
Other versions
CN109005430A (en
Inventor
武磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Onething Technology Co Ltd
Original Assignee
Shenzhen Onething Technology Co Ltd
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 Shenzhen Onething Technology Co Ltd filed Critical Shenzhen Onething Technology Co Ltd
Priority to CN201811082868.5A priority Critical patent/CN109005430B/en
Publication of CN109005430A publication Critical patent/CN109005430A/en
Application granted granted Critical
Publication of CN109005430B publication Critical patent/CN109005430B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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/239Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
    • H04N21/2393Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/432Content retrieval operation from a local storage medium, e.g. hard-disk
    • H04N21/4325Content retrieval operation from a local storage medium, e.g. hard-disk by playing back content from the storage medium
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

When a client initiating a request for requesting supports parallel transmission, content fragments stored in a target node where the content fragments forming a target audio/video file are respectively located are simultaneously pulled from the target node, and the content fragments are transmitted to the client after assembly is completed so as to accelerate the requesting speed of audio/video resources. The application also discloses an on-demand system, an on-demand device and a computer readable storage medium of the audio/video content, and the beneficial effects are achieved.

Description

Method, system, device and storage medium for on-demand playing of audio/video contents
Technical Field
The present application relates to the field of audio/video on demand technologies, and in particular, to an on demand method, system, device and computer readable storage medium for audio/video content.
Background
With the popularization of the internet and the wide information sources in the information era, more and more people can select information of interest to watch through the network, the most common is various audio/video resources which are different from television programs played under the control of a television station, the audio/video resources on the network are higher in integration degree, can be selected at will according to the wishes of users, can be played at will, and are better in user experience.
In the prior art, in order to prevent serious consequences of a centralized storage mode when a failure occurs, a distributed storage mode formed by using storage spaces provided by a plurality of users is also provided, each data file is divided into a plurality of content fragments, the content fragments are respectively stored in different nodes according to a certain redundancy mode for storage, even if a certain user is offline or fails, the same content fragments can be obtained from other nodes, and finally, the complete data file is restored.
Although a decentralized distributed storage manner is provided based on the above manner, how to apply the manner to the aspect of on-demand of audio/video resources to accelerate the buffering speed of the resources and reach the upper limit of the user bandwidth as much as possible is a problem to be solved by those skilled in the art.
Disclosure of Invention
The application aims to provide an on-demand method of audio/video contents, when a client initiating an on-demand request supports parallel transmission, content fragments stored in a target node where the content fragments forming a target audio/video file are respectively located are simultaneously pulled, and the content fragments are transmitted to the client after assembly is completed, so that the on-demand speed of audio/video resources is accelerated.
Another object of the present application is to provide an on-demand system, apparatus and computer-readable storage medium for audio/video contents.
To achieve the above object, the present application provides an on-demand method for audio/video contents, the method comprising:
receiving a request for requesting the target audio/video;
determining whether a client initiating the on-demand request supports parallel transmission or not according to the on-demand request;
when the client supports parallel transmission, acquiring target nodes where content fragments forming the target audio/video are respectively located;
simultaneously pulling each content fragment of the target audio/video from each target node, and reassembling the content fragments into complete audio/video according to the time characteristics of each content fragment;
and returning the complete audio/video to the client.
Optionally, determining whether the client initiating the on-demand request supports parallel transmission according to the on-demand request includes:
extracting the interface type supported by the client from the on-demand request;
when the interface type comprises an MSE (mean square error) and/or a Fetch interface, judging that the client supports parallel transmission;
when the interface type does not include the MSE and/or the Fetch interface, determining that the client does not support parallel transmission.
Optionally, the obtaining target nodes where content segments constituting the target audio/video are respectively located includes:
sending a content fragment distribution request of the target audio/video to a scheduling center;
and receiving request return information which is returned by the dispatching center according to the content fragment distribution request and contains the node where each content fragment is located, and determining and forming each target node according to the request return information.
Optionally, the pulling of each content fragment of the target audio/video from each target node at the same time includes:
and simultaneously pulling each content fragment of the target audio/video from each target node in a Range mode.
Optionally, the on-demand method further includes:
and establishing a data pulling corresponding table according to each content fragment and each target node where each content fragment is respectively located.
Optionally, the on-demand method further includes:
when the client side does not support the parallel transmission, an HTTP node supporting the HTTP protocol is selected from an available node pool;
and sending the data pulling corresponding table to the HTTP node so that the HTTP node pulls each content fragment from each target node, and after each content fragment is recombined into the complete audio/video, the content fragments are transmitted to the client through an HTTP single point.
Optionally, selecting an HTTP node supporting the HTTP protocol from the available node pool, includes:
selecting all nodes supporting an HTTP (hyper text transport protocol) protocol from the available node pool to obtain a preliminary available node set;
selecting and obtaining an optimal HTTP node according to the network quality of each node in the preliminary available node set; wherein the preferred HTTP node is the node with the best network quality in the preliminary available node set;
issuing the data pull correspondence table to the HTTP node so that the HTTP node pulls each content fragment from each target node, and performs single-point transmission to the client via an HTTP protocol after reassembling each content fragment into the complete audio/video, including:
and sending the data pulling corresponding table to the preferred HTTP node so that the preferred HTTP node pulls each content fragment from each target node and transmits the content fragment to the client through an HTTP single point after the content fragment is reassembled into the complete audio/video.
Optionally, the on-demand method further includes:
when one content fragment constituting the target audio/video is positioned on N nodes at the same time, selecting a unique target node from the same content fragment node set consisting of the N nodes according to a preset selection rule; wherein N is more than or equal to 2.
To achieve the above object, the present application also provides an on-demand system for audio/video contents, comprising:
the request receiving unit of the request on demand, is used for receiving the request on demand of the goal audio/video;
a parallel transmission support judging unit, configured to determine whether a client initiating the on-demand request supports parallel transmission according to the on-demand request;
a content fragment location node determining unit, configured to, when the client supports parallel transmission, obtain a target node where each content fragment constituting the target audio/video is located;
a multi-node data pulling and assembling unit, configured to pull each content segment of the target audio/video from each target node at the same time, and reassemble the content segments into a complete audio/video according to a time characteristic of each content segment;
and the complete audio/video returning unit is used for returning the complete audio/video to the client.
Optionally, the parallel transmission support determining unit includes:
an interface type extraction subunit, configured to extract, from the on-demand request, an interface type supported by the client;
the parallel transmission support judging subunit is used for judging that the client supports parallel transmission when the interface type comprises an MSE (mean square error) and/or a Fetch interface;
and the parallel transmission non-support judging subunit is used for judging that the client does not support parallel transmission when the interface type does not comprise the MSE and/or the Fetch interface.
Optionally, the determining unit of the node where the content fragment is located includes:
a distribution request sending subunit, configured to send a content fragment distribution request of the target audio/video to a scheduling center;
each target node determining subunit is configured to receive request return information including a node where each content fragment is located, which is returned by the scheduling center according to the content fragment distribution request, and determine to form each target node according to the request return information.
Optionally, the multi-node data pulling and assembling unit includes:
and the Range multi-source data pulling subunit is used for simultaneously pulling each content fragment of the target audio/video from each target node in a Range mode.
Optionally, the on-demand method further includes:
and the corresponding table establishing unit is used for establishing a data pulling corresponding table according to each content fragment and each target node where each content fragment is respectively located.
Optionally, the on-demand method further includes:
the HTTP node selecting unit is used for selecting an HTTP node supporting an HTTP protocol from an available node pool when the client does not support the parallel transmission;
and the single-point transmission processing unit is used for sending the data pulling corresponding table to the HTTP node so that the HTTP node pulls each content fragment from each target node, and after each content fragment is recombined into the complete audio/video, the content fragments are transmitted to the client through an HTTP single point.
Optionally, the HTTP node selecting unit includes:
a preliminary available node set determining subunit, configured to select all nodes supporting an HTTP protocol from the available node pool, to obtain a preliminary available node set;
the preferred HTTP node selecting subunit is used for selecting and obtaining a preferred HTTP node according to the network quality of each node in the preliminary available node set; wherein the preferred HTTP node is the node with the best network quality in the preliminary available node set;
the single point transmission processing unit comprises:
and the preferred HTTP node transmission subunit is configured to send the data pull correspondence table to the preferred HTTP node, so that the preferred HTTP node pulls each content fragment from each target node, and performs single-point transmission to the client through an HTTP protocol after the content fragments are reassembled into the complete audio/video.
Optionally, the on-demand method further includes:
a redundant node selection unit, configured to, when a content fragment constituting the target audio/video is located on N nodes at the same time, select a unique target node from a set of same content fragment nodes composed of the N nodes according to a preset selection rule; wherein N is more than or equal to 2.
To achieve the above object, the present application also provides an on-demand device for audio/video contents, comprising:
a memory for storing a computer program;
a processor for implementing the steps of the on-demand method of audio/video content as described above when executing said computer program.
To achieve the above object, the present application also provides a computer-readable storage medium having stored thereon a computer program which, when executed by a processor, implements the steps of the on-demand method of audio/video content as described above.
Obviously, when a client initiating a request for on-demand supports parallel transmission, the content fragments stored in the target audio/video file are simultaneously pulled from the target node where the content fragments are respectively located, and are transmitted to the client after assembly is completed, so as to accelerate the on-demand speed of audio/video resources. The application also provides an on-demand system, an on-demand device and a computer readable storage medium of the audio/video content, which have the beneficial effects and are not repeated herein.
Drawings
In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the drawings needed to be used in the description of the embodiments or the prior art will be briefly introduced below, it is obvious that the drawings in the following description are only embodiments of the present application, and for those skilled in the art, other drawings can be obtained according to the provided drawings without creative efforts.
Fig. 1 is a flowchart of an on-demand method for audio/video content according to an embodiment of the present disclosure;
fig. 2 is a flowchart of determining whether parallel transmission is supported in an on-demand method of audio/video content according to an embodiment of the present application;
fig. 3 is a flowchart illustrating playing of audio/video content when one of the on-demand methods for audio/video content provided in the embodiment of the present application does not support parallel transmission;
fig. 4 is a flowchart of a method for selecting an optimal HTTP node in the method for playing audio/video content when parallel transmission is not supported according to the embodiment of the present application;
fig. 5 is a block diagram illustrating an on-demand system for audio/video content according to an embodiment of the present disclosure;
FIG. 6 is a logic diagram of an on-demand system for accelerating the buffering speed of target audio/video content through parallel transmission according to an embodiment of the present application;
fig. 7 is a logic diagram of an on-demand system for implementing target audio/video content accelerated buffering based on an HTTP protocol when a client does not support parallel transmission according to an embodiment of the present application.
Detailed Description
The core of the application is to provide an audio/video content on-demand method, system, device and computer readable storage medium, when a client initiating an on-demand request supports parallel transmission, the content fragments stored in the target audio/video file are simultaneously pulled from a target node where each content fragment is respectively located, and the content fragments are transmitted to the client after assembly is completed, so as to accelerate the on-demand speed of audio/video resources.
In order to make the objects, technical solutions and advantages of the embodiments of the present application clearer, the technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the drawings in the embodiments of the present application, and it is obvious that the described embodiments are some embodiments of the present application, but not all embodiments. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present application.
Example one
With reference to fig. 1, fig. 1 is a flowchart of an on-demand method for audio/video content according to an embodiment of the present invention, where an execution subject of the embodiment is a functional component of a client (including a web client, a PC client, and a mobile client according to a platform) capable of initiating an on-demand request, generally referred to as an SDK (Software Development Kit, herein referred to as a set of Development tools for building application Software for a specific Software package, a Software framework, a hardware platform, an operating system, and the like) in the industry, and specifically includes the following steps:
s101: receiving a request for requesting the target audio/video;
when a user clicks a play key of a certain audio/video content on a client, a corresponding functional component initiates a request for playing the target audio/video content, the request is used for requesting a node (a centralized data server in a traditional mode) with the target audio/video content to return a data file of the target audio/video, and the returned data file is played for the user through a corresponding player after being received, so that the whole playing process is completed.
S102: determining whether a client initiating the on-demand request supports parallel transmission or not according to the on-demand request;
on the basis of S101, this step aims to determine whether the client initiating the on-demand request supports parallel transmission according to the on-demand request, so whether the corresponding client supports parallel transmission can be determined according to the on-demand request, because in order to determine the type of the client initiating the on-demand request, to whom the target data file is returned, and how to return the target data, and other subsequent pending operations, when initiating the on-demand request, part of feature information of the client in which the client is located is also typically carried, which may include: client model, IP address, type of player used, type of data transfer interface supported, etc., so as to be able to determine from this information what form of organization should be used to organize the target data file to be returned, based on which protocol the data transfer is to be accomplished, etc.
The method and the device aim at determining whether a request initiating terminal supports parallel transmission or not according to an on-demand request because the method and the device realize that the target audio/video content requested by a user is presented in front of the user as soon as possible in a distributed storage form that data files are stored on a plurality of nodes in a scattered manner. Certainly, the information or field describing whether the client supports parallel transmission is not unique, and since different types of players still have great difference in principle, corresponding adjustment can be realized according to different players, so as to determine whether the request initiating end supports a parallel transmission mode capable of realizing accelerated data transmission.
One way, including but not limited to, is: the judgment is carried out according to the supported interface types, and the requirements of different actual scenes can be met due to the fact that different data interfaces designed for different players at different stages, and therefore the judgment on whether parallel transmission is supported or not can be carried out on the basis. Taking an HTML5 (hypertext markup language version 5) player as an example, if the client of the player supports an MSE interface or a Fetch interface, the HTML5 player can download data files from multiple data sources through multiple download links at the same time.
Media Source Extensions (MSE) is a new Web API (Web interface) supported by mainstream browsers such as Chrome, Safari, Edge, etc. MSE is a W3C (world wide web consortium) standard that allows JavaScript (an interpreted scripting language that is part of a browser) to dynamically construct media streams of < video > (video) and < audio > (audio). It defines objects that allow JavaScript to transfer media stream fragments to an HTML media element. By using MSE, the media stream can be dynamically modified without any plug-in. This allows the front-end JavaScript to do more things, such as transcoding, processing, and even transcoding in JavaScript. Although MSE does not allow streaming to be directly transmitted to media tags, MSE provides a core technology for building a cross-browser player, allowing a browser to push audio and video to media tags through a JavaScript API.
The utility model relates to a network request, including Fetch interface, Fetch frame, Fetch interface, more accurately, Fetch interface is a part under the Fetch frame, at the front end in-process of developing fast, in order to agree with better design mode, produced the Fetch frame, the Fetch frame is simply just for providing more powerful, efficient network request and give birth to, though there is a little compatible problem of browser at present, can use Fetch to carry out perfect network request.
Under the actual environment of using the HTML5 player, the client supporting the MSE interface and/or the Fetch interface can enable the HTML5 player to realize a parallel transmission mode, so that the purpose of accelerating the on-demand playing is realized.
S103: when the client supports parallel transmission, acquiring target nodes where content fragments forming a target audio/video are respectively located;
this step is established on the basis that the client initiating the on-demand request supports parallel transmission in the determination result of S102, and is intended to determine target nodes where content segments constituting a target audio/video are respectively located.
According to the description of the background art, each data file is further divided into content fragments in advance, and the content fragments are dispersedly stored in each node on the basis of a redundancy mode to realize decentralized distributed storage, so that correspondingly, when an on-demand request of audio/video content is received and a client requesting to initiate supports parallel transmission, each content fragment of the target audio/video needs to be taken out from each target node so as to be recombined and returned to the client requesting to initiate for playing. Therefore, this step aims to determine the storage location of each content fragment, and in the actual operation process, the target node is usually determined by means of a scheduling center which records the node storage information of each content fragment constituting all the complete audio/video, when a distribution request of each content fragment of the target audio/video is received, the target node is searched in a database of the target node, and the information of the node where each content fragment is located is returned to the request end, so that the request end simultaneously establishes data connection with the nodes according to the information of each node to pull each content fragment. Furthermore, the dispatching center can also monitor the on-line state information of each node communicated with the dispatching center.
One implementation, including but not limited to, is:
sending a content fragment distribution request of the target audio/video to a scheduling center;
and receiving request return information which is returned by the dispatching center according to the content fragment distribution request and contains the node where each content fragment is positioned, and determining and forming each target node according to the request return information.
Furthermore, because of the redundancy-based data splitting and storing mode, some content fragments may be stored in different nodes at the same time, and it is intended that when one of the nodes is disconnected due to an abnormality, a complete data file can be obtained through recombination, so that it is also possible to relate to how to select one node from a plurality of nodes and take out the desired content fragment from the selected node.
S104: simultaneously pulling each content fragment of the target audio/video from each target node, and reassembling the content fragments into complete audio/video according to the time characteristics of each content fragment;
on the basis of S103, this step is intended to pull each content fragment of the target audio/video from each target node at the same time, and reassemble the content fragments into a complete audio/video according to the time characteristics of each content fragment. It should be noted that, the simultaneous pulling described herein, the number of ways or the number of parallel pieces that can be pulled in parallel, does not necessarily need to be the same as the number of content pieces, and the pulling process of all content pieces can be completed several times under the condition that the number of content pieces is large, for example, when the target audio/video is composed of 100 different content pieces and the 100 content pieces are stored on 100 different nodes, one pulling manner is to pull the content pieces on 10 nodes simultaneously, and pull all content pieces 10 times in front and back. Of course, the adjustment can be flexibly performed according to different practical situations and the limitation factors such as the upper limit of the parallel pull number supported by different interface types.
The Range mode is one of the multi-source data pulling modes, and may also be implemented by using other data pulling modes of the same type, which is not specifically limited herein.
S105: the complete audio/video is returned to the client.
On the basis of S104, this step is intended to return the reassembled complete audio/video to the client through a corresponding path (included in the on-demand request, for example, an IP address), and complete the playing of the target audio/video by using the player of the client.
Different from the traditional method of pulling a single point from a data server, the method realizes the acceleration of the resource on demand through a parallel transmission mode on the basis of adopting the distributed storage.
Based on the above technical solution, in the audio/video content on-demand method provided in this embodiment of the present application, when a client initiating an on-demand request supports parallel transmission, content segments stored in target audio/video files are simultaneously pulled from a target node where each content segment is respectively located, and the target audio/video files are transmitted to the client after being assembled, so as to accelerate the on-demand speed of audio/video resources.
Example two
With reference to fig. 2, fig. 2 is a flowchart of determining whether parallel transmission is supported in an on-demand method for audio/video content provided in this embodiment of the present application, where this embodiment is intended to provide a specific implementation manner for S102, where the implementation completes the determination based on whether a client initiating an on-demand request supports a specific type of interface, and the specific steps are as follows:
s201: extracting the interface type supported by the client from the on-demand request;
s202: when the interface type comprises an MSE interface and/or a Fetch interface, judging that the client supports parallel transmission;
s203: when the interface type does not include MSE and/or Fetch interfaces, it is determined that the client does not support parallel transmission.
It should be noted that S202 and S203 are two parallel steps based on S201, rather than having a sequential order as with the step names.
Compared with the first embodiment, the method for judging whether parallel transmission is supported or not based on the support interface type provided by the embodiment is simpler and easier to use, and is more convenient in engineering realization.
EXAMPLE III
With reference to fig. 3, fig. 3 is a flowchart illustrating playing of audio/video content when parallel transmission is not supported in the audio/video content on-demand method provided in this embodiment of the present application, where this embodiment aims to provide a phase-change audio/video content on-demand acceleration mode based on the determination that the client does not support parallel transmission in S102, and the specific implementation steps are as follows:
s301: establishing a data pulling corresponding table according to each content fragment and each target node where each content fragment is respectively located;
the step aims to determine a target node where each content fragment constituting the target audio/video content is located according to a data pull correspondence table containing the correspondence between each content fragment and each node, so as to acquire each content fragment from the nodes.
S302: when the client side does not support the parallel transmission, an HTTP node supporting the HTTP protocol is selected from the available node pool;
because the client initiating the on-demand request does not support parallel transmission, the client can only complete the request through an HTTP Protocol (HyperText Transfer Protocol) based on a traditional single-point data transmission manner, and therefore an HTTP node supporting the HTTP Protocol needs to be optionally selected from an available node pool, where the available node pool includes a large number of available nodes, and the nodes are provided based on the user equipment, so that the supporting protocols are not consistent.
S303: and sending the data pulling corresponding table to the HTTP node so that the HTTP node pulls each content fragment from each target node, and after each content fragment is recombined into a complete audio/video, the content fragment is transmitted to the client through an HTTP single point.
On the basis of S302, this step is intended to send the data pull correspondence table to the HTTP node, so that the HTTP node pulls each content fragment from each target node, and since the client does not support parallel transmission, the required complete audio/video data must be obtained from the selected HTTP node, and since only some content fragments are stored in each node under normal conditions, under the condition that there is no complete audio/video, data completion needs to be completed according to the data pull correspondence table, so that each content fragment is reassembled into a complete audio/video and then is unicast to the client through the HTTP protocol.
On the basis of the first embodiment, in the embodiment, in a manner of judging that the request end does not support parallel data transmission, the data transmission speed is improved to a certain extent by modifying the use method based on the traditional HTTP single-point transmission protocol.
Example four
With reference to fig. 4, fig. 4 is a flowchart of a method for selecting a preferred HTTP node in a method for playing audio/video content when parallel transmission is not supported according to an embodiment of the present application, where this embodiment provides a way for selecting a preferred HTTP node on the basis of the third embodiment, so as to maximize the resource on-demand experience of a user, and an actual scenario is that there are multiple nodes supporting an HTTP protocol, and the specific steps are as follows:
s401: selecting all nodes supporting an HTTP (hyper text transport protocol) protocol from an available node pool to obtain a preliminary available node set;
s402: selecting and obtaining an optimal HTTP node according to the network quality of each node in the preliminary available node set;
the HTTP nodes are preferably the nodes with the best network quality in the preliminary available node set.
The embodiment aims to select and obtain a preferred HTPP node by measuring the network quality of each node, and certainly, a preferred HTTP node can be obtained based on other selection principles, so as to provide a good resource on-demand experience for users as much as possible.
S403: and sending the data pulling corresponding table to the preferred HTTP node so that the preferred HTTP node pulls each content fragment from each target node and performs single-point transmission to the client through an HTTP protocol after the content fragments are reassembled into the whole audio/video.
Compared with the above embodiments, in this embodiment, after all the nodes supporting the HTTP protocol are determined, the preferred HTTP node with the best network quality is further selected according to the factor of the network quality, so as to provide the best possible resource on-demand experience for the user.
EXAMPLE five
Referring to fig. 5, fig. 5 is a block diagram illustrating an on-demand system for audio/video content according to an embodiment of the present application, where the system may include:
an on-demand request receiving unit 100 for receiving an on-demand request for a target audio/video;
a parallel transmission support judgment unit 200, configured to determine whether a client initiating a request on demand supports parallel transmission according to the request on demand;
a content fragment location node determining unit 300, configured to, when the client supports parallel transmission, obtain a target node where each content fragment constituting a target audio/video is located;
a multi-node data pulling and assembling unit 400, configured to pull each content fragment of the target audio/video from each target node at the same time, and reassemble the content fragment into a complete audio/video according to the time characteristics of each content fragment;
a complete audio/video returning unit 500 for returning the complete audio/video to the client.
The parallel transmission support determining unit 200 may include:
the interface type extraction subunit is used for extracting the interface type supported by the client from the on-demand request;
the parallel transmission support judging subunit is used for judging that the client supports parallel transmission when the interface type comprises an MSE (mean square error) and/or a Fetch interface;
and the parallel transmission non-support judging subunit is used for judging that the client does not support parallel transmission when the interface type does not comprise the MSE and/or the Fetch interface.
The unit 300 for determining a node where the content fragment is located may include:
a distribution request sending subunit, configured to send a content fragment distribution request of a target audio/video to the scheduling center;
each target node determining subunit is used for receiving request return information which is returned by the scheduling center according to the content fragment distribution request and contains the node where each content fragment is located, and determining and forming each target node according to the request return information.
The multi-node data pulling and assembling unit 400 may include:
and the Range multi-source data pulling subunit is used for pulling each content fragment of the target audio/video from each target node simultaneously in a Range mode.
Further, the on-demand method may further include:
the corresponding table establishing unit is used for establishing a data pulling corresponding table according to each content fragment and each target node where each content fragment is respectively located;
the HTTP node selecting unit is used for selecting an HTTP node supporting an HTTP protocol from the available node pool when the client does not support the parallel transmission;
and the single-point transmission processing unit is used for sending the data pulling corresponding table to the HTTP node so that the HTTP node pulls each content fragment from each target node, and the content fragments are recombined into a complete audio/video and then are transmitted to the client through an HTTP single point.
Further, the HTTP node selecting unit may include:
the primary available node set determining subunit is used for selecting all nodes supporting the HTTP protocol from the available node pool to obtain a primary available node set;
the preferred HTTP node selecting subunit is used for selecting and obtaining a preferred HTTP node according to the network quality of each node in the preliminary available node set; preferably selecting the HTTP node as a node with the best network quality in the preliminary available node set;
the unicast processing unit may include:
and the preferred HTTP node transmission subunit is used for sending the data pulling corresponding table to the preferred HTTP node so that the preferred HTTP node pulls each content fragment from each target node, and the preferred HTTP node performs single-point transmission to the client through an HTTP protocol after the content fragments are reassembled into the complete audio/video.
Further, the on-demand method may further include:
the redundant node selection unit is used for selecting a unique target node from the same content fragment node set consisting of N nodes according to a preset selection rule when one content fragment forming the target audio/video is positioned on the N nodes at the same time; wherein N is more than or equal to 2.
Based on the foregoing embodiments, the present application further provides an on-demand device for audio/video content, where the on-demand device may include a memory and a processor, where the memory stores a computer program, and the processor may implement the steps provided in the foregoing embodiments when calling the computer program in the memory. Of course, the jukebox device may also include various necessary network interfaces, power supplies, and other components.
EXAMPLE six
In this embodiment, a guest cloud is taken as an example, a specific implementation manner is provided by combining this practical application scenario, and specifically includes several related parts, a huge number of guest cloud nodes, each guest cloud device is a node, a satellite domain cloud scheduling center responsible for data distributed storage and recording of related parameters, and an SDK end, where the SDK end may be specifically represented as a functional component on a mobile end (mobile device such as a mobile phone), a functional component on a fixed end (fixed device such as a PC), and a Web browser functional component on a Web end, where the mobile end, the fixed end, and the Web end are all uniformly represented by a client.
The following first gives how to implement resource on demand acceleration with parallel transmission when the client supports MSE and/or Fetch interfaces:
the client supports MSE of H5 and a Fetch interface, namely an H5 player can pull audio and video data fragments from a plurality of nodes through JS, simultaneously assemble an integrated audio and video file at the end, and transmit the audio and video data to the H5 player through the interface to complete normal video playing of the player;
as shown in fig. 6, the specific process is as follows:
1. the client triggers to play an audio and video file, such as http:// a.com/app/vodvedio.flv;
2. the SDK checks whether the client JS supports MSE and/or Fetch interface; if yes, going to step 3;
3. the SDK requests the satellite domain cloud scheduling to determine which guest playing clouds of the video file have cache resources, and the cloud scheduling returns a batch of nodes with resources to the SDK end;
4. the SDK initiates the link of the contacts, and after the SDK is connected, the SDK starts to send a data request in a RANGE mode; and finishing the accelerated downloading of the data video file.
The method also provides an implementation mode for realizing the phase-change resource on-demand acceleration in another mode when the client does not support the MSE and/or Fetch interface:
the client side does not support MSE and/or Fetch interfaces supporting H5, namely the H5 player cannot pull audio and video data fragments from multiple nodes through JS, and in such a situation, the H5 player only supports requesting a standard http protocol from one acceleration node to finish accelerated downloading of data.
As shown in fig. 7, the specific process is as follows:
1. the client triggers to play an audio and video file, such as http:// a.com/app/vodvedio.flv;
2. the SDK checks whether the client JS supports MSE and/or Fetch interface; if not, going to the step 3;
3. the SDK requests a star domain cloud scheduling request which guest playing clouds of the video file have cache resources, the guest playing cloud nodes are required to support the HTTP, and the cloud scheduling returns the best HTTP guest playing cloud nodes to the SDK end;
4. the SDK end initiates an audio and video data request to the HTTP guest playing cloud node through an HTTP protocol;
5. if the HTTP guest cloud node has complete data of the video, if so, all the data are transmitted to the SDK playing end, and if not, the step 6 is carried out;
6. the HTTP guest playing cloud node can simultaneously initiate a list request for acquiring the audio and video resources from the satellite domain cloud scheduling;
7. the cloud scheduling returns a batch of resource-hitting guest-playing cloud nodes to the HTTP guest-playing cloud nodes;
8. the HTTP guest playing cloud node can be linked with the batch of guest playing cloud nodes concurrently, and meanwhile, a request for pulling the data piece is initiated;
9. and the HTTP guest playing cloud node sends the complete video file to the playing end to finish file acceleration and playing of the playing end.
Because the situation is complicated and cannot be illustrated by a list, a person skilled in the art can realize that many examples exist according to the basic method principle provided by the application and the practical situation, and the protection scope of the application should be protected without enough inventive work.
The present application also provides a computer-readable storage medium, on which a computer program is stored, which, when executed by an execution terminal or processor, can implement the steps provided by the above-mentioned embodiments. The storage medium may include: various media capable of storing program codes, such as a usb disk, a removable hard disk, a Read-Only Memory (ROM), a Random Access Memory (RAM), a magnetic disk, or an optical disk.
The principle and the implementation of the present application are described herein by applying specific examples, and in order to make the various embodiments have a progressive relationship, each embodiment focuses on the differences from the other embodiments, and the same and similar parts among the various embodiments may be referred to each other. For the apparatus disclosed in the embodiments, reference is made to the corresponding method section. The above description of the embodiments is only intended to help understand the method of the present application and its core ideas. It will be apparent to those skilled in the art that various changes and modifications can be made in the present invention without departing from the principles of the invention, and these changes and modifications also fall within the scope of the claims of the present application.
It is further noted that, in the present specification, relational terms such as first and second, and the like are used solely to distinguish one entity or action from another entity or action without necessarily requiring or implying any actual such relationship or order between such entities or actions. Also, the terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising an … …" does not exclude the presence of other identical elements in a process, method, article, or apparatus that comprises the element.

Claims (9)

1. A method for on-demand playing of audio/video content, comprising:
receiving a request for requesting the target audio/video;
determining whether a client initiating the on-demand request supports parallel transmission or not according to the on-demand request;
when the client supports parallel transmission, acquiring target nodes where content fragments forming the target audio/video are respectively located;
simultaneously pulling each content fragment of the target audio/video from each target node, and reassembling the content fragments into complete audio/video according to the time characteristics of each content fragment;
returning the complete audio/video to the client;
wherein, still include:
establishing a data pulling corresponding table according to each content fragment and each target node where each content fragment is respectively located;
wherein, still include:
when the client side does not support the parallel transmission, an HTTP node supporting the HTTP protocol is selected from an available node pool;
and sending the data pulling corresponding table to the HTTP node so that the HTTP node pulls each content fragment from each target node, and after each content fragment is recombined into the complete audio/video, the content fragments are transmitted to the client through an HTTP single point.
2. The on-demand method of claim 1, wherein determining whether a client initiating the on-demand request supports parallel transmission based on the on-demand request comprises:
extracting the interface type supported by the client from the on-demand request;
when the interface type comprises an MSE (mean square error) and/or a Fetch interface, judging that the client supports parallel transmission;
when the interface type does not include the MSE and/or the Fetch interface, determining that the client does not support parallel transmission.
3. The on-demand method according to claim 1, wherein obtaining target nodes where content segments constituting the target audio/video are respectively located comprises:
sending a content fragment distribution request of the target audio/video to a scheduling center;
and receiving request return information which is returned by the dispatching center according to the content fragment distribution request and contains the node where each content fragment is located, and determining and forming each target node according to the request return information.
4. The on-demand method according to claim 1, wherein the simultaneously pulling each content segment of the target audio/video from each of the target nodes comprises:
and simultaneously pulling each content fragment of the target audio/video from each target node in a Range mode.
5. The on-demand method according to claim 1, wherein selecting an HTTP node supporting an HTTP protocol from a pool of available nodes comprises:
selecting all nodes supporting an HTTP (hyper text transport protocol) protocol from the available node pool to obtain a preliminary available node set;
selecting and obtaining an optimal HTTP node according to the network quality of each node in the preliminary available node set; wherein the preferred HTTP node is the node with the best network quality in the preliminary available node set;
issuing the data pull correspondence table to the HTTP node so that the HTTP node pulls each content fragment from each target node, and performs single-point transmission to the client via an HTTP protocol after reassembling each content fragment into the complete audio/video, including:
and sending the data pulling corresponding table to the preferred HTTP node so that the preferred HTTP node pulls each content fragment from each target node and transmits the content fragment to the client through an HTTP single point after the content fragment is reassembled into the complete audio/video.
6. The on-demand method according to any one of claims 1 to 5, further comprising:
when one content fragment constituting the target audio/video is positioned on N nodes at the same time, selecting a unique target node from the same content fragment node set consisting of the N nodes according to a preset selection rule; wherein N is more than or equal to 2.
7. An on-demand system for audio/video content, comprising:
the request receiving unit of the request on demand, is used for receiving the request on demand of the goal audio/video;
a parallel transmission support judging unit, configured to determine whether a client initiating the on-demand request supports parallel transmission according to the on-demand request;
a content fragment location node determining unit, configured to, when the client supports parallel transmission, obtain a target node where each content fragment constituting the target audio/video is located;
a multi-node data pulling and assembling unit, configured to pull each content segment of the target audio/video from each target node at the same time, and reassemble the content segments into a complete audio/video according to a time characteristic of each content segment;
a complete audio/video returning unit, configured to return the complete audio/video to the client;
wherein, this on-demand system still includes:
the corresponding table establishing unit is used for establishing a data pulling corresponding table according to each content fragment and each target node where each content fragment is respectively located;
the HTTP node selecting unit is used for selecting an HTTP node supporting an HTTP protocol from the available node pool when the client does not support the parallel transmission;
and the single-point transmission processing unit is used for sending the data pulling corresponding table to the HTTP node so that the HTTP node pulls each content fragment from each target node, and the content fragments are recombined into a complete audio/video and then are transmitted to the client through an HTTP single point.
8. An on-demand device for audio/video content, comprising:
a memory for storing a computer program;
processor for implementing an on-demand method of audio/video content as claimed in any one of claims 1 to 6 when executing said computer program.
9. A computer-readable storage medium, having stored thereon a computer program which, when being executed by a processor, implements an on-demand method of audio/video content according to any one of claims 1 to 6.
CN201811082868.5A 2018-09-17 2018-09-17 Method, system, device and storage medium for on-demand playing of audio/video contents Active CN109005430B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811082868.5A CN109005430B (en) 2018-09-17 2018-09-17 Method, system, device and storage medium for on-demand playing of audio/video contents

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811082868.5A CN109005430B (en) 2018-09-17 2018-09-17 Method, system, device and storage medium for on-demand playing of audio/video contents

Publications (2)

Publication Number Publication Date
CN109005430A CN109005430A (en) 2018-12-14
CN109005430B true CN109005430B (en) 2021-05-18

Family

ID=64591856

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811082868.5A Active CN109005430B (en) 2018-09-17 2018-09-17 Method, system, device and storage medium for on-demand playing of audio/video contents

Country Status (1)

Country Link
CN (1) CN109005430B (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109714606A (en) * 2018-12-29 2019-05-03 深圳市网心科技有限公司 A kind of HLS document play-back method, system and electronic equipment and storage medium
CN109788301B (en) * 2019-01-08 2021-12-03 深圳市网心科技有限公司 Live broadcast method, terminal equipment, live broadcast system and computer readable storage medium of streaming media
CN112929756B (en) * 2021-03-05 2023-07-21 深圳市迅雷网络技术有限公司 Video on demand method, P2P node and computer readable storage medium
CN114257835A (en) * 2021-12-31 2022-03-29 广东省教育研究院 Live broadcast system based on education cloud platform and live broadcast method thereof

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101087403A (en) * 2007-05-31 2007-12-12 吴彬 Distributed stream media order system based on P2P technology and implementation method for stream media program order
CN101959054A (en) * 2009-07-14 2011-01-26 中国电信股份有限公司 Integrated P2P (Peer-To-Peer) VOD (Video-On-Demand) system and partner node selecting method
CN102063486A (en) * 2010-12-28 2011-05-18 东北大学 Multi-dimensional data management-oriented cloud computing query processing method
CN102143237A (en) * 2011-05-09 2011-08-03 宋健 Grid-based Internet content delivery method and system
CN102196298A (en) * 2011-05-19 2011-09-21 广东星海数字家庭产业技术研究院有限公司 Distributive VOD (video on demand) system and method
CN105392068A (en) * 2015-11-04 2016-03-09 合一网络技术(北京)有限公司 Distributed multi-transmission channel network live video parallel distribution method and system
CN106789956A (en) * 2016-12-01 2017-05-31 武汉市烽视威科技有限公司 A kind of P2P order methods and system based on HLS

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9613113B2 (en) * 2014-03-31 2017-04-04 International Business Machines Corporation Parallel bootstrap aggregating in a data warehouse appliance

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101087403A (en) * 2007-05-31 2007-12-12 吴彬 Distributed stream media order system based on P2P technology and implementation method for stream media program order
CN101959054A (en) * 2009-07-14 2011-01-26 中国电信股份有限公司 Integrated P2P (Peer-To-Peer) VOD (Video-On-Demand) system and partner node selecting method
CN102063486A (en) * 2010-12-28 2011-05-18 东北大学 Multi-dimensional data management-oriented cloud computing query processing method
CN102143237A (en) * 2011-05-09 2011-08-03 宋健 Grid-based Internet content delivery method and system
CN102196298A (en) * 2011-05-19 2011-09-21 广东星海数字家庭产业技术研究院有限公司 Distributive VOD (video on demand) system and method
CN105392068A (en) * 2015-11-04 2016-03-09 合一网络技术(北京)有限公司 Distributed multi-transmission channel network live video parallel distribution method and system
CN106789956A (en) * 2016-12-01 2017-05-31 武汉市烽视威科技有限公司 A kind of P2P order methods and system based on HLS

Also Published As

Publication number Publication date
CN109005430A (en) 2018-12-14

Similar Documents

Publication Publication Date Title
CN109005430B (en) Method, system, device and storage medium for on-demand playing of audio/video contents
EP3343844B1 (en) System and method for use of a media content bot in a social messaging environment
AU2018205094A1 (en) Application discovery
KR102169188B1 (en) Mobile-assisted television sign-in using discovery and launch protocols
CN101505253B (en) Method and apparatus for providing data to network appliance in auxiliary appliance of network appliance
US8990325B2 (en) Real-time and interactive community-based content publishing system
WO2017107542A1 (en) Video program obtaining method, device and system
CN108810052B (en) Live broadcast server selection method and device
US20090106357A1 (en) Synchronized Media Playback Using Autonomous Clients Over Standard Internet Protocols
US20110307933A1 (en) Systems and methods for implementing server side push mechanisms for internet protocol television (iptv) updates
US10757195B2 (en) Device interconnection and service discovery via a communication cloud
US10027609B2 (en) Experience redirection with interactive feature changes
CN103220297B (en) Method for carrying out multi-screen interaction through social network
CN105100839A (en) Video file downloading method, device, server and terminal equipment
CN103702178A (en) Play method and electronic equipment
US20110302269A1 (en) Flexible data structures and protocols
US20230009446A1 (en) Enabling media features provided on a first screen device to be presented on a second screen device
CN105812839A (en) Video stream data acquisition method, page data transmission method, system and network server
US8973082B2 (en) Interactive program system
CN109948082A (en) Live information processing method and processing device, electronic equipment, storage medium
US8156547B2 (en) Methods and systems for device-independent portable session synchronization
CN101494761A (en) Method for processing Blog content
EP3079338B1 (en) Method for web service supporting synchronous hosting of multiple devices
JP5229287B2 (en) Karaoke network system, centralized management device
US9167316B2 (en) Reusable media sources for online broadcast data

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant