WO2014121685A1 - 流媒体请求方法及控制器 - Google Patents
流媒体请求方法及控制器 Download PDFInfo
- Publication number
- WO2014121685A1 WO2014121685A1 PCT/CN2014/070798 CN2014070798W WO2014121685A1 WO 2014121685 A1 WO2014121685 A1 WO 2014121685A1 CN 2014070798 W CN2014070798 W CN 2014070798W WO 2014121685 A1 WO2014121685 A1 WO 2014121685A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- code rate
- client
- media
- rate
- request message
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000013467 fragmentation Methods 0.000 claims description 118
- 238000006062 fragmentation reaction Methods 0.000 claims description 118
- 239000012634 fragment Substances 0.000 claims description 44
- 230000007423 decrease Effects 0.000 claims description 5
- 238000012935 Averaging Methods 0.000 claims description 4
- 230000003247 decreasing effect Effects 0.000 claims 1
- 230000006870 function Effects 0.000 description 59
- 230000008569 process Effects 0.000 description 16
- 230000005540 biological transmission Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 230000003044 adaptive effect Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 230000006399 behavior Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- CSRZQMIRAZTJOY-UHFFFAOYSA-N trimethylsilyl iodide Substances C[Si](C)(C)I CSRZQMIRAZTJOY-UHFFFAOYSA-N 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000012092 media component Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/612—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/764—Media network packet handling at the destination
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/23439—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/8543—Content authoring using a description language, e.g. Multimedia and Hypermedia information coding Expert Group [MHEG], eXtensible Markup Language [XML]
Definitions
- Streaming media refers to multimedia content such as audio and video distributed in real time on the Internet (Internet, called IP) in the form of data streams.
- Streaming media technology refers to the technology of publishing multimedia data streams on IP networks.
- the streaming media technology adopts a streaming transmission mode, that is, the media server compresses and encodes the entire multimedia file into a plurality of compressed packages, and sequentially transmits them to the client in real time; the client can decompress the compressed packets transmitted before the playback, and receive the subsequent transmissions. Compress the package, saving waiting time.
- the traditional streaming media transmission technology uses Real-time Transport Protocol (RTP) and RTP Control Protocol (RTT Control Protocol) to transmit real-time streaming media, such as audio streams, video streams, and subtitle streams. Wait.
- RTP Real-time Transport Protocol
- RTP Control Protocol RTP Control Protocol
- the Hypertext transfer protocol (Streaming) and the Real Time Messaging Protocol (RTMP) have been improved on the basis of traditional streaming media.
- a plurality of code rates are selected by the client, that is, a media content is divided into different fragments of different code rates on the media server side, and the media server transmits fragments of different code rates to the client according to the request of the client.
- Dynamic Adaptive Streaming over HTTP DASH defined by 3GPP is a common HTTP streaming service. It mainly processes media content and encapsulates it according to a preset format to generate media content.
- the client determines the requested media fragmentation rate according to the estimated available bandwidth value and the media fragmentation rate value given in the MPD. Since the client estimates the available bandwidth value only according to its own situation, the accuracy of the available bandwidth estimation is not high, which results in low accuracy of the requested media fragmentation rate. Summary of the invention
- the embodiment of the invention provides a streaming media request method and a controller for improving the accuracy of the requested media slice rate.
- the first aspect provides a streaming media request method, including:
- the controller receives a media presentation description MPD request message sent by the first client in all the clients, where the MPD request message carries the identity identification information of the first client;
- the controller After receiving the MPD request message, the controller acquires network congestion level information corresponding to the network where the first client is located, and obtains, according to the identity identification information of the first client, the first client. User subscription level information, and forwarding the MPD request message to the media server;
- the controller receives the MPD file returned by the media server according to the MPD message, and obtains a media fragmentation rate supported by the media server from the MPD file, according to the first client in the MPD file. Determining, by the preset utility function, the utility function corresponding to the media content, and forwarding the MPD file to the first client;
- the controller receives a first media fragmentation request message sent by the first client according to the MPD file, where the first media fragmentation request message carries a request code rate, where the request code rate refers to the a coded code rate corresponding to the media slice in the media content requested by the first client to the media server;
- the controller obtains, according to the utility function corresponding to the media content, the network congestion level information, the user subscription level information, and the media fragmentation rate supported by the media server, the first client corresponding to the first client a target code rate, and replacing the request code rate in the first media fragmentation request message with the target code rate corresponding to the first client, and sending the target code rate to the media service And the server requests the media fragment corresponding to the target code rate to the media server.
- the controller according to the utility function corresponding to the media content, the network congestion level, the user subscription level information, and the media server The supported media fragment rate is obtained, and the target bit rate corresponding to the first client is obtained, including:
- the controller obtains each client according to a utility function corresponding to the media content and a target code rate corresponding to each client in all clients when the controller receives the first media fragmentation request message. Corresponding utility values, and averaging the utility values corresponding to all clients to obtain an average utility value;
- the controller obtains, according to the utility function corresponding to the media content, the average utility value, the user subscription level information, and the media fragmentation rate supported by the media server, the first client corresponding to the first client One code rate
- the controller adjusts the first code rate according to the network congestion level information and the media slice rate supported by the media server, to obtain a target code rate corresponding to the first client.
- the controller according to the utility function corresponding to the media content, the average utility value, the user
- the first level rate corresponding to the first client is obtained by the subscription level information and the media fragment rate supported by the media server, including:
- the controller calculates an initial code rate according to the formula wU b H r ;
- W represents a weight corresponding to the user subscription level information, and the higher the user level identified by the user subscription level information, the smaller the weight corresponding to the user subscription level information; e/7 represents the initial code rate. ; t (b re / 7) represents a utility function corresponding to the media content of the initial code rate variable; 0C is a preset constant value; ⁇ is the average utility value.
- the controller is configured according to the network congestion level information And a media slice rate supported by the media server, for the first code The rate is adjusted to obtain a target bit rate corresponding to the first client, including:
- the controller corresponds to a target of all clients except the first client in the order that the first media fragmentation request message is received by the controller according to a sequence from large to small. Sorting the code rate and the first code rate, if the first code rate is located before the designated position in the sorting result and the network congestion level identified by the network congestion level information is greater than a preset level threshold, The media fragment rate supported by the media server decreases the first code rate, obtains a second code rate, and obtains a target code rate corresponding to the first client according to the second code rate.
- the controller obtains a target code corresponding to the first client Rate, including:
- the controller directly uses the second code rate as a target code rate corresponding to the first client;
- the controller separately calculates a fairness value corresponding to the request code rate and the second code rate according to the request code rate and the utility value corresponding to the second code rate, and respectively calculate the request code Calculating a stability value corresponding to the second code rate, and calculating, according to the fairness value and the stability value corresponding to the request code rate, an average generation value corresponding to the request code rate, according to the second code Calculating a fairness value and a stability generation value corresponding to the rate, calculating an average generation value corresponding to the second code rate, and selecting a code rate having a small average value from the request code rate and the second code rate as a The target bit rate corresponding to the first client.
- the controller according to the requested code rate, the utility value corresponding to the second code rate Calculating a fairness value corresponding to the request code rate and the second code rate, respectively, including:
- the controller according to the formula And calculating a fairness value corresponding to the request code rate and the second code rate, respectively, where the controller separately calculates a stability value corresponding to the request code rate and the second code rate, including: The controller according to the formula ⁇ ⁇ , respectively calculating a stability cost value corresponding to the request code rate or the second code rate;
- the controller calculates an average generation value corresponding to the request code rate according to the fairness value and the stability cost value corresponding to the request code rate, and the fairness value and stability generation corresponding to the second code rate Value, calculating an average generation value corresponding to the second code rate, including:
- the controller calculates an average generation value corresponding to the request code rate and the second code rate according to the formula ⁇ (b) + S stabilit b); wherein " ⁇ ⁇ W represents the requested code rate or the location a fairness value corresponding to the second code rate, a utility value corresponding to the second code rate, a utility value corresponding to the request code rate or the second code rate, indicating the request code rate or the first
- the stability code value corresponding to the two code rate "representing the number of code rate switching times of the first client in a specified time, ⁇ indicating the switching range of the first client when the code rate switching occurs last time;
- the value of the request is the request code rate or the second code rate, and represents a target code corresponding to the second media fragmentation request message that is sent by the first client before sending the first media fragmentation request message.
- Rate; SF b represents the average code value corresponding to the request code rate or the second code rate, which is a preset constant value.
- the second possible implementation of the first aspect is in combination with the first aspect or the first possible implementation of the first aspect or the second possible aspect of the first aspect Implementation or a third possible implementation of the first aspect or a fourth possible implementation of the first aspect or a fifth possible implementation of the first aspect, a sixth possible implementation in the first aspect
- the controller After receiving the MPD request message, acquires network congestion level information corresponding to the network where the first client is located, and obtains the first client according to the identity identifier information of the first client.
- the corresponding user subscription level information includes: the controller, after receiving the MPD request message, sending a first acquisition request message to the base station, where the first acquisition request message carries the identity of the first client The controller receives the network congestion level information returned by the base station according to the first acquisition request message, and the first client User identification information;
- the controller stores the attribute to the user according to the user identification information of the first client
- the SPR sends a second acquisition request message, where the second acquisition request message carries the first client End user identification information;
- the controller receives the user subscription level information returned by the SPR according to the second acquisition request message.
- the second aspect provides a controller, including:
- a first receiving module configured to receive a media presentation description MPD request message sent by the first client in the client, where the MPD request message carries the identity information of the first client;
- a first acquiring module configured to: after the first receiving module receives the MPD request message, obtain network congestion level information corresponding to the network where the first client is located, according to the identity identification information of the first client, Obtaining the user subscription level information corresponding to the first client; the first forwarding module is configured to forward the MPD request message to the media server after the first receiving module receives the MPD request message;
- a second receiving module configured to receive an MPD file returned by the media server according to the MPD message
- a second obtaining module configured to acquire, from the MPD file, a media fragmentation rate supported by the media server, and according to the identification information of the media content requested by the first client in the MPD file, Determining, in the utility function, a utility function corresponding to the media content;
- a second forwarding module configured to forward the MPD file to the first client
- a third receiving module configured to receive a first media fragmentation request message sent by the first client according to the MPD file,
- the first media fragmentation request message carries a request code rate, where the request code rate is a coded code rate corresponding to the media slice in the media content requested by the first client to the media server;
- a third obtaining module configured to obtain the first client according to a utility function corresponding to the media content, the network congestion level information, the user subscription level information, and a media fragmentation rate supported by the media server The target bit rate corresponding to the end;
- a third forwarding module configured to replace the request code rate in the first media fragmentation request message with a target code rate corresponding to the first client, and send the content to the media server to send to the media
- the server requests the media slice corresponding to the target bit rate.
- the third acquiring module includes: a first obtaining unit, configured to obtain, according to a utility function corresponding to the media content, and a target code rate corresponding to each client in all clients when the controller receives the first media fragmentation request message, The utility value corresponding to each client, and averaging the utility values corresponding to all clients to obtain the average utility value;
- a second acquiring unit configured to obtain the first client according to a utility function corresponding to the media content, the average utility value, the user subscription level information, and a media fragmentation rate supported by the media server Corresponding first code rate;
- a third acquiring unit configured to adjust the first code rate according to the network congestion level information and a media fragment rate supported by the media server, to obtain a target code rate corresponding to the first client .
- the second acquiring unit is specifically configured to calculate an initial code according to the formula ⁇ / 1 0 ⁇ Rate, determining, according to a size relationship between the initial code rate and a media slice rate supported by the media server, a media slice rate supported by the media server that is closest to the initial code rate a media slice rate as the first code rate;
- W represents a weight corresponding to the user subscription level information, and the higher the user level identified by the user subscription level information, the smaller the weight corresponding to the user subscription level information; e/7 represents the initial code rate. ; t (b re / 7) represents a utility function corresponding to the media content of the initial code rate variable; 0C is a preset constant value; ⁇ is the average utility value.
- the third acquiring unit is specifically configured to a sequence of large and small, corresponding target rate and corresponding number of the clients in all clients except the first client when the controller receives the first media fragmentation request message Sorting according to a code rate, if the first code rate is located before the designated position in the sorting result and the network congestion level identified by the network congestion level information is greater than a preset level threshold, according to the media server support
- the media slice rate decreases the first code rate, obtains a second code rate, and obtains a target code corresponding to the first client according to the second code rate.
- the target bit rate corresponding to the client includes:
- the third obtaining unit is specifically configured to directly use the second code rate as a target code rate corresponding to the first client;
- the third obtaining unit is specifically configured to calculate, according to the request code rate and the utility value corresponding to the second code rate, a fairness value corresponding to the request code rate and the second code rate, respectively Calculating a stability cost value corresponding to the request code rate and the second code rate, and calculating an average generation value corresponding to the request code rate according to the fairness value and the stability cost value corresponding to the request code rate, according to Calculating a fairness value and a stability cost value corresponding to the second code rate, calculating an average generation value corresponding to the second code rate, and selecting an average generation value from the request code rate and the second code rate
- the code rate is used as the target code rate corresponding to the first client.
- the third acquiring unit is specifically configured to use a formula according to
- Calculating a fairness value corresponding to the request code rate and the second code rate calculates the cost values request rate stability or rate corresponding to the second, the public ⁇ PS O S w calculates the average requested bit rate and cost values corresponding to the second coding rate, and select a code rate of the average code value of the request code rate and the second code rate is used as a target code rate corresponding to the first client;
- ⁇ represents a fairness value
- U b represents a utility value corresponding to the requested code rate or the second code rate
- S b representing a stability generation value
- M represents the switching amplitude of the first client when the rate switching occurs last time;
- the value of b is the request code rate or the second code rate, indicating that the first client is transmitting the first a target code rate corresponding to a second media fragmentation request message that is sent last time before
- the first acquiring module is specifically configured to receive, at the first receiving module After the MPD request message, the first acquisition request message is sent to the base station, where the first acquisition request message carries the identity identification information of the first client, and receives the return that the base station returns according to the first acquisition request message.
- the network congestion level information and the user identifier information of the first client send a second acquisition request message to the user attribute storage SPR, where the second acquisition request message carries Describe the user identification information of the first client, and receive the user subscription level information returned by the SPR according to the second acquisition request message.
- the streaming media request method and the controller provided by the embodiment of the present invention, receives the MPD request message sent by the client, and after receiving the MPD request message, acquires network congestion level information and user subscription level information, and forwards the MPD request message.
- the corresponding utility function after receiving the media fragmentation request message sent by the client, is obtained according to the utility function corresponding to the media content, the network congestion level information, the user subscription level information, and the media fragmentation rate supported by the media server.
- the target code rate is sent to the media server after the request code rate in the media slice request message is replaced with the target code rate, to request the media server to correspond to the media slice corresponding to the target bit rate, in the foregoing process, the controller Full consideration of network congestion and
- the information such as the subscription level and the media fragment rate requested by the client are favorable for providing a more suitable media fragmentation rate, improving the accuracy of the requested media fragmentation rate, and facilitating the provision of reasonableness for the client. , differentiated media services.
- FIG. 1 is a flowchart of a streaming media request method according to an embodiment of the present invention
- 2 is a schematic structural diagram of an MPD file according to an embodiment of the present invention
- FIG. 3 is a schematic diagram of a variation of a utility function according to an embodiment of the present invention
- FIG. 4 is a schematic diagram of a network architecture for implementing a DASH service according to an embodiment of the present invention
- FIG. 6 is a schematic structural diagram of a controller according to an embodiment of the present invention
- FIG. 7 is a schematic structural diagram of another controller according to an embodiment of the present invention.
- the technical solutions in the embodiments of the present invention are clearly and completely described in the following with reference to the accompanying drawings in the embodiments of the present invention.
- the embodiments are a part of the embodiments of the invention, and not all of the embodiments. All other embodiments obtained by a person of ordinary skill in the art based on the embodiments of the present invention without creative efforts are within the scope of the present invention.
- FIG. 1 is a flowchart of a streaming media request method according to an embodiment of the present invention. As shown in FIG. 1, the method in this embodiment includes:
- Step 101 The controller receives an MPD request message sent by the first client in all the clients, where the MPD request message carries the identity information of the first client.
- the controller in this embodiment refers to a controller that supports DASH services, and may also be referred to as a DASH controller.
- the controller is located between the client and the media server, and is mainly responsible for adjusting the media fragment rate requested by the client to the media server.
- the first client first sends an MPD request message to request an MPD file from the media server, and carries the identity information of the first client in the MPD request message, so that the media server knows which client the MPD file is requested. .
- the controller receives the MPD request message sent by the first client, and parses the MPD request message to obtain the identity information of the first client.
- the identity information of the first client may be a username, an IP address, and the like corresponding to the first client.
- Step 102 After receiving the MPD request message, the controller acquires network congestion level information corresponding to the network where the first client is located, and obtains the first information according to the identity identifier information of the first client. User subscription level information corresponding to a client, and forwarding the MPD request message to the media server.
- the controller obtains the network congestion level information corresponding to the network where the first client is located after receiving the MPD request message.
- the user subscription level information corresponding to the first client is obtained.
- the network congestion level information is used to identify the congestion status of the network, and is used to help understand the overall resource status of the network, and help to correctly estimate the available bandwidth of the network, thereby facilitating selection of media fragments with appropriate code rates.
- the user subscription level information is used to identify the subscription level of the corresponding user of the first client. Based on this, the resource allocation of the user may be known to a certain extent. Generally, the higher the user subscription level, the more resources the user allocates.
- the controller After receiving the MPD request message, the controller is also responsible for forwarding the MPD request message to the media server, so that the media server returns an MPD file to the client according to the MPD request message.
- the process of the controller acquiring the network congestion level information, the process of the controller acquiring the user subscription level information, and the process of the controller forwarding the MPD request message to the media server can be performed independently of each other.
- the controller may send a first acquisition request message to the base station in the network, where the first acquisition request message carries the identity identification information of the first client;
- the controller receives the network congestion level information returned by the base station according to the first acquisition request message and the user identification information of the first client.
- the controller stores the user attribute according to the user identifier information of the first client.
- the Profile Repository called SPR, obtains the user subscription level information.
- the controller specifically obtains network congestion level information from the base station, and acquires user subscription level information from the SPR.
- the user identification information of the first client is different from the identity information of the first client, and mainly refers to the identifier information used internally. For example, it may be a temporary identifier of the first client (Temporary Mobile Subscriber Identity, which is called TMSI).
- TMSI Temporal Mobile Subscriber Identity
- the controller may periodically obtain network congestion level information from the base station to ensure real-time performance of the network congestion level information, which is beneficial to improving subsequent network congestion level.
- the accuracy of the target bit rate may be used to determine whether the network congestion level information is beneficial to improving subsequent network congestion level.
- Step 103 The controller receives the MPD file returned by the media server according to the MPD request message, and obtains a media fragmentation rate supported by the media server from the MPD file, according to the media requested by the first client in the MPD file.
- the identification information of the content determines a utility function corresponding to the media content from a preset utility function, and forwards the MPD file to the first client.
- the media server After the controller forwards the MPD request message to the media server, the media server returns the MPD file to the client through the controller according to the MPD request message. Specifically, the controller receives the MPD file returned by the media server, where the MPD file carries the identification information of the media content requested by the first client, for example, the name of the media content, the URL, and the like, and carries the media server support. Media fragment rate and other information.
- the MPD file is a description of the media content requested by the first client, and mainly includes descriptions of media fragments, request constructs, multiple code rates, and the like.
- the MPD file is a document in xml format, and the first client can construct the appropriate HTTP-URL by using the metadata included in the MPD file to obtain the media fragment.
- the process of generating a media fragmentation request according to the URLs in the MPD file is not described in detail in the embodiment, and may be implemented by referring to the prior art.
- the multipurpose Internet Mail Extensions (MP) type of the MPD file is "application/dash+xml", and the MIME type of the MPD delta file is "application/dashdelta+xml”.
- the composition format of the MPD file mainly includes multiple periods (Period), each period includes multiple adaptation sets (AdaptationSets), and each adaptive set includes multiple representations (Representation), each The representation includes multiple fragments (Segment).
- An MPD file is a file that describes the entire media content, including many time-based information blocks (ie, the above-mentioned period). There are many different coded versions of media segments in each period, including bit rate, language, title, subtitle. Different media segments, this information is unchanged during an MPD update cycle.
- the adaptive set represents media content components that can be interleaved to encode, language/media component type/role/access attribute/code rate attributes, as shown in Table 1 as an example of an adaptive set.
- D video / audio DAI DA2 DA3 As shown in Figure 2, one line is an adaptive set, followed by the representation, user switching is switched at this level, switching from one Representation to another Representation, can be different code Rate switching, switching between different audio encoding modes, language switching, etc.
- the controller can obtain the media slice rate supported by the media server, and can obtain the identification information of the media content.
- the mapping relationship between the identification information of the media content and the utility function corresponding to the media content is pre-stored on the controller, and based on this, the controller may acquire a utility function corresponding to the media content requested by the first client.
- Utility is the actual performance that is achieved when an application uses bandwidth.
- the utility function is an expression that characterizes the mathematical relationship between bandwidth and application performance. Among them, the utility function of the DASH service is used to measure
- the utility function of the DASH service is an increasing function, and the expression is as shown in equation (1).
- R A( ⁇ - e BR ) ( 1 )
- R represents the code rate of the media slice and is a set of discrete values.
- R may be the request bit rate carried by the media slice request message. It may also be a target bit rate calculated according to the request bit rate in the media fragmentation request message sent by the client last time. It is known that the maximum utility offset value, the best utility available to the user, is known. The maximum code rate representing the media slice is known, and the value of S is used to determine the shape of the utility function, which is a constant based on the media content and is known. When R tends to the dish, the value of the utility function tends to A. The curve of the utility function is shown in Figure 3.
- the user experience is from the low bit rate to the high bit rate.
- the optimization speed is different.
- the code rate rises from a lower code rate to a higher code rate, the user experience is improved rapidly.
- the code rate is increased from a higher code rate to a higher code rate, the user experience is slower.
- the utility functions corresponding to different media contents are different.
- the utility function corresponding to the media content provided by the provider is set in advance in the controller.
- the controller After receiving the MPD file, the controller obtains the media slice rate supported by the media server from the MPD file and obtains the utility function corresponding to the media content according to the identification information of the media content in the MPD file.
- the MPD file needs to be forwarded to the first client, so that the first client generates a media fragmentation request message according to the MPD file to request media fragmentation.
- the media content includes a plurality of media segments, each of which corresponds to a plurality of different versions, for example, may have different encoding rates, different languages, and the like.
- the process of acquiring the utility function according to the identification information of the media content in the MPD file, and the process of forwarding the MPD file to the first client by the controller can be performed independently of each other and executed in parallel.
- Step 104 The controller receives a first media fragmentation request message sent by the first client according to the MPD file, where the first media fragmentation request message carries a request code rate, where the request code rate refers to the first client.
- the code rate corresponding to the media slice in the media content requested by the media server.
- the first client may generate a media fragmentation request message according to the information in the MPD file, and send the media fragmentation request message to the media server by using the controller.
- the first client determines a media fragmentation rate by estimating the available bandwidth of the network, and determining the media fragmentation rate according to the estimated available bandwidth of the network.
- the request rate is carried in the generated media fragmentation request message.
- the media fragmentation request message herein is referred to as a first media fragmentation request message.
- Step 105 The controller obtains a target bit rate corresponding to the first client according to the utility function corresponding to the media content, the network congestion level information, the user subscription level information, and the media fragmentation rate supported by the media server. And replacing the request code rate in the first media fragmentation request message with the target code rate corresponding to the first client, and sending the content to the media server to request the media fragment corresponding to the target code rate from the media server.
- the controller After receiving the first media fragmentation request message sent by the first client, the controller according to the previously obtained media content corresponding to the utility function, the network congestion level information, the user subscription level information, and the media fragmentation rate supported by the media server Obtaining a target code rate corresponding to the current first client, replacing the request code rate in the first media fragmentation request message with the target code rate corresponding to the first client, and then dividing the first media after replacing the code rate
- the slice request message is sent to the media server, so that the media server provides the media segment corresponding to the target bit rate to the client, instead of requesting Find the media fragment corresponding to the code rate.
- the media slice corresponding to the target bit rate is the same as the content of the media slice corresponding to the request code rate, except that the corresponding code rate is different.
- the target code rate corresponding to the first client obtained by the controller considers the network congestion level, the user subscription level, the utility function corresponding to the media content, and the media fragmentation rate supported by the media server, and the accuracy thereof.
- the requesting code rate determined by the first client only according to its own situation is high, so requesting the media segment corresponding to the target bit rate is more suitable for network transmission.
- the controller obtains a target bit rate corresponding to the first client according to the utility function corresponding to the media content, the network congestion level, the user subscription level information, and the media fragmentation rate supported by the media server.
- An embodiment includes the following steps:
- Step 1051 The controller obtains a utility value corresponding to each client according to a utility function corresponding to the media content and a target code rate corresponding to each client in the client when the controller receives the first media fragmentation request message. Average the utility values for all clients to get the average utility value.
- the controller may calculate the average utility value according to formula (2).
- _ indicating the target code rate corresponding to the first client when the controller receives the first media fragmentation request message (that is, the i-th client sends the last time before the controller receives the first media fragmentation request message)
- the target code rate corresponding to the second media fragmentation request message that is, the target that the i-th client last carried to the controller through the second media fragmentation request message before the controller receives the first media fragmentation request message.
- the process of obtaining the target code rate corresponding to the first media fragmentation request message by the controller, and the process of calculating the target bit rate corresponding to the first client provided by the embodiment of the present invention the same.
- Step 1052 The controller obtains the first code rate corresponding to the first client according to the utility function corresponding to the media content, the average utility value, the user subscription level information, and the media fragmentation rate supported by the media server. .
- the controller may calculate an initial code rate according to formula (3); and then, according to the initial The size relationship between the code rate and the media slice rate supported by the media server, determining the media slice rate closest to the initial code rate among the media slice rate supported by the media server as the first client correspondence The first bit rate.
- the first code rate is a media slice rate of the media slice rate supported by the media server.
- ⁇ U (b refl) aU aver (3)
- W represents a level corresponding to the information the user subscribes to the weight, and the higher level of user subscription information identifying the user level, level information the user subscribes to a corresponding weight
- e/7 represents the initial code rate
- t (b re / y) represents the utility function corresponding to the media content with the initial code rate variable
- 0C is a preset constant value
- Average utility value Specifically, b 7 is taken as R in the formula (1), and b refl can be calculated according to the formula (1).
- Step 1053 The controller adjusts the first code rate according to the network congestion level information and the media fragment rate supported by the media server, and obtains the target code corresponding to the first client, where the target code is optional.
- An implementation manner includes: the controller corresponding to a target code rate when the controller receives the first media fragmentation request message from the client other than the first client in an order from large to small. And sorting according to the first code rate, if the first code rate is located before the designated position in the sorting result and the network congestion level identified by the network congestion level information is greater than a preset level threshold, according to the media server support The media slice rate decreases the first code rate, obtains a second code rate, and obtains a target code rate corresponding to the first client according to the second code rate.
- the first code rate is reduced according to the media slice rate supported by the media server, and obtaining the second code rate includes: reducing the first code rate to a media slice rate supported by the media server.
- a media fragment rate of a first code rate is reduced to a media slice rate as a second code rate, that is, the second code rate is the media slice rate supported by the media server.
- a media slice rate with a small code rate For example, the media fragment rate supported by the media server includes 200, 400, 600, and 800. Assuming the first code rate is 600, the first code rate can be lowered to 400 as the second code rate, or the first code rate can be lowered. A code rate to 200 is used as the second code rate.
- the controller records a target bit rate corresponding to a media slice request that is sent by each client to the controller when the first media fragment rate is received, and a corresponding target code for each client.
- the acquisition process of the rate is the same as the acquisition process of the target bit rate corresponding to the first client.
- the controllers are in the order of large to small, for all clients except the first client in all clients.
- the UE sorts the corresponding target code rate and the first code rate when the controller receives the first media fragmentation request message, where the first code rate represents the target code rate corresponding to the first client, if the first code rate Before the sorting result is located in the top position, for example, in the top 20%, and the network congestion level indicated by the network congestion level information is greater than the preset level threshold, that is, the network congestion is serious, the controller uses the media supported by the media server.
- the chip rate is based on the first code rate, the second code rate is obtained, and the target code rate corresponding to the first client is obtained according to the second code rate.
- the controller directly uses the second code rate as a target code rate corresponding to the first client.
- fairness means that users with higher subscription levels can obtain higher user utility, and users with the same subscription level can obtain the same user utility.
- Stability refers to the stable fluctuation of the code rate of the media fragments obtained by DASH users.
- the weighted fairness index (JainFair), the unfairness index (JainUnfair), and the instability index (Instability Index) may be defined based on the utility and the user subscription level information, and used to measure the fairness of the streaming media request method provided by the embodiment of the present invention.
- stability performance For example, one way to weight the fairness index is shown in equation (4), and an implementation of the instability index is shown in equation (5).
- ⁇ denotes a weighted fairness index
- w ' denotes a weight corresponding to the user subscription level information corresponding to the first client, indicating the first media fragment sent by the first client at the current time.
- the request code rate in the request message indicates the utility value corresponding to the first client at the current time.
- the controller obtains a target code rate corresponding to the first client according to the second code rate, and the controller includes: according to the request code rate and the a utility value corresponding to the second code rate, respectively calculating a fairness value corresponding to the request code rate and the second code rate, and respectively calculating stability corresponding to the request code rate and the second code rate a generation value, calculating an average generation value corresponding to the request code rate according to the fairness generation value and the stability generation value corresponding to the request code rate, and the fairness generation value and the stability generation value corresponding to the second code rate And calculating an average generation value corresponding to the second code rate, and selecting a code rate with a small average generation value from the request code rate and the second code rate as a target code rate corresponding to the first client.
- the controller calculates, according to the request code rate and the utility value corresponding to the second code rate, a fairness value corresponding to the request code rate and the second code rate, including:
- the controller calculates a fairness proxy value corresponding to the request code rate and the second code rate according to formula (6).
- formula (6) wherein, the fairness value corresponding to the request code rate or the second code rate is represented, ⁇ ⁇ , 2 represents a utility value corresponding to the second code rate, and specifically 2 may be used as R in the formula (1).
- the controller separately calculates a stability cost value corresponding to the request code rate and the second code rate, including:
- the controller calculates a stability cost value corresponding to the request code rate or the second code rate according to formula (7).
- ⁇ represents the request code rate or the stability code value corresponding to the second code rate
- ⁇ represents the number of code rate switching times of the first client within a specified time
- ⁇ represents the first client.
- the switching rate at the time of the last occurrence of the rate switching; the target code rate corresponding to the second media fragmentation request message sent by the first client before sending the first media fragmentation request message, that is, the first The final target bit rate in the second media fragmentation request message sent by the client last time before sending the first media fragmentation request message.
- the controller calculates an average generation value corresponding to the request code rate according to the fairness value and the stability cost value corresponding to the request code rate, and the fairness value and stability generation corresponding to the second code rate Value, calculating an average generation value corresponding to the second code rate, including:
- the controller calculates an average generation value corresponding to the request code rate and the second code rate according to formula (8).
- the controller performs centralized control on the streaming media transmission based on the network resource congestion status, which facilitates effective scheduling and management of network resources.
- the method provided in this embodiment can For users of different user subscription levels, the matching media fragmentation rate is provided, which improves the user experience of the DASH user.
- the method provided by the embodiment has a wide range of use and flexibility, and can be very applicable to various transmission networks. Good role, so that operators can better provide services.
- FIG. 4 is a schematic diagram of a network architecture for implementing a DASH service according to an embodiment of the present invention.
- the network architecture includes: a client 41, a base station 42, a backhaul 43, an S-GW 44, a core 45, a PDN-GW 46, a controller 47, an SPR 48, and a media server 49.
- the client 41, the base station 42, the backhaul network 43, the S-GW 44, the core network 45, the PDN-GW 46, the controller 47, and the media server 49 are sequentially connected.
- the client 41 is connected to the base station 42 via a wireless network
- the controller 47 is connected to the media server 49 via the Internet.
- the controller 47 is also connected to the SPR 48.
- FIG. 5 Based on the network architecture shown in FIG. 4, a flow media request method is shown in FIG. 5, and the package is shown in FIG. Including the following steps:
- Step 5a The client sends an MPD request message to the controller.
- Step 5b After receiving the MPD request message, the controller sends a first acquisition request message to the base station, where the identifier information of the client, such as an IP address, is carried.
- Step 5c After receiving the first acquisition request message, the base station returns network congestion level information and user identification information of the client, such as TMSI, to the controller.
- the base station After receiving the first acquisition request message, the base station returns network congestion level information and user identification information of the client, such as TMSI, to the controller.
- Step 5d The controller sends a second acquisition request message to the SPR, where the user identification information of the client is carried.
- Step 5e After receiving the second acquisition request message, the SPR returns the user subscription level information corresponding to the client to the controller.
- Step 5f The controller forwards the MPD request message to the media server.
- Step 5g the media server returns an MPD file to the controller.
- Step 5h The controller parses the MPD file, obtains the media fragment rate supported by the media server from the MPD file, and determines the utility of the media content from the preset utility function according to the identifier information corresponding to the media content in the MPD file. function.
- Step 5i The controller forwards the MPD file to the client.
- Step 5 After receiving the MPD file, the client generates a media fragmentation request message according to the information in the MPD file, and sends a media fragmentation request message to the controller, carrying the request code rate.
- Step 5k The controller performs a code rate selection decision based on the previously obtained utility function, network congestion level information, user subscription level information, and a media slice rate supported by the media server, to obtain a target code rate.
- step 5k For the implementation of the step 5k, refer to the description of the foregoing embodiment, and details are not described herein again.
- Step 51 The controller replaces the request code rate in the media fragmentation request message with the target code rate, and then sends the media fragmentation request message to the media server.
- Step 5m The media server returns the media segment corresponding to the target bit rate to the client through the controller.
- the controller performs centralized control on the streaming media transmission based on the network resource congestion status, which facilitates effective scheduling and management of network resources.
- the method provided in this embodiment can For users of different user subscription levels, the matching media fragmentation rate is provided, which improves the user experience of the DASH user.
- the method provided by the embodiment has a wide range of use and flexibility, and can be very applicable to various transmission networks. Good role, This allows operators to better serve their services.
- FIG. 6 is a schematic structural diagram of a controller according to an embodiment of the present invention.
- the controller includes: a first receiving module 61, a first obtaining module 62, a first forwarding module 63, a second receiving module 64, a second obtaining module 65, a second forwarding module 66, and a third The receiving module 67, the third obtaining module 68 and the third forwarding module 69.
- the first receiving module 61 is configured to receive an MPD request message sent by the first client in the client, where the MPD request message carries the identity information of the first client.
- the first obtaining module 62 is connected to the first receiving module 61, and configured to acquire, after the first receiving module 61 receives the MPD request message, network congestion level information corresponding to the network where the first client is located, according to the The identity information of the first client is obtained, and the user subscription level information corresponding to the first client is obtained.
- the first forwarding module 63 is connected to the first receiving module 61, and is configured to forward the MPD request message to the media server after the first receiving module 61 receives the MPD request message.
- the second receiving module 64 is configured to receive an MPD file returned by the media server according to the MPD message.
- the second receiving module 64 is connected to the first forwarding module 63.
- the second obtaining module 65 is connected to the second receiving module 64, and is configured to obtain the media fragment rate supported by the media server from the MPD file received by the second receiving module 64, and receive the second fragment receiving module 64 according to the second receiving module 64.
- the identifier information of the media content requested by the first client in the MPD file determines a utility function corresponding to the media content from a preset utility function.
- the second forwarding module 66 is connected to the second receiving module 64, and is configured to forward the MPD file received by the second receiving module 64 to the first client.
- the third receiving module 67 is configured to receive a first media fragmentation request message that is sent by the first client according to the MPD file, where the first media fragmentation request message carries a request code rate, and the request code rate The code rate corresponding to the media segment in the media content requested by the first client to the media server.
- the third receiving module 67 is connected to the second forwarding module 66.
- the third obtaining module 68 is connected to the first obtaining module 62 and the second obtaining module 65, and is configured to use the utility function corresponding to the media content acquired by the second obtaining module 65, and the network congestion acquired by the first acquiring module 62.
- the level information, the user subscription level information acquired by the first obtaining module 62, and the media fragmentation rate supported by the media server acquired by the second obtaining module 65 obtain the target code rate corresponding to the first client.
- the third forwarding module 69 is connected to the third receiving module 67 and the third obtaining module 68, and is configured to replace the request code rate in the first media fragmentation request message received by the third receiving module 67 with And acquiring, by the acquiring module 68, the target code rate corresponding to the first client, and sending the target code rate to the media server, to request the media server to correspond to the media fragment corresponding to the target code rate.
- the third obtaining module 68 includes: a first obtaining unit 681, a second obtaining unit 682, and a third obtaining unit 683.
- the first obtaining unit 681 is connected to the second obtaining module 65, and is configured to: according to the utility function corresponding to the media content acquired by the second obtaining module 65, and each client in all clients receives the first in the controller
- the target code rate corresponding to the media fragment request message is obtained, and the utility value corresponding to each client is obtained, and the utility values corresponding to all clients are averaged to obtain an average utility value.
- the second obtaining unit 682 is connected to the first obtaining module 62, the second obtaining module 65, and the first obtaining unit 681, respectively, for using the utility function corresponding to the media content acquired by the second obtaining module 65, and the first acquiring unit. Obtaining, by the 681, the average utility value, the user subscription level information acquired by the first obtaining module 62, and the media fragmentation rate supported by the media server acquired by the second obtaining module 65, obtaining the first client Corresponding first code rate.
- the third obtaining unit 683 is connected to the second obtaining unit 682, the first obtaining module 62, and the second obtaining module 65, and is configured to obtain the network congestion level information acquired by the first obtaining module 62 and the second acquiring module 65.
- the media fragment rate supported by the media server is adjusted, and the first code rate acquired by the second obtaining unit 682 is adjusted to obtain a target bit rate corresponding to the first client.
- the second obtaining unit 682 is specifically configured to calculate an initial code rate according to formula (3), and then determine, according to a size relationship between the initial code rate and a media slice rate supported by the media server.
- the media slice rate of the media slice rate supported by the media server that is closest to the initial code rate is used as the first code rate.
- the third obtaining unit 683 is specifically configured to receive the first media fragment in the controller for all clients except the first client in an order of being large to small. Sorting the corresponding target code rate and the first code rate when the message is requested, if the first code rate is located before the designated position in the sorting result and the network congestion level identified by the network congestion level information is greater than the pre- Setting a threshold, according to the support of the media server The media slice rate decreases the first code rate, obtains a second code rate, and obtains a target code rate corresponding to the first client according to the second code rate.
- the third obtaining unit 683 is configured to obtain, according to the second code rate, the target code rate corresponding to the first client, where:
- the third obtaining unit 683 is specifically configured to directly use the second code rate as a target code rate corresponding to the first client.
- the third obtaining unit 683 is specifically configured to calculate, according to the request code rate and the utility value corresponding to the second code rate, a fairness value corresponding to the request code rate and the second code rate, and calculate respectively Calculating a stability value corresponding to the request code rate and the second code rate, and calculating an average generation value corresponding to the request code rate according to the fairness value and the stability cost value corresponding to the request code rate, according to the Calculating a fairness value and a stability generation value corresponding to the second code rate, calculating an average generation value corresponding to the second code rate, and selecting an average generation value from the request code rate and the second code rate
- the code rate is used as the target code rate corresponding to the first client.
- the third obtaining unit 683 is specifically configured to separately calculate a fairness value corresponding to the request code rate and the second code rate according to formula (6), and separately calculate the request according to formula (7).
- a code rate or a stability value corresponding to the second code rate, according to formula (8) respectively calculating an average generation value corresponding to the request code rate and the second code rate, and from the request code rate and A code rate with a small average value is selected in the second code rate as a target code rate corresponding to the first client.
- the first obtaining module 62 is specifically configured to send, after the first receiving module 61 receives the MPD request message, a first acquiring request message to the base station, where the first acquiring request message carries Determining the identity information of the first client, and receiving the network congestion level information returned by the base station according to the first acquisition request message and the user identity information of the first client, according to the user identifier of the first client Sending a second acquisition request message to the SPR, where the second acquisition request message carries the user identification information of the first client, and receives the user subscription level returned by the SPR according to the second acquisition request message. information.
- the function modules of the controller provided in this embodiment can be used to perform the process of the foregoing method embodiments.
- the specific working principle is not described here. For details, refer to the description of the method embodiments.
- the controller provided by the embodiment receives the MPD request message sent by the client, and after receiving the MPD request message, acquires network congestion level information and user subscription level information, and The MPD request message is forwarded to the media server, and the receiving media server obtains the media fragmentation rate supported by the media server from the MPD file according to the MPD file returned by the MPD request message, and determines the identifier according to the identification information of the media content carried in the MPD file.
- the utility function corresponding to the media content and further, after receiving the media fragmentation request message sent by the client, according to the utility function corresponding to the media content, the network congestion level information, the user subscription level information, and the media fragmentation code supported by the media server Rate, obtain the target bit rate, and replace the request code rate in the media fragmentation request message with the target code rate, and then send it to the media server to request the media server for the media segment corresponding to the target bit rate, fully considering the network.
- Congestion status and user subscription level information adjust the media fragment rate requested by the client, which is beneficial to provide a more suitable media fragmentation rate, improve the accuracy of the requested media fragmentation rate, and is beneficial to customers. Provide reasonable, differentiated media quality.
- FIG. 7 is a schematic structural diagram of another controller according to an embodiment of the present invention. As shown in FIG. 7, the controller includes: a receiver 71, a memory 72, a processor 73, and a transmitter 74.
- the receiver 71 is configured to receive an MPD request message sent by the first client in all the clients, where the MPD request message carries the identity information of the first client, and forwards the MPD request message at the sender 74.
- receiving the MPD file returned by the media server according to the MPD message and after the transmitter 74 forwards the MPD file to the first client, receiving the first client according to the MPD file a first media fragmentation request message, where the first media fragmentation request message carries a request code rate, where the request code rate is in the media content requested by the first client to the media server
- the media code corresponds to the code rate.
- the memory 72 is used to store a program.
- the program can include program code, the program code including computer operating instructions.
- the memory 72 may include a high speed RAM memory and may also include a non-volatile memory such as at least one disk memory.
- the processor 73 is configured to execute a program stored in the memory 72, configured to: after receiving the MPD request message, the receiver 71 acquires network congestion level information corresponding to the network where the first client is located, according to the Obtaining, by the identifier information of the client, the user subscription level information corresponding to the first client, and receiving, by the receiver 71, the media server according to the
- the media slice rate supported by the media server is obtained from the MPD file, according to the media content requested by the first client in the MPD file.
- the identification information, the utility function corresponding to the media content is determined from the preset utility function, and after the receiver 71 receives the first media fragmentation request message, according to the utility function corresponding to the media content, Determining, by the network congestion level information, the user subscription level information, and the media fragmentation rate supported by the media server, obtaining a target code rate corresponding to the first client, and in the first media fragmentation request message
- the request code rate is replaced by a target code rate corresponding to the first client.
- the processor 73 may be a central processing unit (CPU), or an application specific integrated circuit (ASIC), or one configured to implement an embodiment of the present invention. Multiple integrated circuits.
- CPU central processing unit
- ASIC application specific integrated circuit
- the transmitter 74 is configured to forward the MPD request message to the media server after the receiver 71 receives the MPD request message, and receive the MPD file returned by the media server according to the MPD message at the receiver 71. Afterwards, the MPD file is forwarded to the first client, and the processor 73 replaces the request code rate in the first media fragmentation request message with a target code corresponding to the first client. After the rate, the first media fragmentation request message after the replacement of the code rate is sent to the media server to request the media fragment corresponding to the target code rate from the media server.
- the processor 73 is specifically configured to: according to the utility function corresponding to the media content, and corresponding to each client in all clients when the controller receives the first media fragmentation request message a target code rate, obtaining a utility value corresponding to each client, and averaging the utility values corresponding to all the clients, obtaining an average utility value, according to the utility function corresponding to the media content, the average utility value, User subscription level information and a media fragment rate supported by the media server, obtaining a first code rate corresponding to the first client, according to the network congestion level information and a media fragmentation rate supported by the media server And adjusting the first code rate to obtain a target code rate corresponding to the first client.
- the processor 73 is specifically configured to calculate an initial code rate according to formula (3), and then determine the media server according to a size relationship between the initial code rate and a media slice rate supported by the media server.
- the media slice rate that is closest to the initial code rate among the supported media slice rate is used as the first code rate.
- formula (3) reference may be made to the description of the above embodiment, and details are not described herein again.
- the processor 73 is specifically configured to receive, according to the order from large to small, the first media points are received by the controller in the controller except for the first client in all the clients. Sorting the corresponding target bit rate and the first code rate when the slice request message is obtained, if the first code rate is located before the designated position in the sorting result and the network congestion level identified by the network congestion level information is greater than And the first level is reduced according to the media slice rate supported by the media server, and the second code rate is obtained, and the first client is obtained according to the second code rate.
- Target bit rate is specifically configured to receive, according to the order from large to small, the first media points are received by the controller in the controller except for the first client in all the clients. Sorting the corresponding target bit rate and the first code rate when the slice request message is obtained, if the first code rate is located before the designated position in the sorting result and the network congestion level identified by the network congestion level information is greater than And the first level is reduced according to the media slice rate supported by the media server, and the second code rate is obtained,
- the processor 73 is specifically configured to directly use the second code rate as a target code rate corresponding to the first client.
- the processor 73 is specifically configured to calculate, according to the request code rate and the utility value corresponding to the second code rate, a fairness value corresponding to the request code rate and the second code rate, and calculate the Calculating a stability cost value corresponding to the request code rate and the second code rate, and calculating an average generation value corresponding to the request code rate according to the fairness value and the stability cost value corresponding to the request code rate, according to the first Calculating a fairness value and a stability generation value corresponding to the second code rate, calculating an average generation value corresponding to the second code rate, and selecting a code rate having a small average generation value from the request code rate and the second code rate as a The target bit rate corresponding to the first client.
- the processor 73 is specifically configured to separately calculate a fairness value corresponding to the request code rate and the second code rate according to formula (6), and respectively calculate the request code rate or the location according to formula (7) Calculating a stability cost value corresponding to the second code rate, and calculating, according to formula (8), an average generation value corresponding to the request code rate and the second code rate, and then from the request code rate and the second code rate A code rate with a small average value is selected as the target code rate corresponding to the first client.
- the manner in which the processor 73 obtains the network congestion level information and the user subscription level information includes: the processor 73 is specifically configured to: after the receiver 71 receives the MPD request message, control the transmitter 74 to the base station. Sending a first acquisition request message, where the first acquisition request message carries the identity identification information of the first client, and the control receiver 71 receives the network congestion level information returned by the base station according to the first acquisition request message.
- the control sender 74 sends a second acquisition request message to the SPR according to the user identification information of the first client, where the second acquisition request message carries the first client
- the user identification information of the terminal further controls the receiver 71 to receive the user subscription level information returned by the SPR according to the second acquisition request message.
- the receiver 71 is further configured to receive, according to the processor 73, the network congestion level information returned by the base station according to the first acquisition request message, the user identification information of the first client, and the receiving SPR according to the The user sign returned by the second acquisition request message About grade information.
- the transmitter 74 is further configured to send a first acquisition request message to the base station under the control of the processor 73, and send a second acquisition request message to the SPR according to the user identification information of the first client.
- the receiver 71, the memory 72, the processor 73, and the transmitter 74 may be connected to each other through a bus and complete each other. Communication between.
- the bus may be an industry standard architecture (Industry Standard Architecture), a Peripheral Component (PCI) bus, or an extended industry standard architecture (Extended Industry Standard Architecture). EISA) bus and so on.
- the bus can be divided into an address bus, a data bus, a control bus, and the like. For ease of representation, only one thick line is shown in Figure 7, but it does not mean that there is only one bus or one type of bus.
- the receiver 71, the memory 72, the processor 73, and the transmitter 74 may pass through an internal interface. Complete the same communication.
- the controller provided in this embodiment can be used to perform the process of the foregoing method embodiment, and the specific working principle is not described here. For details, refer to the description of the method embodiment.
- the controller provided by the embodiment receives the MPD request message sent by the client, and after receiving the MPD request message, acquires network congestion level information and user subscription level information, and forwards the MPD request message to the media server, and receives the media server according to the
- the MPD file returned by the MPD request message obtains the media fragment rate supported by the media server from the MPD file, and determines the utility function corresponding to the media content according to the identifier information of the media content carried in the MPD file, and then receives the utility function.
- the target code rate is obtained according to the utility function corresponding to the media content, the network congestion level information, the user subscription level information, and the media fragmentation rate supported by the media server, and the media is fragmented.
- the request code rate in the request message is replaced with the target code rate, and then sent to the media server to request the media server to correspond to the media fragment corresponding to the target code rate, fully considering the network congestion and the user subscription level, etc., and adjusting the client.
- Requested media fragment rate In favor of providing more appropriate media fragmentation rate and improve the accuracy of the requested media sub-chip rate is conducive for the client to provide reasonable, there is another area of media services.
- the aforementioned program can be stored in a calculation
- the machine can be read from the storage medium.
- the program when executed, performs the steps including the foregoing method embodiments; and the foregoing storage medium includes: a medium that can store program codes, such as a ROM, a RAM, a magnetic disk, or an optical disk.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例提供一种流媒体请求方法及控制器。方法包括:控制器接收客户端发送的MPD请求消息,获取网络拥塞等级信息和用户签约等级信息,将MPD请求消息转发给媒体服务器;接收媒体服务器返回的MPD文件,获取媒体服务器支持的媒体分片码率,并确定媒体内容对应的效用函数,将MPD文件转发给客户端;接收客户端发送的媒体分片请求消息,根据所述效用函数、网络拥塞等级信息、用户签约等级信息和媒体服务器支持的媒体分片码率,获得目标码率,将媒体分片请求消息中的请求码率替换为目标码率后发送给媒体服务器,以请求目标码率对应的媒体分片。本发明技术方案可以提高请求的媒体分片码率的准确性。
Description
流媒体请求方法及控制器
本申请要求于 2013 年 02 月 06 日提交中国专利局、 申请号为 201310047145.2、发明名称为 "流媒体请求方法及控制器" 的中国专利申请 的优先权, 其全部内容通过引用结合在本申请中。 技术领域 本发明实施例涉及通信技术, 尤其涉及一种流媒体请求方法及控制器。 流媒体是指在互联网 (Internet, 筒称为 IP ) 上以数据流的方式实时发 布的音频、 视频等多媒体内容; 流媒体技术是指在 IP网络上发布多媒体数 据流的技术。 流媒体技术采用流式传输方式, 即媒体服务器将整个多媒体 文件压缩编码成多个压缩包, 向客户端实时顺序地传送; 客户端可以一边 解压播放之前传送过来的压缩包, 一边接收后续传送的压缩包, 从而节省 了等待时间。
传统流媒体传输技术利用实时传输协议 ( Real-time Transport Protocol, 筒称为 RTP )、 RTP控制协议(RTP Control Protocol, 筒称为 RTCP )来传 输实时流媒体, 例如音频流、 视频流、 字幕流等。 目前出现的超文本传输 协议 ( Hypertext transfer protocol, 筒称为 HTTP )流( Streaming ) 以及实时 消息传送协议(Real Time Messaging Protocol, 筒称为 RTMP )在传统流媒 体基础上进行了改进, 主要增加了多种码率供客户端选择, 即在媒体服务 器端把一个媒体内容分成不同码率的各个分片, 媒体服务器根据客户端的 请求将不同码率的分片传送给客户端播放。 3GPP定义的动态自适应 HTTP 流媒体 ( Dynamic Adaptive Streaming over HTTP, 筒称为 DASH )业务是一 种常见的 HTTP流业务, 主要是将媒体内容进行切片并按照预设的格式进 行封装生成媒体内容分片, 并生成媒体呈现描述 ( Media Presentation Description, 筒称为 MPD ), 然后根据客户端的 MPD请求, 将 MPD提供 给客户端,客户端根据 MPD生成媒体内容分片的统一资源定位符( Uniform Resource Locator, 筒称为 URL )信息, 然后请求媒体内容分片。
现有技术对 DASH业务的 MPD格式、 媒体内容分片的格式、 客户端 行为、 服务器行为等作了良好的规范定义, DASH 业务的自适应行为都由 客户端控制完成的, 在客户端自适应机制下, 客户端根据估计的可用带宽 值和 MPD中给出的媒体分片码率值来决策请求的媒体分片码率。由于客户 端仅根据自身的情况估计可用带宽值, 因此, 对可用带宽估计的精度不高, 进而导致请求的媒体分片码率的准确性较低。 发明内容
本发明实施例提供一种流媒体请求方法及控制器, 用以提高请求的媒 体分片码率的准确性。
第一方面提供一种流媒体请求方法, 包括:
控制器接收所有客户端中第一客户端发送的媒体呈现描述 MPD 请求 消息, 所述 MPD请求消息携带有所述第一客户端的身份标识信息;
所述控制器在接收到所述 MPD请求消息之后,获取所述第一客户端所 在网络对应的网络拥塞等级信息, 根据所述第一客户端的身份标识信息, 获取所述第一客户端对应的用户签约等级信息,并将所述 MPD请求消息转 发给媒体服务器;
所述控制器接收所述媒体服务器根据所述 MPD消息返回的 MPD文件, 从所述 MPD文件中获取所述媒体服务器所支持的媒体分片码率,根据所述 MPD文件中所述第一客户端请求的媒体内容的标识信息, 从预设的效用函 数中确定所述媒体内容对应的效用函数,并将所述 MPD文件转发给所述第 一客户端;
所述控制器接收所述第一客户端根据所述 MPD 文件发送的第一媒体 分片请求消息, 所述第一媒体分片请求消息携带有请求码率, 所述请求码 率是指所述第一客户端向所述媒体服务器请求的所述媒体内容中的媒体分 片对应的编码码率;
所述控制器根据所述媒体内容对应的效用函数、 所述网络拥塞等级信 息、 所述用户签约等级信息和所述媒体服务器所支持的媒体分片码率, 获 得所述第一客户端对应的目标码率, 并将所述第一媒体分片请求消息中的 所述请求码率替换为所述第一客户端对应的目标码率后发送给所述媒体服
务器, 以向所述媒体服务器请求所述目标码率对应的所述媒体分片。
结合第一方面, 在第一方面的第一种可能的实现方式中, 所述控制器 根据所述媒体内容对应的效用函数、 所述网络拥塞等级、 所述用户签约等 级信息和所述媒体服务器所支持的媒体分片码率, 获得所述第一客户端对 应的目标码率, 包括:
所述控制器根据所述媒体内容对应的效用函数和所有客户端中每个客 户端在所述控制器接收到所述第一媒体分片请求消息时对应的目标码率, 获得每个客户端对应的效用值, 并对所有客户端对应的效用值进行平均, 获得平均效用值;
所述控制器根据所述媒体内容对应的效用函数、 所述平均效用值、 所 述用户签约等级信息和所述媒体服务器所支持的媒体分片码率, 获得所述 第一客户端对应的第一码率;
所述控制器根据所述网络拥塞等级信息和所述媒体服务器所支持的媒 体分片码率, 对所述第一码率进行调整, 获得所述第一客户端对应的目标 码率。
结合第一方面的第一种可能的实现方式, 在第一方面的第二种可能的 实现方式中, 所述控制器根据所述媒体内容对应的效用函数、 所述平均效 用值、 所述用户签约等级信息和所述媒体服务器所支持的媒体分片码率, 获得所述第一客户端对应的第一码率, 包括:
所述控制器根据公式 wU bH r , 计算初始码率;
根据所述初始码率与所述媒体服务器所支持的媒体分片码率之间的大 小关系, 确定所述媒体服务器所支持的媒体分片码率中与所述初始码率最 接近的媒体分片码率作为所述第一码率;
其中, W表示所述用户签约等级信息对应的权重, 且所述用户签约等 级信息所标识的用户等级越高, 所述用户签约等级信息对应的权重越小; e/7表示所述初始码率; t (bre/7)表示以所述初始码率为变量的所述媒体内容 对应的效用函数; 0C为预先设定的常数值; ^ 为所述平均效用值。
结合第一方面的第一种可能的实现方式或第一方面的第二种可能的实 现方式, 在第一方面的第三种可能的实现方式中, 所述控制器根据所述网 络拥塞等级信息和所述媒体服务器所支持的媒体分片码率, 对所述第一码
率进行调整, 获得所述第一客户端对应的目标码率, 包括:
所述控制器按照由大到小的顺序, 对所有客户端中除所述第一客户端 之外的其他客户端在所述控制器接收到所述第一媒体分片请求消息时对应 的目标码率以及所述第一码率进行排序, 如果所述第一码率在所述排序结 果中位于指定位置之前且所述网络拥塞等级信息所标识的网络拥塞等级大 于预设等级门限, 则根据所述媒体服务器所支持的媒体分片码率降低所述 第一码率, 获得第二码率, 并根据所述第二码率, 获得所述第一客户端对 应的目标码率。
结合第一方面的第三种可能的实现方式, 在第一方面的第四种可能的 实现方式中, 所述控制器根据所述第二码率, 获得所述第一客户端对应的 目标码率, 包括:
所述控制器直接将所述第二码率作为所述第一客户端对应的目标码 率; 或者
所述控制器根据所述请求码率和所述第二码率对应的效用值, 分别计 算所述请求码率和所述第二码率对应的公平性代价值, 并分别计算所述请 求码率和所述第二码率对应的稳定性代价值, 根据所述请求码率对应的公 平性代价值和稳定性代价值计算所述请求码率对应的平均代价值, 根据所 述第二码率对应的公平性代价值和稳定性代价值, 计算所述第二码率对应 的平均代价值, 从所述请求码率和所述第二码率中选择平均代价值小的码 率作为所述第一客户端对应的目标码率。
结合第一方面的第四种可能的实现方式, 在第一方面的第五种可能的 实现方式中, 所述控制器才艮据所述请求码率和所述第二码率对应的效用值, 分别计算所述请求码率和所述第二码率对应的公平性代价值, 包括:
fairness(b) =\
所述控制器根据公式
, 分别计算所述请求码率和所述 第二码率对应的公平性代价值; 所述控制器分别计算所述请求码率和所述第二码率对应的稳定性代价 值, 包括:
所述控制器根据公式
δι ,分别计算所述请求码率 或所述第二码率对应的稳定性代价值;
所述控制器根据所述请求码率对应的公平性代价值和稳定性代价值计 算所述请求码率对应的平均代价值, 根据所述第二码率对应的公平性代价 值和稳定性代价值, 计算所述第二码率对应的平均代价值, 包括:
所述控制器根据公式 ^ (b)+ Sstabilit b) , 分别计算所述请求码率 和所述第二码率对应的平均代价值; 其中, "^ ^W表示所述请求码率或所述第二码率对应的公平性代价 值, 表示第二码率对应的效用值, 表示所述请求码率或所述第二码 率对应的效用值, 表示所述请求码率或所述第二码率对应的稳定性 代价值,《表示所述第一客户端在指定时间内的码率切换次数, Μ表示所述 第一客户端在最近一次发生码率切换时的切换幅度; b的取值为所述请求码 率或所述第二码率, 表示所述第一客户端在发送所述第一媒体分片请求 消息之前最近一次发送的第二媒体分片请求消息对应的目标码率; SFb表示 所述请求码率或所述第二码率对应的平均代价值, 为预设的常数值。
结合第一方面的第一种可能的实现方式, 在第一方面的第二种可能的 实现结合第一方面或第一方面的第一种可能的实现方式或第一方面的第二 种可能的实现方式或第一方面的第三种可能的实现方式或第一方面的第四 种可能的实现方式或第一方面的第五种可能的实现方式, 在第一方面的第 六种可能的实现方式中, 所述控制器在接收到所述 MPD请求消息之后, 获 取所述第一客户端所在网络对应的网络拥塞等级信息, 根据所述第一客户 端的身份标识信息, 获取所述第一客户端对应的用户签约等级信息, 包括: 所述控制器在接收到所述 MPD请求消息之后,向基站发送第一获取请 求消息, 所述第一获取请求消息携带有所述第一客户端的身份标识信息; 所述控制器接收所述基站根据所述第一获取请求消息返回的所述网络 拥塞等级信息和所述第一客户端的用户标识信息;
所述控制器根据所述第一客户端的用户标识信息, 向用户属性存储
SPR发送第二获取请求消息, 所述第二获取请求消息携带有所述第一客户
端的用户标识信息;
所述控制器接收所述 SPR根据所述第二获取请求消息返回的所述用户 签约等级信息。
第二方面提供一种控制器, 包括:
第一接收模块, 用于接收所有客户端中第一客户端发送的媒体呈现描 述 MPD请求消息, 所述 MPD请求消息携带有所述第一客户端的身份标识 信息;
第一获取模块,用于在所述第一接收模块接收到所述 MPD请求消息之 后, 获取所述第一客户端所在网络对应的网络拥塞等级信息, 根据所述第 一客户端的身份标识信息, 获取所述第一客户端对应的用户签约等级信息; 第一转发模块,用于在所述第一接收模块接收到所述 MPD请求消息之 后, 将所述 MPD请求消息转发给媒体服务器;
第二接收模块, 用于接收所述媒体服务器根据所述 MPD 消息返回的 MPD文件;
第二获取模块,用于从所述 MPD文件中获取所述媒体服务器所支持的 媒体分片码率,并根据所述 MPD文件中所述第一客户端请求的媒体内容的 标识信息, 从预设的效用函数中确定所述媒体内容对应的效用函数;
第二转发模块, 用于将所述 MPD文件转发给所述第一客户端; 第三接收模块,用于接收所述第一客户端根据所述 MPD文件发送的第 一媒体分片请求消息, 所述第一媒体分片请求消息携带有请求码率, 所述 请求码率是指所述第一客户端向所述媒体服务器请求的所述媒体内容中的 媒体分片对应的编码码率;
第三获取模块, 用于根据所述媒体内容对应的效用函数、 所述网络拥 塞等级信息、 所述用户签约等级信息和所述媒体服务器所支持的媒体分片 码率, 获得所述第一客户端对应的目标码率;
第三转发模块, 用于将所述第一媒体分片请求消息中的所述请求码率 替换为所述第一客户端对应的目标码率后发送给所述媒体服务器, 以向所 述媒体服务器请求所述目标码率对应的所述媒体分片。
结合第二方面, 在第二方面的第一种可能的实现方式中, 所述第三获 取模块包括:
第一获取单元, 用于根据所述媒体内容对应的效用函数和所有客户端 中每个客户端在所述控制器接收到所述第一媒体分片请求消息时对应的目 标码率, 获得每个客户端对应的效用值, 并对所有客户端对应的效用值进 行平均, 获得平均效用值;
第二获取单元, 用于根据所述媒体内容对应的效用函数、 所述平均效 用值、 所述用户签约等级信息和所述媒体服务器所支持的媒体分片码率, 获得所述第一客户端对应的第一码率;
第三获取单元, 用于根据所述网络拥塞等级信息和所述媒体服务器所 支持的媒体分片码率, 对所述第一码率进行调整, 获得所述第一客户端对 应的目标码率。
结合第二方面的第一种可能的实现方式, 在第二方面的第二种可能的 实现方式中, 所述第二获取单元具体用于根据公式^^^/1 0^^ , 计算初 始码率, 根据所述初始码率与所述媒体服务器所支持的媒体分片码率之间 的大小关系, 确定所述媒体服务器所支持的媒体分片码率中与所述初始码 率最接近的媒体分片码率作为所述第一码率;
其中, W表示所述用户签约等级信息对应的权重, 且所述用户签约等 级信息所标识的用户等级越高, 所述用户签约等级信息对应的权重越小; e/7表示所述初始码率; t (bre/7)表示以所述初始码率为变量的所述媒体内容 对应的效用函数; 0C为预先设定的常数值; ^ 为所述平均效用值。
结合第二方面的第一种可能的实现方式或第二方面的第二种可能的实 现方式, 在第二方面的第三种可能的实现方式中, 所述第三获取单元具体 用于按照由大到小的顺序, 对所有客户端中除所述第一客户端之外的其他 客户端在所述控制器接收到所述第一媒体分片请求消息时对应的目标码率 以及所述第一码率进行排序, 如果所述第一码率在所述排序结果中位于指 定位置之前且所述网络拥塞等级信息所标识的网络拥塞等级大于预设等级 门限, 则根据所述媒体服务器所支持的媒体分片码率降低所述第一码率, 获得第二码率, 并根据所述第二码率, 获得所述第一客户端对应的目标码
户端对应的目标码率包括:
所述第三获取单元具体用于直接将所述第二码率作为所述第一客户端 对应的目标码率; 或者
所述第三获取单元具体用于根据所述请求码率和所述第二码率对应的 效用值, 分别计算所述请求码率和所述第二码率对应的公平性代价值, 并 分别计算所述请求码率和所述第二码率对应的稳定性代价值, 根据所述请 求码率对应的公平性代价值和稳定性代价值计算所述请求码率对应的平均 代价值, 根据所述第二码率对应的公平性代价值和稳定性代价值, 计算所 述第二码率对应的平均代价值, 从所述请求码率和所述第二码率中选择平 均代价值小的码率作为所述第一客户端对应的目标码率。
结合第二方面的第四种可能的实现方式, 在第二方面的第五种可能的
计算所述请求码率和所述第二码率对应的公平性代价值, 根据公式
,分别计算所述请求码率或所述第二码率对应的稳 定性代价值, 公^ PS O S w 分别计算所述请求码率和 所述第二码率对应的平均代价值, 并选择所述请求码率和所述第二码率中 平均代价值小的码率作为所述第一客户端对应的目标码率; 其中, ύ 表示公平性代价值, " 表示第二码率对应的效用值, Ub 表示所述请求码率或所述第二码率对应的效用值, S b、表示稳定性代价 值,《表示所述第一客户端在指定时间内的码率切换次数, M表示所述第一 客户端在最近一次发生码率切换时的切换幅度; b的取值为所述请求码率或 所述第二码率, 表示所述第一客户端在发送所述第一媒体分片请求消息 之前最近一次发送的第二媒体分片请求消息对应的目标码率; 表示所述 请求码率或所述第二码率对应的平均代价值, β为预设的常数值。
结合第二方面或第二方面的第一种可能的实现方式或第二方面的第二 种可能的实现方式或第二方面的第三种可能的实现方式或第二方面的第四
种可能的实现方式或第二方面的第五种可能的实现方式, 在第二方面的第 六种可能的实现方式中, 所述第一获取模块具体用于在所述第一接收模块 接收到所述 MPD请求消息之后, 向基站发送第一获取请求消息, 所述第一 获取请求消息携带有所述第一客户端的身份标识信息, 并接收所述基站根 据所述第一获取请求消息返回的所述网络拥塞等级信息和所述第一客户端 的用户标识信息, 根据所述第一客户端的用户标识信息, 向用户属性存储 SPR发送第二获取请求消息, 所述第二获取请求消息携带有所述第一客户 端的用户标识信息, 并接收所述 SPR根据所述第二获取请求消息返回的所 述用户签约等级信息。
本发明实施例提供的流媒体请求方法及控制器, 控制器接收客户端发 送的 MPD请求消息, 在接收到 MPD请求消息之后, 获取网络拥塞等级信 息和用户签约等级信息, 并将 MPD请求消息转发给媒体服务器, 接收媒体 服务器根据所述 MPD请求消息返回的 MPD文件, 从 MPD文件中获取媒 体服务器所支持的媒体分片码率,并根据 MPD文件携带的媒体内容的标识 信息确定所述媒体内容对应的效用函数, 进而在接收到客户端发送的媒体 分片请求消息之后, 根据媒体内容对应的效用函数、 网络拥塞等级信息、 用户签约等级信息和媒体服务器所支持的媒体分片码率, 获得目标码率, 并将媒体分片请求消息中的请求码率替换为目标码率之后发送给媒体服务 器, 以向媒体服务器请求所述目标码率对应的媒体分片, 在上述过程中, 控制器充分考虑了网络拥塞情况和用户签约等级等信息, 调整客户端请求 的媒体分片码率, 有利于提供更为合适的媒体分片码率, 提高了请求的媒 体分片码率的准确性, 有利于为客户端提供合理的、 有区别的媒体服务。 附图说明 为了更清楚地说明本发明实施例或现有技术中的技术方案, 下面将对 实施例或现有技术描述中所需要使用的附图作一筒单地介绍, 显而易见地, 下面描述中的附图是本发明的一些实施例, 对于本领域普通技术人员来讲, 在不付出创造性劳动性的前提下, 还可以根据这些附图获得其他的附图。
图 1为本发明实施例提供的一种流媒体请求方法的流程图;
图 2为本发明实施例提供的 MPD文件的结构示意图;
图 3为本发明实施例提供的一种效用函数的变化曲线示意图; 图 4为本发明一实施例提供的实现 DASH业务的网络架构示意图; 图 5为本发明实施例提供的另一种流媒体请求方法的流程图; 图 6为本发明实施例提供的一种控制器的结构示意图;
图 7为本发明实施例提供的另一种控制器的结构示意图。 具体实施方式 为使本发明实施例的目的、 技术方案和优点更加清楚, 下面将结合本 发明实施例中的附图, 对本发明实施例中的技术方案进行清楚、 完整地描 述, 显然, 所描述的实施例是本发明一部分实施例, 而不是全部的实施例。 基于本发明中的实施例, 本领域普通技术人员在没有作出创造性劳动前提 下所获得的所有其他实施例, 都属于本发明保护的范围。
图 1为本发明实施例提供的一种流媒体请求方法的流程图。 如图 1所 示, 本实施例的方法包括:
步骤 101、控制器接收所有客户端中第一客户端发送的 MPD请求消息, 所述 MPD请求消息携带有第一客户端的身份标识信息。
本实施例的控制器是指支持 DASH业务的控制器, 又可称为 DASH控 制器。 控制器位于客户端与媒体服务器之间, 主要负责调整客户端向媒体 服务器请求的媒体分片码率。
通常, DASH 业务下的客户端有多个, 每个客户端向媒体服务器请求 媒体分片的过程相同, 故本实施例以其中一个客户端为例进行说明, 为便 于区分将该客户端称为第一客户端。 具体的, 第一客户端首先发送 MPD请 求消息, 以向媒体服务器请求 MPD文件, 并在 MPD请求消息中携带第一 客户端的身份标识信息,用于使媒体服务器获知请求 MPD文件的客户端是 哪个。 控制器接收第一客户端发送的 MPD请求消息, 可以对 MPD请求消 息进行解析, 从中获取第一客户端的身份标识信息。 可选的, 第一客户端 的身份标识信息可以是第一客户端对应的用户名、 IP地址等。
步骤 102、 控制器在接收到 MPD请求消息之后, 获取第一客户端所在 网络对应的网络拥塞等级信息, 根据第一客户端的身份标识信息, 获取第
一客户端对应的用户签约等级信息,并将所述 MPD请求消息转发给媒体服 务器。
在本实施例中, 为了提高客户端向媒体服务器请求的媒体分片码率的 准确性, 控制器在接收到 MPD请求消息之后, 一方面获取第一客户端所在 网络对应的网络拥塞等级信息, 另一方面根据第一客户端的身份标识信息, 获取第一客户端对应的用户签约等级信息。 其中, 所述网络拥塞等级信息 用于标识网络的拥塞状况, 基于此有助于了解网络整体资源情况, 有助于 对网络的可用带宽进行正确估计, 进而有利于选择合适码率的媒体分片。 所述用户签约等级信息用于标识第一客户端对应用户的签约等级, 基于此 在一定程度上可以了解该用户的资源分配情况, 通常用户签约等级越高, 用户分配的资源就越多。
在接收到 MPD请求消息之后, 控制器还要负责将 MPD请求消息转发 给媒体服务器, 以便媒体服务器根据该 MPD请求消息向客户端返回 MPD 文件。
在此说明, 控制器获取网络拥塞等级信息的过程, 控制器获取用户签 约等级信息的过程,以及控制器转发 MPD请求消息给媒体服务器的过程可 以相互独立, 并行执行。
在一可选实施方式中, 控制器在接收到 MPD请求消息之后, 可以向网 络中的基站发送第一获取请求消息, 所述第一获取请求消息携带有第一客 户端的身份标识信息; 然后, 控制器接收基站根据第一获取请求消息返回 的所述网络拥塞等级信息和所述第一客户端的用户标识信息; 接着, 控制 器根据所述第一客户端的用户标识信息, 从用户属性存储 (Subscription Profile Repository, 筒称为 SPR )获取所述用户签约等级信息。 在该实施方 式中, 控制器具体从基站获取网络拥塞等级信息, 从 SPR获取用户签约等 级信息。 在此说明, 第一客户端的用户标识信息与第一客户端的身份标识 信息不同, 主要是指内部使用的标识信息, 例如可以是第一客户端的临时 识别码(Temporary Mobile Subscriber Identity, 筒称为 TMSI )等, 基站存 储有第一客户端的身份标识信息与第一客户端的用户标识信息之间的映射 关系。
进一步可选的, 控制器可以周期性的从基站获取网络拥塞等级信息, 以保证网络拥塞等级信息的实时性, 有利于提高后续基于网络拥塞等级获
得的目标码率的准确性。
步骤 103、控制器接收媒体服务器根据所述 MPD请求消息返回的 MPD 文件, 从所述 MPD文件中获取媒体服务器所支持的媒体分片码率, 根据所 述 MPD文件中第一客户端请求的媒体内容的标识信息,从预设的效用函数 中确定所述媒体内容对应的效用函数, 并将 MPD文件转发给第一客户端。
控制器将 MPD请求消息转发给媒体服务器之后, 媒体服务器会根据 MPD请求消息通过控制器向客户端返回 MPD文件。 具体的, 控制器接收 媒体服务器返回的 MPD文件, 该 MPD文件携带有第一客户端请求的媒体 内容的标识信息, 例如可以是媒体内容的名称、 URL等信息, 同时携带有 媒体服务器所支持的媒体分片码率等信息。
MPD文件是对第一客户端请求的媒体内容的描述, 主要包括对媒体分 片、 请求构造、 多码率等的描述。 MPD文件是一个 xml格式的文档, 第一 客户端可以用 MPD文件中包括的元数据来构造合适的 HTTP-URL,进而获 取媒体分片。 其中, 关于 MPD文件中 URL的格式以及第一客户端根据这 些 URL产生媒体分片请求的过程, 本实施例不做细述, 可参考现有技术实 现。
MPD 文件的多功能互联网邮件扩充月良务(Multipurpose Internet Mail Extensions, 筒称为 MIME )类型是 "application/dash+xml" , MPD delta文 件的 MIME类型是 "application/dashdelta+xml" 。 如图 2所示, 为 MPD文 件的组成格式, 主要包括多个时期(Period ) , 每个时期包括多个自适应集 ( AdaptationSet ) , 每个自适应集包括多个表示(Representation ) , 每个表 示包括多个分片 (Segment ) 。
一个 MPD文件是描述整个媒体内容的文件 ,其中包括许多以时间为单 位的信息块(即上述 period ) ,每个时期中有很多不同编码版本的媒体分片, 包括码率, 语言, 标题, 副标题等不同的媒体分片, 这些信息在一个 MPD 更新周期内是不变的。 自适应集表示可以相互交叉以编码的媒体内容组件, 语言 /媒体组件类型 /角色 /访问属性 /码率属性, 如表 1所示是一个自适应集 的实例。
C Chinese English Japanese
D 视频 /声频 DAI DA2 DA3 如图 2所示, 一行就是一个自适应集, 后面的就是其中的表示, 用户 切换就是在这个层面上切换的, 从一个 Representation 切换到另一个 Representation, 可以是不同码率的切换, 不同音频编码方式的切换, 语言 的切换等等。
基于接收到的 MPD文件,控制器可以从中获取媒体服务器所支持的媒 体分片码率, 并可以获知媒体内容的标识信息。 另外, 控制器上预先存储 有媒体内容的标识信息与媒体内容对应的效用函数之间的映射关系, 基于 此, 控制器可以获取第一客户端请求的媒体内容对应的效用函数。
效用是指应用使用带宽后取得的实际性能, 效用函数是刻画带宽和应 用性能之间数学关系的表达式。 其中, DASH 业务的效用函数用于衡量
DASH客户端得到的业务体验。 DASH 业务的效用函数为一增函数, 表达 式如公式(1 )所示。
U(R) = A(\ - e BR ) ( 1 ) 其中, R代表媒体分片的码率, 是一组离散值, 在后续应用中, R可以 是媒体分片请求消息携带的请求码率, 也可以是根据客户端上一次发送的 媒体分片请求消息中的请求码率计算出的目标码率。 代表最大效用偏置 值, 即用户可以获得的最好效用, 是已知的。 代表媒体分片 的最大码率, 是已知的, S的值用于决定效用函数的形状, 是基于媒体内 容的常数, 是已知的。 当 R趋于 皿时, 效用函数的取值趋于 A 效用函数的变化曲线如图 3 所示, 从效用函数的变化曲线可以看出, 从低码率上升到高码率过程中用户体验的优化速度是不一样的, 当从较低 码率上升到较高码率时, 用户体验提升很快, 当从较高码率再上升至更高 码率时, 用户体验的提升速度变慢。
不同媒体内容对应的效用函数不一样, 在实际应用中, 预先把提供商 所提供的媒体内容对应的效用函数设置在控制器中。
控制器在接收到 MPD文件之后, 除了从该 MPD文件中获取媒体服务 器所支持的媒体分片码率以及根据该 MPD文件中媒体内容的标识信息,获 取该媒体内容对应的效用函数之外, 还需要将 MPD 文件转发给第一客户 端, 以便于第一客户端根据该 MPD文件生成媒体分片请求消息, 以请求媒 体分片。 在此说明, 媒体内容包括多个媒体分片, 每个媒体分片对应多个 不同版本, 例如可能是编码速率不同、 语言不同等等。
在此说明, 控制器在接收到 MPD文件之后, 根据 MPD文件中的媒体 内容的标识信息获取效用函数的过程,与控制器将 MPD文件转发给第一客 户端的过程可以相互独立, 并行执行。
步骤 104、 控制器接收第一客户端根据所述 MPD文件发送的第一媒体 分片请求消息, 所述第一媒体分片请求消息携带有请求码率, 所述请求码 率是指第一客户端向媒体服务器请求的媒体内容中的媒体分片对应的编码 码率。
第一客户端接收到由控制器转发的 MPD文件之后, 可以根据 MPD文 件中的信息生成媒体分片请求消息, 并通过控制器向媒体服务器发送该媒 体分片请求消息。 在该过程中, 第一客户端会通过估计网络的可用带宽, 并根据估计出的网络的可用带宽确定一个媒体分片码率, 将该媒体分片码 率称之为请求码率, 将该请求码率携带在所生成的媒体分片请求消息中。 为了便于区分和描述, 将这里的媒体分片请求消息称为第一媒体分片请求 消息。
步骤 105、控制器根据所述媒体内容对应的效用函数、所述网络拥塞等 级信息、 所述用户签约等级信息和媒体服务器所支持的媒体分片码率, 获 得第一客户端对应的目标码率, 并将第一媒体分片请求消息中的请求码率 替换为所述第一客户端对应的目标码率后发送给媒体服务器, 以向媒体服 务器请求所述目标码率对应的媒体分片。
控制器接收到第一客户端发送的第一媒体分片请求消息之后, 根据之 前获取的媒体内容对应的效用函数、 网络拥塞等级信息、 用户签约等级信 息和媒体服务器所支持的媒体分片码率, 获得当前第一客户端对应的目标 码率, 将第一媒体分片请求消息中的请求码率替换为该第一客户端对应的 目标码率, 然后将替换码率后的第一媒体分片请求消息发送给媒体服务器, 这样媒体服务器就会向客户端提供该目标码率对应的媒体分片, 而不是请
求码率对应的媒体分片。 在此说明, 目标码率对应的媒体分片与请求码率 对应的媒体分片的内容相同, 只是对应的码率不同。
其中, 控制器获得的第一客户端对应的目标码率同时考虑了网络拥塞 等级、 用户签约等级、 以及媒体内容对应的效用函数、 媒体服务器所支持 的媒体分片码率等信息, 其准确性要比第一客户端仅根据自身情况确定的 请求码率高, 所以请求该目标码率对应的媒体分片更加适合网络传输情况。
在一可选实施方式中, 上述控制器根据媒体内容对应的效用函数、 网 络拥塞等级、 用户签约等级信息和媒体服务器所支持的媒体分片码率, 获 得第一客户端对应的目标码率的一种实施方式包括以下步骤:
步骤 1051、 控制器根据媒体内容对应的效用函数和所有客户端中每个 客户端在控制器接收到第一媒体分片请求消息时对应的目标码率, 获得每 个客户端对应的效用值, 并对所有客户端对应的效用值进行平均, 获得平 均效用值。
具体的, 假设所有客户端的个数为 则控制器可以根据公式(2 ) , 计算所述平均效用值。 _ 其中, 表示第 个客户端在控制器接收到第一媒体分片请求消息时 对应的目标码率(也就是第 i个客户端在控制器接收到第一媒体分片请求消 息之前最近一次发送的第二媒体分片请求消息对应的目标码率, 亦即第 i 个客户端在控制器接收到第一媒体分片请求消息之前最近一次通过第二媒 体分片请求消息携带给控制器的目标码率) , 这里每个客户端在控制器接 收到第一媒体分片请求消息时对应的目标码率的获取过程, 与本发明实施 例提供的计算第一客户端对应的目标码率的过程相同。 表示第 个客 户端对应的效用值, 这里的 是已知的, 具体可以将 -1作为公式( 1 )中 的 R, 代入公式(1 )获得 ^^,")。 表示所述平均效用值。
步骤 1052、 控制器根据所述媒体内容对应的效用函数、 所述平均效用 值、 所述用户签约等级信息和媒体服务器所支持的媒体分片码率, 获得第 一客户端对应的第一码率。
具体的, 控制器可以根据公式(3 ) , 计算初始码率; 然后, 根据初始
码率与媒体服务器所支持的媒体分片码率之间的大小关系, 确定媒体服务 器所支持的媒体分片码率中与该初始码率最接近的媒体分片码率作为第一 客户端对应的第一码率。 其中, 第一码率是媒体服务器所支持的媒体分片 码率中的一个媒体分片码率。
^U(brefl)=aUaver ( 3 ) 其中, w表示所述用户签约等级信息对应的权重, 且所述用户签约等 级信息所标识的用户等级越高, 所述用户签约等级信息对应的权重越小; e/7表示所述初始码率; t (bre/y)表示以初始码率为变量的所述媒体内容对应 的效用函数; 0C为预先设定的常数值; ^ 为所述平均效用值。 具体的, 将 b 7作为公式( 1 ) 中的 R, 根据公式( 1 ) 即可计算出 brefl。
步骤 1053、 控制器根据所述网络拥塞等级信息和媒体服务器所支持的 媒体分片码率, 对第一码率进行调整, 获得所述第一客户端对应的目标码 可选的,步骤 1053的一种实施方式包括:控制器按照由大到小的顺序, 对所有客户端中除第一客户端之外的其他客户端在控制器接收到第一媒体 分片请求消息时对应的目标码率以及第一码率进行排序, 如果所述第一码 率在所述排序结果中位于指定位置之前且所述网络拥塞等级信息所标识的 网络拥塞等级大于预设等级门限, 则根据媒体服务器所支持的媒体分片码 率降低所述第一码率, 获得第二码率, 并根据所述第二码率, 获得所述第 一客户端对应的目标码率。 其中, 根据媒体服务器所支持的媒体分片码率 降低所述第一码率, 获得第二码率包括: 将第一码率降低到媒体服务器所 支持的媒体分片码率中比降低前的第一码率小的一个媒体分片码率, 将降 低到的媒体分片码率作为第二码率, 也就是说第二码率是媒体服务器所支 持的媒体分片码率中比第一码率小的一个媒体分片码率。 举例说明, 媒体 服务器所支持的媒体分片码率包括 200、 400、 600和 800, 假设第一码率为 600 , 则可以降低第一码率至 400作为第二码率, 或者也可以降低第一码率 至 200作为第二码率。
具体的, 控制器会记录每个客户端到控制器接收到第一媒体分片码率 时最近一次发起媒体分片请求对应的目标码率, 对每个客户端来说, 其对 应的目标码率的获取过程与第一客户端对应的目标码率的获取过程相同。 控制器按照由大到小的顺序, 对所有客户端中除第一客户端之外的其他客
户端在控制器接收到第一媒体分片请求消息时对应的目标码率和第一码率 进行排序, 这里用第一码率代表第一客户端对应的目标码率, 如果第一码 率在排序结果中位于指定位置之前, 例如位于前 20%, 且网络拥塞等级信 息所标识的网络拥塞等级大于预设的等级门限, 即网络拥塞较为严重, 则 控制器以媒体服务器所支持的媒体分片码率为依据, 降低第一码率, 获得 第二码率, 进而根据第二码率, 获得第一客户端对应的目标码率。
可选的, 控制器直接将所述第二码率作为所述第一客户端对应的目标 码率。
对于同一网络中的多个 DASH客户端, 公平性是指签约等级越高的用 户能够获得越高的用户效用, 相同签约等级的用户能够获得相同的用户效 用。 稳定性则是指 DASH用户得到的媒体分片的码率波动平稳。 可以基于 效用和用户签约等级信息定义加权公平性指数( JainFair ) 、 不公平性指数 ( JainUnfair )和不稳定性指数 ( Instability Index ) , 用于衡量本发明实施例 提供的流媒体请求方法在公平性和稳定性方面的性能。 例如, 加权公平性 指数的一种方式如公式( 4 )所示,不稳定性指数的一种实现方式如公式( 5 ) 所示。
k-l
j _ d=0
Instability k
( 5 ) 在上述公式(4 ) 中, ^表示加权公平性指数, w '表示第 个客户端 对应的用户签约等级信息对应的权重, 表示第 个客户端在当前时刻 发 送的第一媒体分片请求消息中的请求码率; 表示第 个客户端在当前 时刻 对应的效用值。
在上述公式(5 ) 中, 表示不稳定性指数, 不稳定性指数可用于 评估客户端的请求码率变化的频度和幅度; 代表在指定评估时间段内获得 的媒体分片的数量; w(d) = k-d, 是一个权重值, 表示距离当前时间 越久 的码率变化, 其权重越小, 反之亦然。 表示第 个客户端在时刻 -ί 发
送的第二媒体分片请求消息中的请求码率; 表示第 个客户端在时刻 t-d- l 发送的第二媒体分片请求消息中的请求码率。 在此说明, 本发明实施 例所述的时刻主要是客户端发送媒体分片请求消息的时刻。
基于此, 为了达到公平性和稳定性间的平衡, 控制器根据第二码率, 获得第一客户端对应的目标码率的另一种实施方式包括: 控制器根据所述 请求码率和所述第二码率对应的效用值, 分别计算所述请求码率和所述第 二码率对应的公平性代价值, 并分别计算所述请求码率和所述第二码率对 应的稳定性代价值, 根据所述请求码率对应的公平性代价值和稳定性代价 值计算所述请求码率对应的平均代价值, 根据所述第二码率对应的公平性 代价值和稳定性代价值, 计算所述第二码率对应的平均代价值, 从所述请 求码率和第二码率中选择平均代价值小的码率作为所述第一客户端对应的 目标码率。
其中, 控制器根据所述请求码率和所述第二码率对应的效用值, 分别 计算所述请求码率和所述第二码率对应的公平性代价值, 包括:
所述控制器根据公式(6 ) , 分别计算所述请求码率和所述第二码率对 应的公平性代价值。 ( 6 ) 其中, 表示所述请求码率或第二码率对应的公平性代价值, υκ,2 表示第二码率对应的效用值, 具体可以将 2作为公式(1 ) 中的 R , 代入 公式(1 )计算获得; 表示所述请求码率或所述第二码率对应的效用值, 如果 b的取值为请求码率, 则 表示所述请求码率对应的效用值, 如果 b 的取值为第二码率, 则 ub表示所述第二码率对应的效用值。
所述控制器分别计算所述请求码率和所述第二码率对应的稳定性代价 值, 包括:
所述控制器根据公式(7 ) , 分别计算所述请求码率或所述第二码率对 应的稳定性代价值。
其中, ^ϋο^)表示请求码率或所述第二码率对应的稳定性代价值, η 表示所述第一客户端在指定时间内的码率切换次数, Μ表示所述第一客户 端在最近一次发生码率切换时的切换幅度; 表示所述第一客户端在发送 所述第一媒体分片请求消息之前最近一次发送的第二媒体分片请求消息对 应的目标码率, 即第一客户端在发送所述第一媒体分片请求消息之前最近 一次发送的第二媒体分片请求消息中最终的目标码率。
所述控制器根据所述请求码率对应的公平性代价值和稳定性代价值计 算所述请求码率对应的平均代价值, 根据所述第二码率对应的公平性代价 值和稳定性代价值, 计算所述第二码率对应的平均代价值, 包括:
所述控制器根据公式(8 ) , 分别计算所述请求码率和所述第二码率对 应的平均代价值。
S ) + S staMity (b) ( g ) 其中, 表示所述请求码率或所述第二码率对应的平均代价值, β为 预设的常数值。
由上述可见, 本实施例提供的流媒体请求方法, 由控制器基于网络资 源拥塞状况对流媒体传输进行集中控制, 有助于对网络资源的有效调度和 管理; 其次, 本实施例提供的方法能够为不同用户签约等级的用户, 提供 相配的媒体分片码率, 提高了 DASH用户的用户体验; 另外, 本实施例提 供的方法使用范围较广, 灵活性好, 针对各种传输网络可以有很好的作用, 使得运营商可以更好地提供服务。
图 4为本发明一实施例提供的实现 DASH业务的网络架构示意图。 如 图 4所示, 该网络架构包括: 客户端 41、 基站 42、 回程网 (Backhaul ) 43、 S—GW44、 核心网 (Core ) 45、 PDN-GW46、 控制器 47、 SPR48和媒体服务 器 49。其中,客户端 41、基站 42、回程网 43、 S-GW44、核心网 45、 PDN-GW46、 控制器 47和媒体服务器 49依次连接。 具体的, 客户端 41通过无线网络与 基站 42连接, 控制器 47通过互联网与媒体服务器 49连接。 另外, 控制器 47还与 SPR48连接。
基于图 4所示网络架构, 一种流媒体请求方法的流程如图 5所示, 包
括以下步骤:
步骤 5a、 客户端向控制器发送 MPD请求消息。
步骤 5b、 控制器接收到 MPD请求消息后, 向基站发送第一获取请求 消息, 携带有客户端的身份标识信息, 例如 IP地址。
步骤 5c、 基站接收第一获取请求消息后, 向控制器返回网络拥塞等级 信息和客户端的用户标识信息, 例如 TMSI。
步骤 5d、 控制器向 SPR发送第二获取请求消息, 携带有客户端的用户 标识信息。
步骤 5e、 SPR接收到第二获取请求消息后, 向控制器返回客户端对应 的用户签约等级信息。
步骤 5f、 控制器将 MPD请求消息转发给媒体服务器。
步骤 5g、 媒体服务器向控制器返回 MPD文件。
步骤 5h、 控制器解析 MPD文件, 从 MPD文件中获取媒体服务器所支 持的媒体分片码率, 根据 MPD文件中媒体内容对应的标识信息, 从预设的 效用函数中确定该媒体内容对应的效用函数。
步骤 5i、 控制器将 MPD文件转发给客户端。
步骤 5j、 客户端接收 MPD文件后, 根据 MPD文件中的信息生成媒体 分片获取请求消息, 并向控制器发送媒体分片请求消息, 携带有请求码率。
步骤 5k、 控制器基于之前获得的效用函数、 网络拥塞等级信息、 用户 签约等级信息和媒体服务器所支持的媒体分片码率, 进行码率选择决策, 获得目标码率。
步骤 5k的实施方式可参见上述实施例的描述, 在此不再赘述。
步骤 51、 控制器将媒体分片请求消息中的请求码率替换为目标码率, 然后将媒体分片请求消息发送给媒体服务器。
步骤 5m、媒体服务器通过控制器向客户端返回目标码率对应的媒体分 片。
综上可见, 本实施例提供的流媒体请求方法, 由控制器基于网络资源 拥塞状况对流媒体传输进行集中控制, 有助于对网络资源的有效调度和管 理; 其次, 本实施例提供的方法能够为不同用户签约等级的用户, 提供相 配的媒体分片码率, 提高了 DASH用户的用户体验; 另外, 本实施例提供 的方法使用范围较广, 灵活性好, 针对各种传输网络可以有很好的作用,
使得运营商可以更好地提供服务。
图 6为本发明实施例提供的一种控制器的结构示意图。 如图 6所示, 所述控制器包括: 第一接收模块 61、 第一获取模块 62、 第一转发模块 63、 第二接收模块 64、 第二获取模块 65、 第二转发模块 66、 第三接收模块 67、 第三获取模块 68和第三转发模块 69。
其中, 第一接收模块 61 , 用于接收所有客户端中第一客户端发送的 MPD请求消息, 所述 MPD请求消息携带有第一客户端的身份标识信息。
第一获取模块 62, 与第一接收模块 61连接, 用于在第一接收模块 61 接收到所述 MPD请求消息之后,获取所述第一客户端所在网络对应的网络 拥塞等级信息, 根据所述第一客户端的身份标识信息, 获取所述第一客户 端对应的用户签约等级信息。
第一转发模块 63 , 与第一接收模块 61连接, 用于在第一接收模块 61 接收到所述 MPD请求消息之后,将所述 MPD请求消息转发给媒体服务器。
第二接收模块 64, 用于接收所述媒体服务器根据所述 MPD消息返回 的 MPD文件。 可选的, 第二接收模块 64与第一转发模块 63连接。
第二获取模块 65 , 与第二接收模块 64连接, 用于从第二接收模块 64 接收的 MPD文件中获取所述媒体服务器所支持的媒体分片码率,并根据第 二接收模块 64接收的 MPD文件中所述第一客户端请求的媒体内容的标识 信息, 从预设的效用函数中确定所述媒体内容对应的效用函数。
第二转发模块 66, 与第二接收模块 64连接, 用于将第二接收模块 64 接收的 MPD文件转发给所述第一客户端。
第三接收模块 67, 用于接收所述第一客户端根据所述 MPD文件发送 的第一媒体分片请求消息, 所述第一媒体分片请求消息携带有请求码率, 所述请求码率是指所述第一客户端向所述媒体服务器请求的所述媒体内容 中的媒体分片对应的编码码率。 可选的, 第三接收模块 67与第二转发模块 66连接。
第三获取模块 68, 与第一获取模块 62和第二获取模块 65连接, 用于 根据第二获取模块 65获取的所述媒体内容对应的效用函数、 第一获取模块 62获取的所述网络拥塞等级信息、第一获取模块 62获取的所述用户签约等 级信息和第二获取模块 65获取的所述媒体服务器所支持的媒体分片码率, 获得所述第一客户端对应的目标码率。
第三转发模块 69 , 分别与第三接收模块 67和第三获取模块 68连接, 用于将第三接收模块 67接收的所述第一媒体分片请求消息中的所述请求码 率替换为第三获取模块 68获取的所述第一客户端对应的目标码率后发送给 所述媒体服务器, 以向所述媒体服务器请求所述目标码率对应的所述媒体 分片。
在一可选实施方式中, 第三获取模块 68包括: 第一获取单元 681、 第 二获取单元 682和第三获取单元 683。
第一获取单元 681 , 与第二获取模块 65连接, 用于根据第二获取模块 65获取的所述媒体内容对应的效用函数和所有客户端中每个客户端在所述 控制器接收到第一媒体分片请求消息时对应的目标码率, 获得每个客户端 对应的效用值, 并对所有客户端对应的效用值进行平均, 获得平均效用值。
第二获取单元 682 , 分别与第一获取模块 62、 第二获取模块 65和第一 获取单元 681连接, 用于根据第二获取模块 65获取的所述媒体内容对应的 效用函数、 第一获取单元 681获取的所述平均效用值、 第一获取模块 62获 取的所述用户签约等级信息和第二获取模块 65获取的所述媒体服务器所支 持的媒体分片码率, 获得所述第一客户端对应的第一码率。
第三获取单元 683 , 分别与第二获取单元 682、 第一获取模块 62和第 二获取模块 65连接, 用于根据第一获取模块 62获取的所述网络拥塞等级 信息和第二获取模块 65获取的所述媒体服务器所支持的媒体分片码率, 对 第二获取单元 682获取的所述第一码率进行调整, 获得所述第一客户端对 应的目标码率。
可选的, 第二获取单元 682具体可用于根据公式( 3 ) , 计算初始码率, 然后根据所述初始码率与所述媒体服务器所支持的媒体分片码率之间的大 小关系, 确定所述媒体服务器所支持的媒体分片码率中与所述初始码率最 接近的媒体分片码率作为所述第一码率。 关于公式( 3 )可参见上面的描述, 在此不再赘述。
可选的, 第三获取单元 683 具体可用于按照由大到小的顺序, 对所有 客户端中除所述第一客户端之外的其他客户端在所述控制器接收到第一媒 体分片请求消息时对应的目标码率以及所述第一码率进行排序, 如果所述 第一码率在所述排序结果中位于指定位置之前且所述网络拥塞等级信息所 标识的网络拥塞等级大于预设等级门限, 则根据所述媒体服务器所支持的
媒体分片码率降低所述第一码率, 获得第二码率, 并根据所述第二码率, 获得所述第一客户端对应的目标码率。
进一步可选的, 第三获取单元 683 用于根据所述第二码率, 获得所述 第一客户端对应的目标码率包括:
第三获取单元 683 具体用于直接将所述第二码率作为所述第一客户端 对应的目标码率。 或者
第三获取单元 683 具体用于根据所述请求码率和所述第二码率对应的 效用值, 分别计算所述请求码率和所述第二码率对应的公平性代价值, 并 分别计算所述请求码率和所述第二码率对应的稳定性代价值, 根据所述请 求码率对应的公平性代价值和稳定性代价值计算所述请求码率对应的平均 代价值, 根据所述第二码率对应的公平性代价值和稳定性代价值, 计算所 述第二码率对应的平均代价值, 从所述请求码率和所述第二码率中选择平 均代价值小的码率作为所述第一客户端对应的目标码率。
可选的, 第三获取单元 683具体可用于根据公式(6 ) , 分别计算所述 请求码率和所述第二码率对应的公平性代价值, 根据公式(7 ) , 分别计算 所述请求码率或所述第二码率对应的稳定性代价值, 根据公式(8 ) , 分别 计算所述请求码率和所述第二码率对应的平均代价值, 并从所述请求码率 和所述第二码率中选择平均代价值小的码率作为所述第一客户端对应的目 标码率。 关于公式( 6 ) 、 ( 7 )和( 8 )可参见上述实施例, 在此不再赘述。
在一可选实施方式中,第一获取模块 62具体可用于在第一接收模块 61 接收到所述 MPD请求消息之后, 向基站发送第一获取请求消息, 所述第一 获取请求消息携带有所述第一客户端的身份标识信息, 并接收所述基站根 据所述第一获取请求消息返回的所述网络拥塞等级信息和所述第一客户端 的用户标识信息, 根据所述第一客户端的用户标识信息, 向 SPR发送第二 获取请求消息, 所述第二获取请求消息携带有所述第一客户端的用户标识 信息, 并接收所述 SPR根据所述第二获取请求消息返回的所述用户签约等 级信息。
本实施例提供的控制器的各功能模块可用于执行上述方法实施例的流 程, 其具体工作原理不再赘述, 详见方法实施例的描述。
本实施例提供的控制器, 接收客户端发送的 MPD请求消息, 在接收到 MPD 请求消息之后, 获取网络拥塞等级信息和用户签约等级信息, 并将
MPD请求消息转发给媒体服务器, 接收媒体服务器根据所述 MPD请求消 息返回的 MPD文件, 从 MPD文件中获取媒体服务器所支持的媒体分片码 率,根据 MPD文件携带的媒体内容的标识信息确定所述媒体内容对应的效 用函数, 进而在接收到客户端发送的媒体分片请求消息之后, 根据媒体内 容对应的效用函数、 网络拥塞等级信息、 用户签约等级信息和媒体服务器 所支持的媒体分片码率, 获得目标码率, 并将媒体分片请求消息中的请求 码率替换为目标码率之后发送给媒体服务器, 以向媒体服务器请求所述目 标码率对应的媒体分片, 充分考虑了网络拥塞情况和用户签约等级等信息, 调整客户端请求的媒体分片码率, 有利于提供更为合适的媒体分片码率, 提高了请求的媒体分片码率的准确性, 有利于为客户端提供合理的, 有区 别的媒体质量。
图 7为本发明实施例提供的另一种控制器的结构示意图。 如图 7所示, 所述控制器包括: 接收器 71、 存储器 72、 处理器 73和发送器 74。
接收器 71 , 用于接收所有客户端中第一客户端发送的 MPD请求消息, 所述 MPD请求消息携带有所述第一客户端的身份标识信息,以及在发送器 74将所述 MPD请求消息转发给媒体服务器之后, 接收所述媒体服务器根 据所述 MPD消息返回的 MPD文件, 以及在发送器 74将所述 MPD文件转 发给第一客户端之后,接收所述第一客户端根据所述 MPD文件发送的第一 媒体分片请求消息, 所述第一媒体分片请求消息携带有请求码率, 所述请 求码率是指所述第一客户端向所述媒体服务器请求的所述媒体内容中的媒 体分片对应的编码码率。
存储器 72 , 用于存储程序。 具体地, 程序可以包括程序代码, 所述程 序代码包括计算机操作指令。 存储器 72可能包含高速 RAM存储器, 也可 能还包括非易失性存储器( non-volatile memory ) , 例如至少一个磁盘存储 器。
处理器 73 , 用于执行存储器 72存储的程序, 以用于: 在接收器 71接 收到所述 MPD请求消息之后,获取所述第一客户端所在网络对应的网络拥 塞等级信息, 根据所述第一客户端的身份标识信息, 获取所述第一客户端 对应的用户签约等级信息, 并在接收器 71接收到所述媒体服务器根据所述
MPD消息返回的所述 MPD文件之后,从 MPD文件中获取媒体服务器所支 持的媒体分片码率,根据所述 MPD文件中所述第一客户端请求的媒体内容
的标识信息, 从预设的效用函数中确定所述媒体内容对应的效用函数, 以 及在接收器 71接收到所述第一媒体分片请求消息之后, 根据所述媒体内容 对应的效用函数、 所述网络拥塞等级信息、 所述用户签约等级信息和媒体 服务器所支持的媒体分片码率, 获得所述第一客户端对应的目标码率, 并 将所述第一媒体分片请求消息中的所述请求码率替换为所述第一客户端对 应的目标码率。
处理器 73 可能是一个中央处理器 (Central Processing Unit, 筒称为 CPU ) , 或者是特定集成电路 ( Application Specific Integrated Circuit, 筒称 为 ASIC ) , 或者是被配置成实施本发明实施例的一个或多个集成电路。
发送器 74, 用于在接收器 71接收到所述 MPD请求消息之后, 将所述 MPD请求消息转发给媒体服务器, 并在接收器 71接收到所述媒体服务器 根据所述 MPD消息返回的 MPD文件之后, 将所述 MPD文件转发给所述 第一客户端, 以及在处理器 73将所述第一媒体分片请求消息中的所述请求 码率替换为所述第一客户端对应的目标码率后, 将替换码率后的第一媒体 分片请求消息发送给所述媒体服务器, 以向所述媒体服务器请求所述目标 码率对应的所述媒体分片。
在一可选实施方式中, 处理器 73具体可用于根据所述媒体内容对应的 效用函数和所有客户端中每个客户端在所述控制器接收到所述第一媒体分 片请求消息时对应的目标码率, 获得每个客户端对应的效用值, 并对所有 客户端对应的效用值进行平均, 获得平均效用值, 根据所述媒体内容对应 的效用函数、 所述平均效用值、 所述用户签约等级信息和所述媒体服务器 所支持的媒体分片码率, 获得所述第一客户端对应的第一码率, 根据所述 网络拥塞等级信息和媒体服务器所支持的媒体分片码率, 对所述第一码率 进行调整, 获得所述第一客户端对应的目标码率。
进一步, 处理器 73 具体可用于根据公式(3 ) , 计算初始码率, 然后 根据所述初始码率与所述媒体服务器所支持的媒体分片码率之间的大小关 系, 确定所述媒体服务器所支持的媒体分片码率中与所述初始码率最接近 的媒体分片码率作为所述第一码率。 关于公式(3 )可参见上述实施例的描 述, 在此不再赘述。
进一步, 处理器 73具体可用于按照由大到小的顺序, 对所有客户端中 除所述第一客户端之外的其他客户端在所述控制器接收到所述第一媒体分
片请求消息时对应的目标码率以及所述第一码率进行排序, 如果所述第一 码率在所述排序结果中位于指定位置之前且所述网络拥塞等级信息所标识 的网络拥塞等级大于预设等级门限, 则根据所述媒体服务器所支持的媒体 分片码率降低所述第一码率, 获得第二码率, 并根据所述第二码率, 获得 所述第一客户端对应的目标码率。
进一步, 处理器 73具体可用于直接将所述第二码率作为所述第一客户 端对应的目标码率。 或者
处理器 73 具体可用于根据所述请求码率和所述第二码率对应的效用 值, 分别计算所述请求码率和所述第二码率对应的公平性代价值, 并分别 计算所述请求码率和所述第二码率对应的稳定性代价值, 根据所述请求码 率对应的公平性代价值和稳定性代价值计算所述请求码率对应的平均代价 值, 根据所述第二码率对应的公平性代价值和稳定性代价值, 计算所述第 二码率对应的平均代价值, 从所述请求码率和第二码率中选择平均代价值 小的码率作为所述第一客户端对应的目标码率。
进一步, 处理器 73具体可用于根据公式( 6 ), 分别计算所述请求码率 和所述第二码率对应的公平性代价值, 根据公式(7 ) , 分别计算所述请求 码率或所述第二码率对应的稳定性代价值, 根据公式(8 ) , 分别计算所述 请求码率和所述第二码率对应的平均代价值, 然后从所述请求码率和第二 码率中选择平均代价值小的码率作为所述第一客户端对应的目标码率。
在一可选实施方式中, 处理器 73获取网络拥塞等级信息以及用户签约 等级信息的方式包括: 处理器 73具体可用于在接收器 71接收到所述 MPD 请求消息之后, 控制发送器 74向基站发送第一获取请求消息, 所述第一获 取请求消息携带有所述第一客户端的身份标识信息, 控制接收器 71接收所 述基站根据所述第一获取请求消息返回的所述网络拥塞等级信息和所述第 一客户端的用户标识信息, 并控制发送器 74根据所述第一客户端的用户标 识信息, 向 SPR发送第二获取请求消息, 所述第二获取请求消息携带有所 述第一客户端的用户标识信息,进而控制接收器 71接收所述 SPR根据所述 第二获取请求消息返回的所述用户签约等级信息。
基于上述, 接收器 71还用于在处理器 73的控制下, 接收基站根据所 述第一获取请求消息返回的所述网络拥塞等级信息和所述第一客户端的用 户标识信息, 以及接收 SPR根据所述第二获取请求消息返回的所述用户签
约等级信息。 相应的, 发送器 74还用于在处理器 73的控制下, 向基站发 送第一获取请求消息, 并根据所述第一客户端的用户标识信息, 向 SPR发 送第二获取请求消息。
可选的, 在具体实现上, 如果接收器 71、 存储器 72、 处理器 73和发 送器 74独立实现, 则接收器 71、 存储器 72、 处理器 73和发送器 74可以 通过总线相互连接并完成相互间的通信。 所述总线可以是工业标准体系结 构 (Industry Standard Architecture , 筒称为 ISA ) 总线、 外部设备互连 ( Peripheral Component , 筒称为 PCI ) 总线或扩展工业标准体系结构 ( Extended Industry Standard Architecture , 筒称为 EISA )总线等。 所述总线 可以分为地址总线、 数据总线、 控制总线等。 为便于表示, 图 7 中仅用一 条粗线表示, 但并不表示仅有一根总线或一种类型的总线。
可选的, 在具体实现上, 如果接收器 71、 存储器 72、 处理器 73和发 送器 74集成在一块芯片上实现, 则接收器 71、 存储器 72、 处理器 73和发 送器 74可以通过内部接口完成相同间的通信。
本实施例提供的控制器可用于执行上述方法实施例的流程, 其具体工 作原理不再赘述, 详见方法实施例的描述。
本实施例提供的控制器, 接收客户端发送的 MPD请求消息, 在接收到 MPD 请求消息之后, 获取网络拥塞等级信息和用户签约等级信息, 并将 MPD请求消息转发给媒体服务器, 接收媒体服务器根据所述 MPD请求消 息返回的 MPD文件, 从 MPD文件中获取媒体服务器所支持的媒体分片码 率,根据 MPD文件携带的媒体内容的标识信息确定所述媒体内容对应的效 用函数, 进而在接收到客户端发送的媒体分片请求消息之后, 根据媒体内 容对应的效用函数、 网络拥塞等级信息、 用户签约等级信息和媒体服务器 所支持的媒体分片码率, 获得目标码率, 并将媒体分片请求消息中的请求 码率替换为目标码率之后发送给媒体服务器, 以向媒体服务器请求所述目 标码率对应的媒体分片, 充分考虑了网络拥塞情况和用户签约等级等信息, 调整客户端请求的媒体分片码率, 有利于提供更为合适的媒体分片码率, 提高了请求的媒体分片码率的准确性, 有利于为客户端提供合理的、 有区 别的媒体服务。
本领域普通技术人员可以理解: 实现上述各方法实施例的全部或部分 步骤可以通过程序指令相关的硬件来完成。 前述的程序可以存储于一计算
机可读取存储介质中。 所述程序在执行时, 执行包括上述各方法实施例的 步骤; 而前述的存储介质包括: ROM、 RAM, 磁碟或者光盘等各种可以存 储程序代码的介质。
最后应说明的是: 以上各实施例仅用以说明本发明的技术方案, 而非 对其限制; 尽管参照前述各实施例对本发明进行了详细的说明, 本领域的 普通技术人员应当理解: 其依然可以对前述各实施例所记载的技术方案进 行修改, 或者对其中部分或者全部技术特征进行等同替换; 而这些修改或 者替换, 并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims
权利要求
1、 一种流媒体请求方法, 其特征在于, 包括:
控制器接收所有客户端中第一客户端发送的媒体呈现描述 MPD 请求 消息, 所述 MPD请求消息携带有所述第一客户端的身份标识信息;
所述控制器在接收到所述 MPD请求消息之后,获取所述第一客户端所 在网络对应的网络拥塞等级信息, 根据所述第一客户端的身份标识信息, 获取所述第一客户端对应的用户签约等级信息,并将所述 MPD请求消息转 发给媒体服务器;
所述控制器接收所述媒体服务器根据所述 MPD消息返回的 MPD文件, 从所述 MPD文件中获取所述媒体服务器所支持的媒体分片码率,根据所述 MPD文件中所述第一客户端请求的媒体内容的标识信息, 从预设的效用函 数中确定所述媒体内容对应的效用函数,并将所述 MPD文件转发给所述第 一客户端;
所述控制器接收所述第一客户端根据所述 MPD 文件发送的第一媒体 分片请求消息, 所述第一媒体分片请求消息携带有请求码率, 所述请求码 率是指所述第一客户端向所述媒体服务器请求的所述媒体内容中的媒体分 片对应的编码码率;
所述控制器根据所述媒体内容对应的效用函数、 所述网络拥塞等级信 息、 所述用户签约等级信息和所述媒体服务器所支持的媒体分片码率, 获 得所述第一客户端对应的目标码率, 并将所述第一媒体分片请求消息中的 所述请求码率替换为所述第一客户端对应的目标码率后发送给所述媒体服 务器, 以向所述媒体服务器请求所述目标码率对应的所述媒体分片。
2、 根据权利要求 1所述的流媒体请求方法, 其特征在于, 所述控制器 根据所述媒体内容对应的效用函数、 所述网络拥塞等级、 所述用户签约等 级信息和所述媒体服务器所支持的媒体分片码率, 获得所述第一客户端对 应的目标码率, 包括:
所述控制器根据所述媒体内容对应的效用函数和所有客户端中每个客 户端在所述控制器接收到所述第一媒体分片请求消息时对应的目标码率, 获得每个客户端对应的效用值, 并对所有客户端对应的效用值进行平均,
获得平均效用值;
所述控制器根据所述媒体内容对应的效用函数、 所述平均效用值、 所 述用户签约等级信息和所述媒体服务器所支持的媒体分片码率, 获得所述 第一客户端对应的第一码率;
所述控制器根据所述网络拥塞等级信息和所述媒体服务器所支持的媒 体分片码率, 对所述第一码率进行调整, 获得所述第一客户端对应的目标 码率。
3、 根据权利要求 2所述的流媒体请求方法, 其特征在于, 所述控制器 根据所述媒体内容对应的效用函数、 所述平均效用值、 所述用户签约等级 信息和所述媒体服务器所支持的媒体分片码率, 获得所述第一客户端对应 的第一码率, 包括:
所述控制器根据公式 wUD=aU , 计算初始码率;
根据所述初始码率与所述媒体服务器所支持的媒体分片码率之间的大 小关系, 确定所述媒体服务器所支持的媒体分片码率中与所述初始码率最 接近的媒体分片码率作为所述第一码率;
其中, w表示所述用户签约等级信息对应的权重, 且所述用户签约等 级信息所标识的用户等级越高, 所述用户签约等级信息对应的权重越小; e/7表示所述初始码率; t (bre/7)表示以所述初始码率为变量的所述媒体内容 对应的效用函数; 0C为预先设定的常数值; ^ 为所述平均效用值。
4、 根据权利要求 2或 3所述的流媒体请求方法, 其特征在于, 所述控 制器根据所述网络拥塞等级信息和所述媒体服务器所支持的媒体分片码 率, 对所述第一码率进行调整, 获得所述第一客户端对应的目标码率, 包 括:
所述控制器按照由大到小的顺序, 对所有客户端中除所述第一客户端 之外的其他客户端在所述控制器接收到所述第一媒体分片请求消息时对应 的目标码率以及所述第一码率进行排序, 如果所述第一码率在所述排序结 果中位于指定位置之前且所述网络拥塞等级信息所标识的网络拥塞等级大 于预设等级门限, 则根据所述媒体服务器所支持的媒体分片码率降低所述 第一码率, 获得第二码率, 并根据所述第二码率, 获得所述第一客户端对 应的目标码率。
5、 根据权利要求 4所述的流媒体请求方法, 其特征在于, 所述控制器
根据所述第二码率, 获得所述第一客户端对应的目标码率, 包括: 所述控制器直接将所述第二码率作为所述第一客户端对应的目标码 率; 或者
所述控制器根据所述请求码率和所述第二码率对应的效用值, 分别计 算所述请求码率和所述第二码率对应的公平性代价值, 并分别计算所述请 求码率和所述第二码率对应的稳定性代价值, 根据所述请求码率对应的公 平性代价值和稳定性代价值计算所述请求码率对应的平均代价值, 根据所 述第二码率对应的公平性代价值和稳定性代价值, 计算所述第二码率对应 的平均代价值, 从所述请求码率和所述第二码率中选择平均代价值小的码 率作为所述第一客户端对应的目标码率。
6、 根据权利要求 5所述的流媒体请求方法, 其特征在于, 所述控制器 根据所述请求码率和所述第二码率对应的效用值, 分别计算所述请求码率 和所述第二码率对应的公平性代价值, 包括:
fairness(b) =\
所述控制器根据公式 P + M + ^≠ bt ,分别计算所述请求码率 或所述第二码率对应的稳定性代价值;
所述控制器根据所述请求码率对应的公平性代价值和稳定性代价值计 算所述请求码率对应的平均代价值, 根据所述第二码率对应的公平性代价 值和稳定性代价值, 计算所述第二码率对应的平均代价值, 包括: 所述控制器根据公式 ^ =
+ Sstabi b) , 分别计算所述请求码率 和所述第二码率对应的平均代价值; 其中, S ^W表示所述请求码率或所述第二码率对应的公平性代价 值, ^表示第二码率对应的效用值, 表示所述请求码率或所述第二码
率对应的效用值, 表示所述请求码率或所述第二码率对应的稳定性 代价值,《表示所述第一客户端在指定时间内的码率切换次数, M表示所述 第一客户端在最近一次发生码率切换时的切换幅度; b的取值为所述请求码 率或所述第二码率, 表示所述第一客户端在发送所述第一媒体分片请求 消息之前最近一次发送的第二媒体分片请求消息对应的目标码率; SFb表示 所述请求码率或所述第二码率对应的平均代价值, β为预设的常数值。
7、 根据权利要求 1-6任一项所述的流媒体请求方法, 其特征在于, 所 述控制器在接收到所述 MPD请求消息之后,获取所述第一客户端所在网络 对应的网络拥塞等级信息, 根据所述第一客户端的身份标识信息, 获取所 述第一客户端对应的用户签约等级信息, 包括:
所述控制器在接收到所述 MPD请求消息之后,向基站发送第一获取请 求消息, 所述第一获取请求消息携带有所述第一客户端的身份标识信息; 所述控制器接收所述基站根据所述第一获取请求消息返回的所述网络 拥塞等级信息和所述第一客户端的用户标识信息;
所述控制器根据所述第一客户端的用户标识信息, 向用户属性存储 SPR发送第二获取请求消息, 所述第二获取请求消息携带有所述第一客户 端的用户标识信息;
所述控制器接收所述 SPR根据所述第二获取请求消息返回的所述用户 签约等级信息。
8、 一种控制器, 其特征在于, 包括:
第一接收模块, 用于接收所有客户端中第一客户端发送的媒体呈现描 述 MPD请求消息, 所述 MPD请求消息携带有所述第一客户端的身份标识 信息;
第一获取模块,用于在所述第一接收模块接收到所述 MPD请求消息之 后, 获取所述第一客户端所在网络对应的网络拥塞等级信息, 根据所述第 一客户端的身份标识信息, 获取所述第一客户端对应的用户签约等级信息; 第一转发模块,用于在所述第一接收模块接收到所述 MPD请求消息之 后, 将所述 MPD请求消息转发给媒体服务器;
第二接收模块, 用于接收所述媒体服务器根据所述 MPD 消息返回的 MPD文件;
第二获取模块,用于从所述 MPD文件中获取所述媒体服务器所支持的
媒体分片码率,并根据所述 MPD文件中所述第一客户端请求的媒体内容的 标识信息, 从预设的效用函数中确定所述媒体内容对应的效用函数;
第二转发模块, 用于将所述 MPD文件转发给所述第一客户端; 第三接收模块,用于接收所述第一客户端根据所述 MPD文件发送的第 一媒体分片请求消息, 所述第一媒体分片请求消息携带有请求码率, 所述 请求码率是指所述第一客户端向所述媒体服务器请求的所述媒体内容中的 媒体分片对应的编码码率;
第三获取模块, 用于根据所述媒体内容对应的效用函数、 所述网络拥 塞等级信息、 所述用户签约等级信息和所述媒体服务器所支持的媒体分片 码率, 获得所述第一客户端对应的目标码率;
第三转发模块, 用于将所述第一媒体分片请求消息中的所述请求码率 替换为所述第一客户端对应的目标码率后发送给所述媒体服务器, 以向所 述媒体服务器请求所述目标码率对应的所述媒体分片。
9、 根据权利要求 8所述的控制器, 其特征在于, 所述第三获取模块包 括:
第一获取单元, 用于根据所述媒体内容对应的效用函数和所有客户端 中每个客户端在所述控制器接收到所述第一媒体分片请求消息时对应的目 标码率, 获得每个客户端对应的效用值, 并对所有客户端对应的效用值进 行平均, 获得平均效用值;
第二获取单元, 用于根据所述媒体内容对应的效用函数、 所述平均效 用值、 所述用户签约等级信息和所述媒体服务器所支持的媒体分片码率, 获得所述第一客户端对应的第一码率;
第三获取单元, 用于根据所述网络拥塞等级信息和所述媒体服务器所 支持的媒体分片码率, 对所述第一码率进行调整, 获得所述第一客户端对 应的目标码率。
10、 根据权利要求 9所述的控制器, 其特征在于, 所述第二获取单元 具体用于根据公式 w^^^ 0 ^ S 计算初始码率, 根据所述初始码率与所 述媒体服务器所支持的媒体分片码率之间的大小关系, 确定所述媒体服务 器所支持的媒体分片码率中与所述初始码率最接近的媒体分片码率作为所 述第一码率;
其中, w表示所述用户签约等级信息对应的权重, 且所述用户签约等
级信息所标识的用户等级越高, 所述用户签约等级信息对应的权重越小; e/7表示所述初始码率; t (bre/7)表示以所述初始码率为变量的所述媒体内容 对应的效用函数; 0C为预先设定的常数值; ^ 为所述平均效用值。
11、 根据权利要求 9或 10所述的控制器, 其特征在于, 所述第三获取 单元具体用于按照由大到小的顺序, 对所有客户端中除所述第一客户端之 外的其他客户端在所述控制器接收到所述第一媒体分片请求消息时对应的 目标码率以及所述第一码率进行排序, 如果所述第一码率在所述排序结果 中位于指定位置之前且所述网络拥塞等级信息所标识的网络拥塞等级大于 预设等级门限, 则根据所述媒体服务器所支持的媒体分片码率降低所述第 一码率, 获得第二码率, 并根据所述第二码率, 获得所述第一客户端对应 的目标码率。
12、 根据权利要求 11所述的控制器, 其特征在于, 所述第三获取单元 用于根据所述第二码率, 获得所述第一客户端对应的目标码率包括:
所述第三获取单元具体用于直接将所述第二码率作为所述第一客户端 对应的目标码率; 或者
所述第三获取单元具体用于根据所述请求码率和所述第二码率对应的 效用值, 分别计算所述请求码率和所述第二码率对应的公平性代价值, 并 分别计算所述请求码率和所述第二码率对应的稳定性代价值, 根据所述请 求码率对应的公平性代价值和稳定性代价值计算所述请求码率对应的平均 代价值, 根据所述第二码率对应的公平性代价值和稳定性代价值, 计算所 述第二码率对应的平均代价值, 从所述请求码率和所述第二码率中选择平 均代价值小的码率作为所述第一客户端对应的目标码率。
请求码率和所述第二码率对应的公平性代价值, 根据公式
,分别计算所述请求码率或所述第二码率对应的稳 定性代价值, 根据公式1^ =^^™ W+ lS^ , 分别计算所述请求码率和 所述第二码率对应的平均代价值, 并选择所述请求码率和所述第二码率中
平均代价值小的码率作为所述第一客户端对应的目标码率; 其中, "^^W表示公平性代价值, ^ 表示第二码率对应的效用值, ^ 表示所述请求码率或所述第二码率对应的效用值, 1 ^ 表示稳定性代价 值,《表示所述第一客户端在指定时间内的码率切换次数, M表示所述第一 客户端在最近一次发生码率切换时的切换幅度; b的取值为所述请求码率或 所述第二码率, 表示所述第一客户端在发送所述第一媒体分片请求消息 之前最近一次发送的第二媒体分片请求消息对应的目标码率; 表示所述 请求码率或所述第二码率对应的平均代价值, β为预设的常数值。
14、 根据权利要求 8-13任一项所述的控制器, 其特征在于, 所述第一 获取模块具体用于在所述第一接收模块接收到所述 MPD请求消息之后,向 基站发送第一获取请求消息, 所述第一获取请求消息携带有所述第一客户 端的身份标识信息, 并接收所述基站根据所述第一获取请求消息返回的所 述网络拥塞等级信息和所述第一客户端的用户标识信息, 根据所述第一客 户端的用户标识信息, 向用户属性存储 SPR发送第二获取请求消息, 所述 第二获取请求消息携带有所述第一客户端的用户标识信息, 并接收所述 SPR根据所述第二获取请求消息返回的所述用户签约等级信息。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310047145.2A CN103973662B (zh) | 2013-02-06 | 2013-02-06 | 流媒体请求方法及控制器 |
CN201310047145.2 | 2013-02-06 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2014121685A1 true WO2014121685A1 (zh) | 2014-08-14 |
Family
ID=51242711
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2014/070798 WO2014121685A1 (zh) | 2013-02-06 | 2014-01-17 | 流媒体请求方法及控制器 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN103973662B (zh) |
WO (1) | WO2014121685A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170070385A1 (en) * | 2015-09-08 | 2017-03-09 | Wipro Limited | System and method for dynamic selection of media server in a communication network |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9894130B2 (en) * | 2014-09-23 | 2018-02-13 | Intel Corporation | Video quality enhancement |
US20160308927A1 (en) * | 2015-04-20 | 2016-10-20 | Qualcomm Incorporated | Further Device Timing Adjustments and Methods for Supporting DASH Over Broadcast |
CN107241571B (zh) * | 2016-03-29 | 2019-11-22 | 杭州海康威视数字技术股份有限公司 | 一种多媒体文件封装、播放方法及装置 |
CN107306356A (zh) * | 2016-04-21 | 2017-10-31 | 中兴通讯股份有限公司 | 视频信息描述文件获取方法及内容分发服务器、机顶盒、*** |
CN107800665B (zh) * | 2016-08-31 | 2020-08-25 | 华为技术有限公司 | 多媒体传输方法、接入网设备及终端 |
CN108495147A (zh) * | 2018-03-09 | 2018-09-04 | 网宿科技股份有限公司 | 一种提供视频资源的方法和*** |
CN110830821A (zh) * | 2018-08-14 | 2020-02-21 | 海能达通信股份有限公司 | 基于切片的rtp流传输方法、装置、终端及服务器 |
CN115086714A (zh) * | 2022-06-13 | 2022-09-20 | 京东科技信息技术有限公司 | 数据处理方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102710586A (zh) * | 2011-03-28 | 2012-10-03 | 华为技术有限公司 | 流媒体传输控制方法、媒体传输控制方法、相关设备 |
CN102801690A (zh) * | 2011-05-25 | 2012-11-28 | 华为技术有限公司 | 流媒体的处理方法、分发服务器、客户端及*** |
CN102833219A (zh) * | 2011-06-16 | 2012-12-19 | 华为技术有限公司 | 向客户端传输数据文件的方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8379851B2 (en) * | 2008-05-12 | 2013-02-19 | Microsoft Corporation | Optimized client side rate control and indexed file layout for streaming media |
-
2013
- 2013-02-06 CN CN201310047145.2A patent/CN103973662B/zh active Active
-
2014
- 2014-01-17 WO PCT/CN2014/070798 patent/WO2014121685A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102710586A (zh) * | 2011-03-28 | 2012-10-03 | 华为技术有限公司 | 流媒体传输控制方法、媒体传输控制方法、相关设备 |
CN102801690A (zh) * | 2011-05-25 | 2012-11-28 | 华为技术有限公司 | 流媒体的处理方法、分发服务器、客户端及*** |
CN102833219A (zh) * | 2011-06-16 | 2012-12-19 | 华为技术有限公司 | 向客户端传输数据文件的方法和装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170070385A1 (en) * | 2015-09-08 | 2017-03-09 | Wipro Limited | System and method for dynamic selection of media server in a communication network |
US10305735B2 (en) * | 2015-09-08 | 2019-05-28 | Wipro Limited | System and method for dynamic selection of media server in a communication network |
Also Published As
Publication number | Publication date |
---|---|
CN103973662A (zh) | 2014-08-06 |
CN103973662B (zh) | 2017-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2014121685A1 (zh) | 流媒体请求方法及控制器 | |
US11038944B2 (en) | Client/server signaling commands for dash | |
KR101524325B1 (ko) | 스트리밍 미디어 서버에 있어서 프록시 구동의 콘텐츠 레이트 선택 | |
EP2717536B1 (en) | Processing method, distribution server, client and system for streaming media | |
JP5674880B2 (ja) | 複数のクライアントにマルチメディアデータを送信するための方法、システム及びネットワーク | |
Thomas et al. | Enhancing MPEG DASH performance via server and network assistance | |
CN108668146B (zh) | 一种调整流媒体码率的方法及设备 | |
WO2010000168A1 (zh) | 一种调节多媒体编码速率的方法、装置及*** | |
KR20150083793A (ko) | 클라이언트 단말기에서, 멀티미디어 컨텐츠의 세그먼트의 다가오는 시퀀스를 다운로딩하는 방법, 및 대응하는 단말기 | |
JP6514217B2 (ja) | セグメントに分割されたマルチメディアコンテンツを受信するように構成されたクライアント端末によるネットワーク情報取得方法 | |
WO2011054319A1 (zh) | 一种在httpstreaming***中实现分层请求内容的方法,装置和*** | |
EP2445142A1 (en) | Dynamic bandwidth adjustment for multiple service support | |
KR102304476B1 (ko) | 적응적 스트리밍 서비스를 위한 다중 경로 기반 블록 전송 시스템 및 스트리밍 방법 | |
WO2013097184A1 (zh) | 业务分发方法、设备和*** | |
CN111193684B (zh) | 媒体流的实时递送方法及服务器 | |
CN110881018B (zh) | 媒体流的实时接收方法及客户端 | |
CN105144730B (zh) | 视频传输方法、装置与*** | |
KR20160105803A (ko) | 멀티미디어 컨텐츠의 컨텐츠 부분을 클라이언트 단말기, 대응 캐시에 제공하는 방법 | |
Falik et al. | Transmission algorithm for video streaming over cellular networks | |
US10348789B2 (en) | Method for retrieving, by a client terminal, a content part of a multimedia content | |
CN110545492B (zh) | 媒体流的实时递送方法及服务器 | |
TW201542013A (zh) | 用戶終端機配置成接收多段分割之多媒體內容以取得網路資訊之方法 | |
TW201532427A (zh) | 用戶終端機配置成接收多段分割之多媒體內容以取得網路資訊之方法 | |
CN117729333A (zh) | 一种编解码方法及网络侧设备、服务器、终端、存储介质 | |
TW201542014A (zh) | 用戶終端機配置成接收多段分割之多媒體內容以取得網路資訊之方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 14748658 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 14748658 Country of ref document: EP Kind code of ref document: A1 |