WO2014134932A1 - 缓存状态估计方法及设备 - Google Patents

缓存状态估计方法及设备 Download PDF

Info

Publication number
WO2014134932A1
WO2014134932A1 PCT/CN2013/087558 CN2013087558W WO2014134932A1 WO 2014134932 A1 WO2014134932 A1 WO 2014134932A1 CN 2013087558 W CN2013087558 W CN 2013087558W WO 2014134932 A1 WO2014134932 A1 WO 2014134932A1
Authority
WO
WIPO (PCT)
Prior art keywords
state
cache
current
duration
status
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/CN2013/087558
Other languages
English (en)
French (fr)
Inventor
陈兵
高山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to EP13877046.6A priority Critical patent/EP2955930B1/en
Publication of WO2014134932A1 publication Critical patent/WO2014134932A1/zh
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/87Regeneration of colour television signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2401Monitoring of the client buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording

Definitions

  • the present invention relates to communications technologies, and in particular, to a buffer state estimation method and device. Background technique
  • the receiving end In order to smooth the impact of network transmission and achieve peer-to-peer playback of the transceiver, the receiving end needs to temporarily store the received audio and video data in the cache. In order to ensure that audio and video data can continue to play after transmission through the IP network.
  • the design of the cache needs to consider the delay and packet loss caused by the cache. If the cache is too small, it may cause excessive packet loss. If the cache is too large, the delay of playback may be too large. It can be seen that the buffer status of the receiver directly affects the audio and video. The playback quality, therefore, it is particularly important to evaluate the playback quality of audio and video by estimating the state of the cache.
  • the prior art is mainly for modeling a cache in a Real-time Transport Protocol (RTP)/User Datagram Protocol (UDP) scenario, so as to estimate the state of the cache.
  • RTP Real-time Transport Protocol
  • UDP User Datagram Protocol
  • the playback quality of audio and video is evaluated.
  • TCP Transmit Sip Control Protocol
  • TCP Transmit Sip Control Protocol
  • a buffer state estimation scheme for the TCP application scenario is required, which is for the audio and video in the TCP application scenario.
  • the quality of the playback is evaluated to provide conditions.
  • the embodiment of the invention provides a buffer state estimation method and device, which are used to solve the estimation problem of the buffer state in the audio and video application based on TCP.
  • the first aspect provides a cache state estimation method, including: Obtaining a first continuous playing duration corresponding to the media data received by the terminal in the current state estimation period;
  • the state of the cache includes at least one of an initial buffer state, a normal play state, a re-buffer state, an end play state, and a stop play state.
  • the first continuous play duration corresponding to the media data received by the acquiring terminal in the current state estimation period includes:
  • the number of bytes of the media data received by the terminal in the current state estimation period and the current The media code rate, before calculating the first continuous play duration includes:
  • the first continuous play duration corresponding to the media data received by the acquiring terminal in the current state estimation period includes:
  • Parsing media data received by the terminal in the current state estimation period and acquiring the media
  • the data includes a maximum decoding timestamp DTS and a minimum decoding timestamp DTS of the complete frame, or a maximum display timestamp PTS and a minimum display timestamp PTS of the complete frame included in the media data;
  • the difference between the maximum DTS and the minimum DTS is used as the first continuous playing duration, or the difference between the maximum PTS and the minimum PTS is used as the first continuous playing duration.
  • the calculating, according to the state of the current state before the state of the state, and the duration of the first continuous playing, calculating a second continuous playing duration corresponding to the media data in the current cache includes:
  • the duration of the continuous play corresponding to the media data in the cache at the end of the last state estimation is the same as the first a sum of the durations of the continuous play as the second continuous play duration;
  • the current cache state before the current state estimation is the normal play state
  • the sum of the continuous play duration corresponding to the media data in the cache and the first continuous play duration at the end of the last state estimation is reduced.
  • the duration of the continuous play corresponding to the media data required for normal play during the current state estimation period is obtained, and the second continuous play duration is obtained.
  • the cache configuration parameter includes: an initial buffer time and a rebuffer time
  • the initial buffering time refers to a continuous playing duration corresponding to the media data that should be stored at least in the cache before the terminal plays the media data for the first time;
  • the re-buffering time refers to the duration of playback of the media data corresponding to the minimum of the media data stored in the cache before the terminal re-buffers in the process of playing the media data.
  • the state of the cache is estimated according to the cache state before the current state estimation, the preset cache configuration parameter, and the second persistent play duration, and the current cache state and the start time of the current cache state are obtained. And duration, including: If the cache state before the current state estimation is the initial buffer state, when the second persistent play duration is greater than or equal to the initial buffer time, determine that the current cache state is a normal play state and record the current cache. a start time and duration of the state, or, when the second continuous play duration is less than the initial buffer time, determining that the current cache state is the initial buffer state and updating the duration of the current cache state;
  • the buffer state before the current state estimation is the re-buffering state
  • the second continuous playing duration is greater than or equal to the re-buffering time
  • determining that the current buffering state is a normal playing state and recording the current buffering The start time and duration of the state, or, when the second continuous play duration is less than the re-buffer time, determine that the current cache state is the re-buffer state and update the duration of the current cache state.
  • the method further includes:
  • the buffer state before the current state estimation is the normal playing state, and the second continuous playing duration is less than or equal to the preset threshold, determine that the current buffering state is the re-buffering state and record the start of the current buffering state.
  • the method further includes:
  • the buffering state is recorded and the start time and duration of the current buffering state are recorded.
  • the maximum DTS or the maximum PTS is greater than or equal to the DTS or PTS required for normal playback in the current state estimation period, it is determined that the current buffering state is normal playback. Status and update the duration of this cache state.
  • the method further includes:
  • the record local cache is The start time and duration of the state, including:
  • the acquiring the current cache state and the current After the start time and duration of the cache state it also includes:
  • the current cache status and the start time and duration of the current cache status are corrected.
  • the user request includes: a play request, a replay request, a search request, a stop play request, or an end play request;
  • the correcting the current cache state and the start time and duration of the current cache state according to the user request including:
  • the current cache status is corrected to an initial buffer status and the start time and duration of the current cache status after the correction are recorded;
  • the current cache status is corrected to a normal play status and the start time and duration of the current cache status after the correction are recorded;
  • the current cache status is corrected to the end play status and the start time and duration of the current cache status after the correction are recorded;
  • the current cache status is corrected to the stop play status and the start time and duration of the current cache status after the correction are recorded.
  • the second aspect provides a buffer state estimation device, including:
  • a first acquiring module configured to acquire a first continuous playing duration corresponding to the media data received by the terminal in the current state estimation period
  • a calculation module configured to calculate a second continuous play duration corresponding to the media data in the current cache according to the cache state before the current state estimation and the first continuous play duration
  • a state estimation module configured to perform state estimation on the cache according to the cache state before the local state estimation, a preset cache configuration parameter, and the second persistent play duration, to obtain the current cache state and the current cache state.
  • the start time and duration wherein the cached state includes at least one of an initial buffer state, a normal play state, a re-buffer state, an end play state, and a stop play state.
  • the first acquiring module is specifically configured to use, according to the number of bytes of the media data received by the terminal in the current state estimation period, and the current media. a code rate, calculating the first continuous play duration; or
  • the first acquiring module is specifically configured to parse the media data received by the terminal in the current state estimation period, and obtain the number of frames of the media data received by the terminal in the current state estimation period, according to the terminal in the present The number of frames of the media data received in the secondary state estimation period and the current media frame rate, and the first continuous playback duration is calculated.
  • the cache state estimation device further includes: a second acquiring module, configured to be in the first acquiring module Receiving, by the terminal, a feedback message sent by the terminal, where the feedback message is sent by the terminal for the media data received in the current state estimation period, according to the feedback report And obtaining the number of bytes of the media data received by the terminal in the current state estimation period; or
  • a third acquiring module configured to parse the media data received by the terminal in the current state estimation period, and obtain the current state estimation period of the terminal, before the first acquiring module calculates the first continuous playing duration The number of bytes of media data received.
  • the first acquiring module is specifically configured to parse media data that is received by the terminal in the current state estimation period, and acquiring the media data includes a maximum decoding timestamp DTS and a minimum decoding timestamp DTS of the complete frame, or acquiring a maximum display timestamp PTS and a minimum display timestamp PTS of the complete frame included in the media data, with the maximum DTS and the minimum DTS
  • the difference is the first continuous playing duration, or the difference between the maximum PTS and the minimum PTS is used as the first continuous playing duration.
  • the calculating module is specifically configured to: when the cache state before the current state estimation is a cache state other than the normal play state, the cache is in the cache at the end of the last state estimation And the sum of the continuous play duration corresponding to the media data and the first continuous play duration is the second continuous play duration, or when the cache state before the current state estimation is the normal play state, to the last time The sum of the duration of the continuous play corresponding to the media data in the cache and the duration of the first continuous play time at the end of the state estimation, and subtracting the duration of the continuous play corresponding to the media data required for normal play in the current state estimation period, The second continuous playing time is long.
  • the cache configuration parameter includes: an initial buffer time and a rebuffer time;
  • the initial buffering time refers to a continuous playing duration corresponding to the media data that should be stored in the cache in order to achieve normal playback before the terminal plays the media data for the first time;
  • the re-buffering time refers to the duration of the continuous playback of the media data that should be stored in the cache before the terminal re-plays the media data in the process of playing the media data.
  • the state estimation module is specifically configured to: if the cache state before the current state estimation is the initial buffer state, when the second continuous play duration is greater than or equal to the initial buffer time, determine that the current cache state is Normally playing the state and recording the start time and duration of the current cache state. When the second continuous play duration is less than the initial buffer time, determining that the current cache state is the initial buffer state and updating the current cache state. a duration, and if the buffer state before the current state estimation is the re-buffering state, when the second continuous playing duration is greater than or equal to the re-buffering time, determining that the current buffering state is a normal playing state and Recording the start time and duration of the current cache state. When the second continuous play duration is less than the rebuffer time, determine that the current cache state is the rebuffer state and update the duration of the current cache state.
  • the state estimation module is further configured to: if the cache state before the current state estimation is the normal play state, in the second continuous play The duration is less than or equal to the preset threshold, and the current buffer state is determined to be the re-buffer state and the start time and duration of the current buffer state are recorded. When the second continuous play duration is greater than the preset threshold, the current cache is determined. The status is the normal play status and the duration of this cache status is updated.
  • the state estimation module is further configured to: if the current state of the state before the state estimation is the normal play state, at the maximum DTS or maximum When the PTS is smaller than the DTS or PTS required for normal playback in the current state estimation period, it is determined that the current buffer state is the re-buffer state and the start time and duration of the current buffer state are recorded, where the maximum DTS or the maximum PTS is greater than or Equal to this state estimate When the required DTS or PTS is normally played during the counting period, it is determined that the current buffering state is the normal playing state and the duration of the current buffering state is updated.
  • the state estimation module is further configured to determine that the current cache state is the end if the current cache state before the state estimation is the end playback state. Play status.
  • the state estimation module is further configured to: if the cache state before the current state estimation is the stop playing state, determine that the current cache state is stopped. Play status.
  • the state estimation module is configured to record a start time and a duration of the current cache state, including:
  • the state estimation module is specifically configured to: when the current cache state is inconsistent with the cache state before the current state estimation, update the current media according to the first continuous play duration and the cache state before the current state estimation The time point corresponding to the progress of the data itself is obtained, and the start time and duration of the current cache state are obtained according to the time point corresponding to the playback progress of the updated media data.
  • the user request includes: a play request, a replay request, a search request, a stop play request, or an end Play request
  • the state correction module is specifically configured to: if the user requests the play request or the search request, correct the current cache state to an initial buffer state and record a start time and duration of the current cache state after the correction; If the user requests the replay request, the current cache status is corrected to a normal play status and the start time and duration of the current cache status after the correction are recorded; if the user requests the end play request, Then, the current cache state is corrected to the end play state and the start time and duration of the current cache state after the correction are recorded; if the user requests the stop play request, the current cache state is corrected to the stop play state. Record the start time and duration of this cache state after the correction.
  • the method and device for estimating the state of the cache obtaineds the persistence of the media data in the current cache according to the duration of the continuous play corresponding to the media data received by the terminal between the two state estimations and the cache state before the current state estimation.
  • the playing time is long, and then according to the state of the current state, the preset cache configuration parameter and the duration of the continuous playback corresponding to the media data in the current cache, the state of the cache is estimated to obtain the current cache state and the start time of the current cache state.
  • the duration of the buffer state estimation process is not limited by the transmission protocol, and can be used to estimate the buffer state in the TCP application scenario, and provide conditions for evaluating the playback quality of the audio and video in the TCP application scenario.
  • FIG. 1 is a flowchart of a method for estimating a buffer state according to an embodiment of the present invention
  • FIG. 2 is a schematic diagram of a buffer state estimation model according to an embodiment of the present invention
  • FIG. 3 is a schematic diagram of each cache state according to an embodiment of the present invention
  • FIG. 4 is a schematic structural diagram of a buffer state estimation device according to an embodiment of the present invention
  • FIG. 5 is a schematic structural diagram of another buffer state estimation device according to an embodiment of the present invention
  • FIG. 6 is a schematic structural diagram of still another buffer state estimation device according to an embodiment of the present invention.
  • FIG. 1 is a flowchart of a method for estimating a buffer state according to an embodiment of the present invention. As shown in FIG. 1, the method in this embodiment includes:
  • Step 101 Acquire a first continuous playing duration corresponding to the media data received by the terminal in the current state estimation period.
  • obtaining the first continuous play duration includes: calculating the first persistent play duration according to the size of the media data received by the terminal in the current state estimation period and the current media information.
  • the state estimation period refers to a time interval from the end time of the last state estimation to the end time of the current state estimation, or between the start time of the previous state estimation and the start time of the current state estimation. Interval.
  • the size of the media data received by the terminal in the current state estimation period may be represented by the number of bytes of the media data received by the terminal in the current state estimation period, and correspondingly, the current media information is the current media code rate.
  • an optional implementation manner of step 101 includes: calculating the first continuous play duration according to the number of bytes of media data received by the terminal in the current state estimation period and the current media code rate.
  • the first continuous playing duration can be obtained according to the formula ⁇ 7 ⁇ : ⁇ , where the number of bytes of the media data received by the terminal in the current state estimation period is expressed in the formula, ⁇ ⁇ ( ⁇ ') in the formula
  • the current media bit rate, in the formula indicates the first continuous play duration.
  • the current media code rate may be a media average code rate or a media real-time code rate.
  • the buffer state estimation method provided by the embodiment of the present invention may be performed by the terminal, where the terminal receives the optional implementation manner of the foregoing step 101, that is, receives the current state estimation period according to the terminal.
  • the number of bytes of the media data and the current media code rate, before calculating the first continuous play duration, the media that the terminal receives during the current state estimation period can be parsed Data, the number of bytes of media data received by the terminal during the current state estimation period.
  • the buffer state estimation method provided by the embodiment of the present invention may be performed by a media server or a network node, where the media server or the network node performs the foregoing implementation of step 101, that is, according to the terminal in the present The number of bytes of the media data received in the sub-state estimation period and the current media code rate.
  • the feedback message sent by the terminal may be received, where the feedback message is that the terminal is The number of bytes of the media data received by the terminal in the current state estimation period is obtained according to the feedback packet sent by the media data received by the terminal in the current state estimation period.
  • the feedback message is a TCP-based acknowledgment (ACK) packet or an RTCP packet, and the packet carries information such as the number of bytes of the media data received by the terminal.
  • ACK TCP-based acknowledgment
  • the size of the media data received by the terminal in the current state estimation period may be represented by the number of frames of the media data received by the terminal in the current state estimation period; correspondingly, the current media information is current. Media frame rate.
  • another optional implementation manner of step 101 includes: parsing media data received by the terminal in the current state estimation period, and obtaining a frame number of media data received by the terminal in the current state estimation period. And calculating, according to the number of frames of the media data received by the terminal in the current state estimation period and the current media frame rate, the first continuous play duration.
  • the first continuous playing duration can be calculated according to the formula ⁇ 7 ⁇ : ⁇ ⁇ , where ⁇ in the formula represents the number of frames of the media data received by the terminal in the current state estimation period, and the current media frame rate is represented in the formula.
  • the expression in the formula indicates the first continuous play duration.
  • the execution subject of the cache state estimation method of the present embodiment is a terminal.
  • obtaining the first persistent play duration includes: parsing the media data received by the terminal in the current state estimation period, and acquiring a maximum decoding timestamp of the complete frame included in the media data (Decodi ng a Time Stamp (abbreviated as DTS) and a minimum DTS, or a maximum display timestamp (Presentat i on Time Stamp, abbreviated as PTS) and a minimum PTS of a complete frame included in the media data; with a maximum DTS and a minimum DTS
  • DTS Time Stamp
  • PTS maximum display timestamp
  • the difference is the first continuous playing duration, or the difference between the maximum PTS and the minimum PTS is used as the first continuous playing duration. For example, you can follow the formula
  • RT(i) max(PTS m , , PTS n ) -mm(PTS m , , PTS n ) ⁇
  • max ( ) in the formula is a function that takes the maximum value
  • min ( ) is a function that takes the minimum value.
  • ⁇ 5 in the formula represents the DTS carried by the mth data frame received by the terminal
  • DTS n represents The DTS carried in the nth data frame received by the terminal
  • ⁇ 6 in the formula indicates the PTS carried in the mth data frame received by the terminal, and indicates the PTS carried in the nth data frame received by the terminal.
  • the execution subject of this embodiment is a terminal.
  • Step 102 Calculate a second continuous play duration corresponding to the media data in the current cache according to the cache state before the current state estimation and the first continuous play duration.
  • the continuation of the media data in the current cache may be calculated according to the current cache state before the state estimation and the first continuous playing duration.
  • the playing time that is, the second continuous playing time.
  • the embodiment provides a cache state estimation model, where the model uses the first continuous play duration, the second continuous play duration, the current cache state before the state estimation, and the cache configuration parameter as the input parameters, and the estimated cache. Information such as the state, the start time and duration of the cache state is taken as its output.
  • a visual schematic of the model is shown in Figure 2.
  • the buffered cache state may include at least one of an initial buffer state, a normal play state, a re-buffer state, an end play state, and a stop play state.
  • the initial state of the buffer state estimation model is set to the initial buffer state, that is, if the current state estimation is the first state estimation, the buffer state before the current state estimation is the initial buffer state.
  • the state of the buffer before the state estimation is the buffer state obtained by the previous state estimation, and the state of the buffer before the state estimation may be the initial buffer state and normal playback. Any of the status, rebuffer status, end play status, and stop play status.
  • the estimated current buffer state may be any one of an initial buffer state, a normal play state, a re-buffer state, an end play state, and a stop play state. status.
  • the jumps between the cache states occur in the order in which the media is played. The jump relationship between the cache states is shown in Figure 3.
  • the process of calculating the second continuous play duration may include: if the cache state before the current state estimation is a cache state other than the normal play state, the cache will be the last time the state estimation ends.
  • the sum of the continuous play duration corresponding to the media data and the first continuous play duration is used as the second continuous play duration, for example
  • the size of the media data in the cache at the end of the last state estimation may be represented, where the second persistent play duration is represented in the formula; since the terminal is not in the normal play state in the time between the two state estimations, the cache is in the cache.
  • the media data has not changed since the last buffer state estimation end to the current buffer state estimation, so the duration of the continuous playback corresponding to the media data in the cache at the end of the last buffer state estimation and the terminal are connected between the two state estimations.
  • the duration of the continuous play corresponding to the received media data is added, and the duration of the continuous play corresponding to the media data in the current cache is obtained;
  • the current cache state before the current state estimation is the normal play state
  • the sum of the continuous play duration corresponding to the media data in the cache at the end of the last state estimation and the first continuous play duration is subtracted from this time.
  • the duration of the continuous playback corresponding to the media data required for normal playback during the state estimation period, and the duration of the second continuous playback is obtained, for example, according to a formula
  • ⁇ - 1 in the formula indicates the duration of the continuous playback corresponding to the media data in the buffer at the end of the last state estimation. It can also indicate the size of the media data in the cache at the end of the last state estimation.
  • the ' 7 ⁇ in the formula indicates the duration of the continuous playback corresponding to the media data required for normal playback during the current state estimation period, and can also indicate this time.
  • the size of the media data required for normal playback during the state estimation period the expression indicating the second continuous play duration; since the terminal is in the normal play state within the time between the two state estimations, the media data in the cache has been since the last time
  • the buffer state estimation ends until the current buffer state estimation begins to change, so that the duration of the continuous playback corresponding to the media data in the buffer at the end of the last buffer state estimation corresponds to the media data received by the terminal between the two state estimations.
  • the duration of the continuous playback is added, and the duration of the playback of the media data required for normal playback during the current state estimation period is subtracted. Long continuous playback available cache data corresponding to the current media.
  • the cache state before the current state estimation here refers to the cache state obtained by the previous state estimation.
  • Step 103 Perform state estimation on the cache according to the current cache state before the state estimation, the preset cache configuration parameter, and the second persistent play duration, and obtain the current cache state and the start time of the current cache state. And duration, wherein the state of the cache includes an initial buffer state, a normal play state, a re-buffer state, an end play state, and a stop play state at least one.
  • the state of the cache may be estimated according to the current cache state, the preset cache configuration parameter, and the second persistent play duration, and the current cache state and the current time are obtained.
  • the start time and duration of the cache state may be estimated according to the current cache state, the preset cache configuration parameter, and the second persistent play duration, and the current cache state and the current time are obtained.
  • the cache configuration parameters may include: an initial buffer time and a rebuffer time.
  • the initial buffering time refers to the duration of the continuous playing corresponding to the media data that should be stored in the normal playing buffer before the terminal plays the media data for the first time.
  • the re-buffering time refers to the duration of the continuous playback corresponding to the media data that should be stored in the cache before the terminal re-plays the media data in the process of playing media data from the terminal.
  • the unit of the above various continuous play durations may be milliseconds, but is not limited thereto.
  • step 103 that is, according to the current cache state before the state estimation, the preset cache configuration parameter, and the second continuous play duration, the state of the cache is estimated, and the current cache state is obtained.
  • the start time and the duration of the current cache state including: if the cache state before the current state estimation is the initial buffer state, when the second continuous play duration is greater than or equal to the initial buffer time, determining this time
  • the cache state is a normal play state and the start time and duration of the current cache state are recorded.
  • the second continuous play duration is less than the initial buffer time, it is determined that the current cache state is the initial buffer state and the current update is updated.
  • the duration of the cache state is, according to the current cache state before the state estimation, the preset cache configuration parameter, and the second continuous play duration, the state of the cache is estimated, and the current cache state is obtained.
  • the start time and the duration of the current cache state including: if the cache state before the current state estimation is the initial buffer state, when the second continuous play duration is greater than or equal to the
  • the buffer status before the current state estimation is a re-buffering state
  • the second persistent playing duration is greater than or equal to the re-buffering time
  • determining that the current buffering state is a normal playing state and recording the current buffering state The start time and the duration, when the second continuous play duration is less than the re-buffer time, determine that the current cache state is the re-buffer state and update the duration of the current cache state.
  • the cache state estimation method may further include:
  • the buffer state before the current state estimation is a normal playing state
  • the second persistent playing duration is less than or equal to a preset second threshold
  • determining that the current buffering state is a re-buffering state and recording the current buffering state start time and duration, grow up during the second continuous play
  • the preset second threshold it is determined that the current cache state is the normal play state and the duration of the current cache state is updated.
  • the cache state estimation method may further include:
  • the current buffer state is the re-buffer state and the start time and duration of the current buffer state are recorded, at the maximum DTS or maximum
  • the PTS is greater than or equal to the DTS or PTS required for normal playback during the current state estimation period
  • the current cache state is the normal play state and the duration of the current cache state is updated.
  • the cache state before the current state estimation here refers to the cache state obtained by the previous state estimation.
  • the cache state estimation method may further include:
  • the cache state estimation method may further include:
  • Start time and duration including:
  • the start time of each cache state is each time point corresponding to the playback progress of the media data itself.
  • the cache state estimation method further includes: after acquiring the current cache state and the start time and the duration of the current cache state, according to the foregoing embodiments, the method further includes:
  • the current cache status and the start time and duration of the current cache status are corrected.
  • the user request includes: a play request (paly), a replay request (review), a search request (seek), a stop play request (pause), or an end play request (stop).
  • the process of correcting the current cache state and the start time and duration of the current cache state is different according to the user request. For example,
  • the current cache status is corrected to an initial buffer status and the start time and duration of the current cache status after the correction are recorded;
  • the current cache status is corrected to a normal play status and the start time and duration of the current cache status after the correction are recorded;
  • the current cache status is corrected to end the play status and the start time and duration of the current cache status after the correction are recorded;
  • the current cache state is corrected to stop the play state and the start time and duration of the current cache state after the correction are recorded.
  • the embodiment of the present invention can obtain the continuous playing duration corresponding to the media data in the current cache according to the continuous playing duration corresponding to the media data received by the terminal between the two state estimations and the buffer state before the current state estimation, and then According to the state of the cache before the state estimation, the preset cache configuration parameter and the duration of the continuous play corresponding to the media data in the current cache, the state of the cache is estimated to obtain the current cache state and the start time and hold of the current cache state.
  • the continuation time, the cache state estimation process is not limited by the transmission protocol, and can be used to estimate the buffer state in the TCP application scenario, and provide conditions for evaluating the playback quality of the audio and video in the TCP application scenario.
  • the cache state can be corrected according to the user request, and the impact of the user behavior on the cache state is fully considered, so that the cache state estimation result is closer to the real and more accurate.
  • FIG. 4 is a schematic structural diagram of a buffer state estimation device according to an embodiment of the present invention. As shown in FIG. 4, the device in this embodiment includes: a first obtaining module 41, a calculating module 42 and a state estimating module 43.
  • the first obtaining module 41 is configured to acquire a first continuous playing duration corresponding to the media data received by the terminal in the current state estimation period.
  • the calculation module 42 is connected to the first acquisition module 41, and is configured to calculate a second continuous playback corresponding to the media data in the current cache according to the cache state before the current state estimation and the first continuous playback duration acquired by the first acquisition module 41. duration.
  • the state estimation module 43 is connected to the calculation module 42 for estimating the state of the cache according to the cache state before the local state estimation, the preset cache configuration parameter, and the second continuous play duration calculated by the calculation module 42.
  • the secondary cache state and the start time and duration of this cache state are connected to the calculation module 42 for estimating the state of the cache according to the cache state before the local state estimation, the preset cache configuration parameter, and the second continuous play duration calculated by the calculation module 42.
  • the buffered cache state may include: at least one of an initial buffer state, a normal play state, a re-buffer state, an end play state, and a stop play state.
  • the initial state of the cache state estimation is set to the initial buffer state. Based on this, if the current state is estimated as the first state estimation, the buffer state before the state estimation is the initial buffer state; if the current state estimation is not the first state estimation, the buffer state before the current state estimation Can be: initial buffer status, normal play status, rebuffer status, end play status, or stop play status.
  • the estimated current buffer state may be: an initial buffer state, a normal play state, a re-buffer state, an end play state, or a stop play state.
  • the first obtaining module 41 is configured to calculate the first continuous playing duration according to the size of the media data received by the terminal in the current state estimation period and the current media information.
  • the size of the media data received by the terminal during the current state estimation period is The number of bytes of the media data received by the terminal in the current state estimation period; the current media information is the current media code rate.
  • the first obtaining module 41 is specifically configured to calculate the first continuous playing duration according to the number of bytes of media data received by the terminal in the current state estimation period and the current media code rate.
  • the cache state estimation device further includes: a second acquisition module 44 or a third acquisition module 45.
  • the second obtaining module 44 is connected to the first obtaining module 41, and is configured to receive, after the first acquiring module 41 calculates the first continuous playing duration, the feedback packet sent by the terminal, where the feedback packet is directed by the terminal. And sending, by the terminal, the media data received by the terminal in the current state estimation period, and acquiring, according to the feedback message, the number of bytes of the media data received by the terminal in the current state estimation period.
  • the third obtaining module 45 is connected to the first obtaining module 41, and configured to parse the media data received by the terminal in the current state estimation period before the first obtaining module 41 calculates the first continuous playing duration, The number of bytes of media data received by the terminal during the current state estimation period.
  • the cache state estimation device may include the foregoing third acquisition module 45; if the cache state estimation device is a media server, the cache state estimation device The second acquisition module 44 described above may be included.
  • the size of the media data received by the terminal in the current state estimation period is the number of frames of the media data received by the terminal in the current state estimation period; the current media information is the current media frame rate.
  • the first obtaining module 41 is specifically configured to parse the media data received by the terminal in the current state estimation period, and obtain the number of frames of the media data received by the terminal in the current state estimation period, according to the terminal in the present The number of frames of the media data received in the secondary state estimation period and the current media frame rate, and the first continuous playback duration is calculated.
  • the first obtaining module 41 is specifically configured to parse the media data received by the terminal in the current state estimation period, and obtain a maximum DTS and a minimum DTS of the complete frame included in the media data, or Obtaining a maximum PTS and a minimum PTS of the complete frame included in the media data, using a difference between a maximum DTS and a minimum DTS as the first continuous playing duration, or a difference between a maximum PTS and a minimum PTS as the first persistent playing duration .
  • the calculation module 42 is specifically applicable to the cache shape before the current state estimation.
  • the state is a cache state other than the normal play state
  • the sum of the continuous play duration corresponding to the media data in the cache and the first continuous play duration when the last state estimation is ended is used as the second continuous play.
  • the duration, or when the cache state before the current state estimation is the normal play state the sum of the continuous play duration corresponding to the media data in the cache at the end of the last state estimation and the first continuous play duration, minus The duration of the continuous playback corresponding to the media data required for normal playback during the current state estimation period is obtained, and the second continuous playback duration is obtained.
  • the cache state before the current state estimation here refers to the cache state obtained by the previous state estimation.
  • the cache configuration parameters include: an initial buffer time and a rebuffer time.
  • the initial buffering time refers to a continuous playing duration corresponding to the media data that should be stored at least in the cache before the first playing of the media data by the terminal;
  • the re-buffering time refers to the terminal from the terminal.
  • the buffering starts in the process of playing the media data, and before the terminal replays the media data, the media data that should be stored in the cache at least corresponds to the duration of the continuous playing.
  • the state estimation module 43 is specifically configured to determine that the current cache state is the initial cache state if the current cache state is the initial buffer state, and the second cache duration is greater than or equal to the initial buffer time. Normally playing the state and recording the start time and duration of the current cache state. When the second continuous play duration is less than the initial buffer time, determining that the current cache state is the initial buffer state and updating the current cache state.
  • the buffer state before the current state estimation is a re-buffering state, when the second continuous playing duration is greater than or equal to the re-buffering time, determining that the current buffering state is a normal playing state and recording the present
  • the start time and duration of the secondary cache state when the second persistent play duration is less than the re-buffer time, determine that the current cache state is the re-buffer state and update the duration of the current cache state.
  • the state estimation module 43 is further configured to: if the cache state before the current state estimation is a normal play state, and the second continuous play duration is less than or equal to a preset second threshold, determine the current time.
  • the buffering state is a re-buffering state, and the start time and duration of the current buffering state are recorded.
  • the second persistent playing duration is greater than the preset second threshold, determining that the current buffering state is a normal playing state and updating the current The duration of the secondary cache state.
  • the state estimation module 43 is further configured to: if the buffer state before the current state estimation is a normal playing state, the DTS or the maximum PTS is less than the DTS required for normal playback in the current state estimation period. Or PTS, determine that the buffer status is re-buffered and Recording the start time and duration of the current buffer state. When the maximum DTS or the maximum PTS is greater than or equal to the DTS or PTS required for normal playback in the current state estimation period, it is determined that the current cache state is the normal play state and updated. The duration of this cache state.
  • the cache state before the current state estimation here refers to the cache state obtained by the previous state estimation.
  • the state estimation module 43 is further configured to determine that the current cache state is the end play state if the cache state before the current state estimation is the end play state.
  • the state estimation module 43 is further configured to determine that the current cache state is the stop play state if the cache state before the current state estimation is the stop play state.
  • the state estimation module 43 is configured to record the start time and duration of the current cache state, including:
  • the state estimation module 43 is specifically configured to: when the current cache state is inconsistent with the cache state before the current state estimation, update the current media data according to the first persistent play duration and the cache state before the current state estimation. At the time point corresponding to the progress of the self-playing, the start time and duration of the current cache state are obtained according to the time point corresponding to the playback progress of the updated media data.
  • the cache state estimation device further includes: a state correction module 46.
  • the state correction module 46 is connected to the state estimation module 43 for correcting the current cache state estimated by the state estimation module 43 and the start time and duration of the current cache state according to the user request.
  • the user request may include: a play request, a replay request, a search request, a stop play request, or an end play request.
  • the state correction module 46 is specifically configured to: if the user requests a play request or a search request, correct the current cache state to an initial buffer state and record a start time and duration of the current cache state after the correction; if the user requests In order to replay the request, the current cache state is corrected to the normal play state and the start time and duration of the current cache state after the correction are recorded; if the user requests to end the play request, the current cache state is corrected to the end. Playing the state and recording the start time and duration of the current cache state after the correction; if the user requests to stop the play request, the current cache state is corrected to the stop play state and the start time of the current cache state after the correction is recorded and duration.
  • the cache state estimation device may be the terminal, or may be a media Server or network node, but not limited to this.
  • the function modules of the buffer state estimation device provided in this embodiment may be used to execute the process of the method for estimating the state of the cache state shown in FIG. 1.
  • the specific working principle is not described here. For details, refer to the description of the method embodiment.
  • the buffer state estimation device may obtain the continuous play duration corresponding to the media data in the current cache according to the continuous play duration corresponding to the media data received by the terminal between the two state estimations and the cache state before the current state estimation. Then, according to the state of the cache before the state estimation, the preset cache configuration parameter and the duration of the continuous play corresponding to the media data in the current cache, the state of the cache is estimated to obtain the current cache state and the start time and duration of the current cache state.
  • Time the process of estimating the buffer state is not limited by the transmission protocol, and can be used to estimate the buffer state in the TCP application scenario, and provide conditions for evaluating the playback quality of the audio and video in the TCP application scenario.
  • FIG. 6 is a schematic structural diagram of still another buffer state estimation device according to an embodiment of the present invention.
  • the cache state estimating device includes: a memory 61 and a processor 62.
  • the memory 61 is used to store a program.
  • the program can include program code, the program code including computer operating instructions.
  • the memory 61 may include a high speed RAM memory and may also include a non-volatile memory, such as at least one disk memory.
  • the processor 62 is configured to execute a program stored in the memory 61, configured to: acquire a first continuous play duration corresponding to the media data received by the terminal in the current state estimation period; and the cache state before the current state estimation and the a first continuous playing duration, calculating a second continuous playing duration corresponding to the media data in the current cache; according to the current cache state before the state estimation, the preset cache configuration parameter, and the second persistent play duration, the cache Perform state estimation to obtain the current cache state and the start time and duration of the current cache state.
  • the buffered cache state includes: at least one of an initial buffer state, a normal play state, a re-buffer state, an end play state, and a stop play state.
  • the initial state of the cache state estimation is set to an initial buffer state. Based on this, if the current state is estimated as the first state estimation, the buffer state before the state estimation is the initial buffer state; if the current state estimation is not the first state estimation, the buffer state before the current state estimation Can be: initial buffer status, normal play status, rebuffer status, end play status, or stop broadcast
  • the estimated current buffer state may be: initial buffer state, normal play state, re-buffer state, end play state, or stop play state.
  • the processor 62 is configured to obtain the first continuous playing duration, where the processor 62 is specifically configured to calculate, according to the size of the media data received by the terminal in the current state estimation period, and the current media information.
  • the first continuous playing time is long.
  • the size of the media data received by the terminal in the current state estimation period is the number of bytes of the media data received by the terminal in the current state estimation period; the current media information is the current media code rate. .
  • the processor 62 is specifically configured to calculate the first continuous play duration according to the number of bytes of media data received by the terminal in the current state estimation period and the current media code rate.
  • the cache state estimation device further includes: a communication interface 63.
  • the communication interface 63 may be configured to receive a feedback message sent by the terminal before the processor 62 calculates the first continuous play duration, where the feedback message is that the terminal is targeted by the terminal.
  • the terminal sends the media data received during the current state estimation period.
  • the processor 62 is specifically configured to obtain, according to the feedback message, the number of bytes of media data received by the terminal in the current state estimation period, and then receive according to the terminal in the current state estimation period. The number of bytes of the media data and the current media code rate, and the first continuous play duration is calculated.
  • the communication interface 63 can be used to receive media data before the processor 62 calculates the first continuous play duration.
  • the processor 62 is specifically configured to parse the media data received by the communication interface 63 in the current state estimation period, and obtain the number of bytes of the media data received by the communication interface 63 in the current state estimation period, and then according to the communication interface 63. The number of bytes of the media data received during the state estimation period and the current media code rate, and the first continuous play duration is calculated.
  • the size of the media data received by the terminal in the current state estimation period is the number of frames of the media data received by the terminal in the current state estimation period; and the current media information is the current media frame rate.
  • the processor 62 is specifically configured to parse the media data received by the terminal in the current state estimation period, and obtain the number of frames of the media data received by the terminal in the current state estimation period, according to the terminal in the present Secondary state estimation period of media data received during the period
  • the first continuous play duration is calculated by the number of frames and the current media frame rate.
  • the processor 62 is configured to: acquire, by the processor 62, the media data that is received by the terminal in the current state estimation period, and the acquiring the media data includes: The maximum DTS and the minimum DTS of the complete frame, or the maximum PTS and the minimum PTS of the complete frame included in the media data, the difference between the maximum DTS and the minimum DTS as the first continuous playing duration, or the maximum PTS and the minimum The difference between the PTSs is taken as the first continuous playing duration.
  • the processor 62 is configured to calculate the second continuous playing duration, where the processor 62 is specifically configured to: when the buffer state before the current state estimation is a buffer state other than the normal playing state. And the sum of the continuous play duration corresponding to the media data in the cache and the first continuous play duration as the second continuous play duration, or the cache before the current state estimation, at the end of the last state estimation When the state is the normal play state, the sum of the continuous play duration corresponding to the media data in the cache and the first continuous play duration at the end of the last state estimation is subtracted, and the media data required for normal playback in the current state estimation period is subtracted. Corresponding continuous playing duration, the second continuous playing duration is obtained.
  • the cache state before the current state estimation here refers to the cache state obtained by the previous state estimation.
  • the cache configuration parameters include: an initial buffer time and a rebuffer time.
  • the initial buffering time refers to a continuous playing duration corresponding to the media data that should be stored at least in the cache before the first playing of the media data by the terminal;
  • the re-buffering time refers to the terminal from the terminal.
  • the buffering starts in the process of playing the media data, and before the terminal replays the media data, the media data that should be stored in the cache at least corresponds to the duration of the continuous playing.
  • the processor 62 is configured to perform state estimation on the cache according to the current cache state before the state estimation, the preset cache configuration parameter, and the second persistent play duration, and obtain the current cache state and the current cache.
  • the start time and the duration of the state include: the processor 62 is specifically configured to: if the cache state before the current state estimation is an initial buffer state, when the second persistent play duration is greater than or equal to the initial buffer time, determine The current cache state is the normal play state and the start time and duration of the current cache state are recorded. When the second continuous play duration is less than the initial buffer time, it is determined that the current cache state is the initial buffer state and updated.
  • the duration of the current cache state, and if the cache state before the current state estimation is a re-buffer state, the second continuous play duration is greater than or equal to the re-buffer time Determining that the current cache state is the normal playback state and recording the start time and duration of the current cache state. When the second persistent play duration is less than the re-buffer time, determining that the current cache state is the re-buffer state and Update the duration of this cache state.
  • the processor 62 is further configured to: if the buffer state before the current state estimation is a normal playing state, and the second persistent playing duration is less than or equal to a preset second threshold, determine the current buffering.
  • the state is the re-buffer state and the start time and duration of the current buffer state are recorded.
  • the second continuous play duration is greater than the preset second threshold, it is determined that the current cache state is the normal play state and the current update is updated. The duration of the cache state.
  • the processor 62 is further configured to: if the buffer state before the current state estimation is a normal playing state, when the maximum DTS or the maximum PTS is less than the DTS or the normal playing state in the current state estimation period In the PTS, it is determined that the current buffer state is the re-buffer state and the start time and duration of the current buffer state are recorded, and the maximum DTS or the maximum PTS is greater than or equal to the DTS or PTS required for normal playback in the current state estimation period. When it is determined, the current cache state is the normal play state and the duration of the current cache state is updated.
  • the cache state before the current state estimation here refers to the cache state obtained by the previous state estimation.
  • the processor 62 is further configured to determine that the current cache state is the end play state if the cache state before the current state estimation is the end play state.
  • the processor 62 is further configured to determine that the current cache state is a stop playing state if the cache state before the current state estimation is a stop playing state.
  • the processor 62 is configured to record the start time and the duration of the current cache state, where the processor 62 is specifically configured to: when the current cache state is inconsistent with the cache state before the current state estimation, according to the a continuous play duration and a cache state before the current state estimation, update a time point corresponding to the current media data playback progress, and obtain a start time of the current cache state according to a time point corresponding to the updated media data self-play progress duration.
  • communication interface 63 is also operative to receive user requests.
  • the processor 62 is further configured to correct the current cache state and the start time and duration of the current cache state according to the user request.
  • the user request includes: a play request, a replay request, a search request, a stop play request, or an end play request.
  • the processor 62 is configured to: according to the user request, the current cache status and the current cache status Correcting the start time and duration of the state, including: the processor 62 is specifically configured to: if the user requests a play request or a search request, correct the current cache state to an initial buffer state and record the corrected cache state.
  • Start time and duration if the user requests a replay request, the current cache state is corrected to a normal play state and the start time and duration of the current cache state after the correction are recorded; if the user requests to end playback The request, the current cache state is corrected to the end play state and the start time and duration of the current cache state after the correction are recorded; if the user requests to stop the play request, the current cache state is corrected to the stop play state and Record the start time and duration of this cache state after the correction.
  • the cache state estimating device of the present embodiment includes a power supply module, a display, an input/output device, and the like in addition to the memory 61, the processor 62, and the communication interface 63.
  • the memory 61, the processor 62, the communication interface 63, and the like can be connected to each other through a bus and complete communication with each other.
  • the bus may be an Industry Standard Architecture (ISA) bus, a Peripheral Component (PCI) bus or an extended industry standard architecture (Extended
  • EISA Industry Standard Architecture
  • 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 6, but it does not mean that there is only one bus or one type of bus.
  • the memory 61, the processor 62, the communication interface 63, and the like are integrated on one chip, the memory 61, the processor 62, the communication interface 63, and the like can complete the same communication through the internal interface.
  • the cache state estimation device may be the terminal, or may be a media server or a network node, but is not limited thereto.
  • the cache state estimation device provided in this embodiment may be used to perform the process of the method for estimating the state of the cache state shown in FIG. 1.
  • the specific working principle is not described here. For details, refer to the description of the method embodiment.
  • the buffer state estimation device may obtain the continuous play duration corresponding to the media data in the current cache according to the continuous play duration corresponding to the media data received by the terminal between the two state estimations and the cache state before the current state estimation. Then, according to the state of the cache before the state estimation, the preset cache configuration parameter and the duration of the continuous play corresponding to the media data in the current cache, the state of the cache is estimated to obtain the current cache state and the start of the current cache state. Inter- and duration, the process of estimating the buffer state is not limited by the transmission protocol, and can be used to estimate the buffer status in the TCP application scenario, and provide conditions for evaluating the playback quality of audio and video in the TCP application scenario. .
  • the aforementioned program can be stored in a computer readable storage medium.
  • the program when executed, performs the steps including the above-described method embodiments; and the foregoing storage medium includes: various media that can store program codes, such as ROM, RAM, disk or optical disk.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明实施例提供一种缓存状态估计方法及设备。方法包括:获取终端在本次状态估计周期内接收的媒体数据对应的第一持续播放时长;根据本次状态估计前的缓存状态以及第一持续播放时长,计算当前缓存中的媒体数据对应的第二持续播放时长;根据本次状态估计前的缓存状态、预设的缓存配置参数和第二持续播放时长,对所述缓存进行状态估计,获取本次缓存状态以及本次缓存状态的开始时间和持续时间,所述缓存状态包括初始缓冲状态、正常播放状态、再缓冲状态、结束播放状态和停止播放状态中的至少一个。本发明技术方案解决了基于TCP实现的音视频应用中缓存状态的估计问题。

Description

缓存状态估计方法及设备 本申请要求于 2013 年 03 月 05 日提交中国专利局、 申请号为 201310069638. 6、 发明名称为"缓存状态估计方法及设备"的中国专利申请 的优先权, 其全部内容通过引用结合在本申请中
技术领域
本发明涉及通信技术, 尤其涉及一种缓存状态估计方法及设备。 背景技术
在互联网协议 (Internet Protocol , 简称为 IP ) 网络的音视频应用中, 为了平滑网络传输带来的影响及实现收发端的同歩播放, 收端需要把接收到 的音视频数据暂存于缓存中,以保证音视频数据在通过 IP网络传输后仍能连 续播放。 缓存的设计需要综合考虑缓存带来的延迟和丢包, 缓存过小可能引 起过多的丢包, 缓存过大可能造成播放的延迟过大, 由此可见, 收端的缓存 状态会直接影响音视频的播放质量, 因此, 通过估计缓存的状态对音视频的 播放质量进行评估等变得尤为重要。
现有技术主要是针对实时传输协议 (Real-time Transport Protocol , 简称为 RTP) /用户数据包协议 (User Datagram Protocol , 简称为 UDP) 场 景下的缓存进行建模, 以便于通过估计缓存的状态对音视频的播放质量进行 评估等操作。 目前, 基于传输控制协议 (Transmi ssion Control Protocol , 简称为 TCP) 的音视频应用越来越多, 因此, 需要一种针对 TCP应用场景的 缓存状态估计方案, 为在 TCP应用场景下对音视频的播放质量进行评估提供 条件。 发明内容
本发明实施例提供一种缓存状态估计方法及设备, 用以解决基于 TCP 实现的音视频应用中缓存状态的估计问题。
第一方面提供一种缓存状态估计方法, 包括: 获取终端在本次状态估计周期内接收的媒体数据对应的第一持续播 放时长;
根据本次状态估计前的缓存状态以及所述第一持续播放时长, 计算当 前缓存中的媒体数据对应的第二持续播放时长;
根据所述本次状态估计前的缓存状态、 预设的缓存配置参数和所述第 二持续播放时长, 对所述缓存进行状态估计, 获取本次缓存状态以及本次 缓存状态的开始时间和持续时间, 其中所述缓存的状态包括初始缓冲状 态、 正常播放状态、 再缓冲状态、 结束播放状态和停止播放状态中的至少 一个。
结合第一方面, 在第一方面的第一种可能的实现方式中, 所述获取终 端在本次状态估计周期内接收的媒体数据对应的第一持续播放时长, 包 括:
根据所述终端在本次状态估计周期内接收的媒体数据的字节数和当 前媒体码率, 计算所述第一持续播放时长; 或者
解析所述终端在本次状态估计周期内接收的媒体数据, 获得所述终端 在本次状态估计周期内接收的媒体数据的帧数;
根据所述终端在本次状态估计周期内接收的媒体数据的帧数和当前 媒体帧率, 计算所述第一持续播放时长。
结合第一方面的第一种可能的实现方式, 在第一方面的第二种可能的 实现方式中, 所述根据所述终端在本次状态估计周期内接收的媒体数据的 字节数和当前媒体码率, 计算所述第一持续播放时长之前, 包括:
接收所述终端发送的反馈报文, 所述反馈报文是所述终端针对在本次 状态估计周期内接收的媒体数据所发送的, 根据所述反馈报文, 获取所述 终端在本次状态估计周期内接收的媒体数据的字节数; 或者,
解析所述终端在本次状态估计周期内接收的媒体数据, 获取所述终端 在本次状态估计周期内接收的媒体数据的字节数。
结合第一方面, 在第一方面的第三种可能的实现方式中, 所述获取终 端在本次状态估计周期内接收的媒体数据对应的第一持续播放时长, 包 括:
解析所述终端在本次状态估计周期内接收的媒体数据, 获取所述媒体 数据包括的完整帧的最大解码时间戳 DTS和最小解码时间戳 DTS , 或获取 所述媒体数据包括的完整帧的最大显示时间戳 PTS和最小显示时间戳 PTS ;
以所述最大 DTS与所述最小 DTS之差作为所述第一持续播放时长, 或 者以所述最大 PTS与所述最小 PTS之差作为所述第一持续播放时长。
结合第一方面或第一方面的第一种可能的实现方式或第一方面的第 二种可能的实现方式或第一方面的第三种可能的实现方式, 在第一方面的 第四种可能的实现方式中, 所述根据本次状态估计前的缓存状态以及所述 第一持续播放时长, 计算当前缓存中的媒体数据对应的第二持续播放时 长, 包括:
如果所述本次状态估计前的缓存状态是除所述正常播放状态之外的 其他的缓存状态, 则将到上一次状态估计结束时所述缓存中媒体数据对应 的持续播放时长与所述第一持续播放时长之和作为所述第二持续播放时 长;
如果所述本次状态估计前的缓存状态是所述正常播放状态, 则以到上一次 状态估计结束时所述缓存中媒体数据对应的持续播放时长与所述第一持续播 放时长之和, 减去所述本次状态估计周期内正常播放所需的媒体数据对应的 持续播放时长, 得到所述第二持续播放时长。
结合第一方面或第一方面的第一种可能的实现方式或第一方面的第 二种可能的实现方式或第一方面的第三种可能的实现方式或第一方面的 第四种可能的实现方式, 在第一方面的第五种可能的实现方式中, 所述缓 存配置参数包括: 初始缓冲时间和再缓冲时间;
所述初始缓冲时间是指在所述终端第一次播放媒体数据前, 为实现正 常播放所述缓存中最少应该存储的媒体数据对应的持续播放时长;
所述再缓冲时间是指从所述终端在播放媒体数据过程中再缓冲开始, 到所述终端重新播放媒体数据前, 所述缓存中最少应该存储的媒体数据对 应的持续播放时长;
所述根据所述本次状态估计前的缓存状态、 预设的缓存配置参数和所 述第二持续播放时长, 对所述缓存进行状态估计, 获取本次缓存状态以及 本次缓存状态的开始时间和持续时间, 包括: 如果所述本次状态估计前的缓存状态为所述初始缓冲状态, 在所述第 二持续播放时长大于或等于所述初始缓冲时间时, 确定本次缓存状态为正 常播放状态并记录本次缓存状态的开始时间和持续时间, 或者, 在所述第 二持续播放时长小于所述初始缓冲时间时, 确定本次缓存状态为所述初始 缓冲状态并更新本次缓存状态的持续时间;
如果所述本次状态估计前的缓存状态为所述再缓冲状态, 在所述第二 持续播放时长大于或等于所述再缓冲时间时, 确定本次缓存状态为正常播 放状态并记录本次缓存状态的开始时间和持续时间, 或者, 在所述第二持 续播放时长小于所述再缓冲时间时, 确定本次缓存状态为再缓冲状态并更 新本次缓存状态的持续时间。
结合第一方面或第一方面的第一种可能的实现方式或第一方面的第 二种可能的实现方式或第一方面的第三种可能的实现方式或第一方面的 第四种可能的实现方式, 在第一方面的第六种可能的实现方式中, 所述方 法还包括:
如果所述本次状态估计前的缓存状态为所述正常播放状态, 在所述第 二持续播放时长小于或等于预设门限, 确定本次缓冲状态为再缓冲状态并 记录本次缓冲状态的开始时间和持续时间, 在所述第二持续播放时长大于 所述预设门限时, 确定本次缓存状态为正常播放状态并更新本次缓存状态 的持续时间。
结合第一方面或第一方面的第一种可能的实现方式或第一方面的第 二种可能的实现方式或第一方面的第三种可能的实现方式或第一方面的 第四种可能的实现方式, 在第一方面的第七种可能的实现方式中, 所述方 法还包括:
如果所述本次状态估计前的缓存状态为所述正常播放状态, 在所述最 大 DTS或最大 PTS小于本次状态估计周期内正常播放所需的 DTS或 PTS时, 确定本次缓冲状态为再缓冲状态并记录本次缓冲状态的开始时间和持续 时间, 在所述最大 DTS或最大 PTS大于或等于本次状态估计周期内正常播 放所需的 DTS或 PTS时, 确定本次缓存状态为正常播放状态并更新本次缓 存状态的持续时间。
结合第一方面或第一方面的第一种可能的实现方式或第一方面的第 二种可能的实现方式或第一方面的第三种可能的实现方式或第一方面的 第四种可能的实现方式, 在第一方面的第八种可能的实现方式中, 所述方 法还包括:
如果所述本次状态估计前的缓存状态为所述结束播放状态, 确定本次 缓存状态为结束播放状态。
结合第一方面或第一方面的第一种可能的实现方式或第一方面的第 二种可能的实现方式或第一方面的第三种可能的实现方式或第一方面的 第四种可能的实现方式, 在第一方面的第九种可能的实现方式中, 所述方 法还包括:
如果所述本次状态估计前的缓存状态为所述停止播放状态, 确定本次 缓存状态为停止播放状态。
结合第一方面的第五种可能的实现方式或第一方面的第六种可能的 实现方式或第一方面的第七种可能的实现方式或第一方面的第八种可能 的实现方式或第一方面的第九种可能的实现方式, 在第一方面的第十种可 能的实现方式中, 在本次缓存状态与所述本次状态估计前的缓存状态不一 致时, 所述记录本次缓存状态的开始时间和持续时间, 包括:
根据所述第一持续播放时长和所述本次状态估计前的缓存状态, 更新 当前媒体数据自身播放进度对应的时间点, 根据更新后的媒体数据自身播 放进度对应的时间点获取本次缓存状态的开始时间和持续时间。
结合第一方面或第一方面的第一种可能的实现方式或第一方面的第 二种可能的实现方式或第一方面的第三种可能的实现方式或第一方面的 第四种可能的实现方式或第一方面的第五种可能的实现方式或第一方面 的第六种可能的实现方式或第一方面的第七种可能的实现方式或第一方 面的第八种可能的实现方式或第一方面的第九种可能的实现方式或第一 方面的第十种可能的实现方式, 在第一方面的第十一种可能的实现方式 中, 所述获取本次缓存状态以及本次缓存状态的开始时间和持续时间之 后, 还包括:
根据用户请求, 对本次缓存状态以及本次缓存状态的开始时间和持续 时间进行修正。
结合第一方面的第十一种可能的实现方式, 在第一方面的第十二种可 能的实现方式中, 所述用户请求包括: 播放请求、 重新播放请求、 搜索请 求、 停止播放请求或结束播放请求;
所述根据用户请求, 对本次缓存状态以及本次缓存状态的开始时间和 持续时间进行修正, 包括:
如果所述用户请求为所述播放请求或所述搜索请求, 则将本次缓存状 态修正为初始缓冲状态并记录修正后本次缓存状态的开始时间和持续时 间;
如果所述用户请求为所述重新播放请求, 则将本次缓存状态修正为正 常播放状态并记录修正后本次缓存状态的开始时间和持续时间;
如果所述用户请求为所述结束播放请求, 则将本次缓存状态修正为结 束播放状态并记录修正后本次缓存状态的开始时间和持续时间;
如果所述用户请求为所述停止播放请求, 则将本次缓存状态修正为停 止播放状态并记录修正后本次缓存状态的开始时间和持续时间。
第二方面提供一种缓存状态估计设备, 包括:
第一获取模块, 用于获取终端在本次状态估计周期内接收的媒体数据 对应的第一持续播放时长;
计算模块, 用于根据本次状态估计前的缓存状态以及所述第一持续播 放时长, 计算当前缓存中的媒体数据对应的第二持续播放时长;
状态估计模块, 用于根据所述本地状态估计前的缓存状态、 预设的缓 存配置参数和所述第二持续播放时长, 对所述缓存进行状态估计, 获取本 次缓存状态以及本次缓存状态的开始时间和持续时间, 其中所述缓存的状 态包括初始缓冲状态、 正常播放状态、 再缓冲状态、 结束播放状态和停止 播放状态中的至少一个。
结合第二方面, 在第二方面的第一种可能的实现方式中, 所述第一获 取模块具体用于根据所述终端在本次状态估计周期内接收的媒体数据的 字节数和当前媒体码率, 计算所述第一持续播放时长; 或者
所述第一获取模块具体用于解析所述终端在本次状态估计周期内接 收的媒体数据, 获得所述终端在本次状态估计周期内接收的媒体数据的帧 数, 根据所述终端在本次状态估计周期内接收的媒体数据的帧数和当前媒 体帧率, 计算所述第一持续播放时长。 结合第二方面的第一种可能的实现方式, 在第二方面的第二种可能的 实现方式中, 所述缓存状态估计设备还包括: 第二获取模块, 用于在所述 第一获取模块计算所述第一持续播放时长之前, 接收所述终端发送的反馈 报文, 所述反馈报文是所述终端针对在本次状态估计周期内接收的媒体数 据所发送的, 根据所述反馈报文, 获取所述终端在本次状态估计周期内接 收的媒体数据的字节数; 或者,
第三获取模块, 用于在所述第一获取模块计算所述第一持续播放时长 之前, 解析所述终端在本次状态估计周期内接收的媒体数据, 获取所述终 端在本次状态估计周期内接收的媒体数据的字节数。
结合第二方面, 在第二方面的第三种可能的实现方式中, 所述第一获 取模块具体用于解析所述终端在本次状态估计周期内接收的媒体数据, 获 取所述媒体数据包括的完整帧的最大解码时间戳 DTS和最小解码时间戳 DTS , 或者获取所述媒体数据包括的完整帧的最大显示时间戳 PTS和最小 显示时间戳 PTS , 以所述最大 DTS与所述最小 DTS之差作为所述第一持续 播放时长, 或者以所述最大 PTS与所述最小 PTS之差作为所述第一持续播 放时长。
结合第二方面或第二方面的第一种可能的实现方式或第二方面的第 二种可能的实现方式或第二方面的第三种可能的实现方式, 在第二方面的 第四种可能的实现方式中, 所述计算模块具体用于在所述本次状态估计前 的缓存状态是除所述正常播放状态之外的其他缓存状态时, 将到上一次状 态估计结束时所述缓存中媒体数据对应的持续播放时长与所述第一持续 播放时长之和作为所述第二持续播放时长, 或者在所述本次状态估计前的 缓存状态是所述正常播放状态时, 以到上一次状态估计结束时所述缓存中 媒体数据对应的持续播放时长与所述第一持续播放时长之和, 减去所述本 次状态估计周期内正常播放所需的媒体数据对应的持续播放时长, 得到所 述第二持续播放时长。
结合第二方面或第二方面的第一种可能的实现方式或第二方面的第 二种可能的实现方式或第二方面的第三种可能的实现方式或第二方面的 第四种可能的实现方式, 在第二方面的第五种可能的实现方式中, 所述缓 存配置参数包括: 初始缓冲时间和再缓冲时间; 所述初始缓冲时间是指在所述终端第一次播放媒体数据前, 为实现正 常播放所述缓存中最少应该存储的媒体数据对应的持续播放时长;
所述再缓冲时间是指从所述终端播放媒体数据过程中再缓冲开始, 到 所述终端重新播放媒体数据前, 所述缓存中最少应该存储的媒体数据对应 的持续播放时长;
所述状态估计模块具体用于如果所述本次状态估计前的缓存状态为 所述初始缓冲状态, 在所述第二持续播放时长大于或等于所述初始缓冲时 间时, 确定本次缓存状态为正常播放状态并记录本次缓存状态的开始时间 和持续时间, 在所述第二持续播放时长小于所述初始缓冲时间时, 确定本 次缓存状态为所述初始缓冲状态并更新本次缓存状态的持续时间, 以及如 果所述本次状态估计前的缓存状态为所述再缓冲状态, 在所述第二持续播 放时长大于或等于所述再缓冲时间时, 确定本次缓存状态为正常播放状态 并记录本次缓存状态的开始时间和持续时间, 在所述第二持续播放时长小 于所述再缓冲时间时, 确定本次缓存状态为再缓冲状态并更新本次缓存状 态的持续时间。
结合第二方面或第二方面的第一种可能的实现方式或第二方面的第 二种可能的实现方式或第二方面的第三种可能的实现方式或第二方面的 第四种可能的实现方式, 在第二方面的第六种可能的实现方式中, 所述状 态估计模块还用于如果所述本次状态估计前的缓存状态为所述正常播放 状态, 在所述第二持续播放时长小于或等于预设门限, 确定本次缓冲状态 为再缓冲状态并记录本次缓冲状态的开始时间和持续时间, 在所述第二持 续播放时长大于所述预设门限时, 确定本次缓存状态为正常播放状态并更 新本次缓存状态的持续时间。
结合第二方面或第二方面的第一种可能的实现方式或第二方面的第 二种可能的实现方式或第二方面的第三种可能的实现方式或第二方面的 第四种可能的实现方式, 在第二方面的第七种可能的实现方式中, 所述状 态估计模块还用于如果所述本次状态估计前的缓存状态为所述正常播放 状态, 在所述最大 DTS或最大 PTS小于本次状态估计周期内正常播放所需 的 DTS或 PTS时, 确定本次缓冲状态为再缓冲状态并记录本次缓冲状态的 开始时间和持续时间, 在所述最大 DTS或最大 PTS大于或等于本次状态估 计周期内正常播放所需的 DTS或 PTS时, 确定本次缓存状态为正常播放状 态并更新本次缓存状态的持续时间。
结合第二方面或第二方面的第一种可能的实现方式或第二方面的第 二种可能的实现方式或第二方面的第三种可能的实现方式或第二方面的 第四种可能的实现方式, 在第二方面的第八种可能的实现方式中, 所述状 态估计模块还用于如果所述本次状态估计前的缓存状态为所述结束播放 状态, 确定本次缓存状态为结束播放状态。
结合第二方面或第二方面的第一种可能的实现方式或第二方面的第 二种可能的实现方式或第二方面的第三种可能的实现方式或第二方面的 第四种可能的实现方式, 在第二方面的第九种可能的实现方式中, 所述状 态估计模块还用于如果所述本次状态估计前的缓存状态为所述停止播放 状态, 确定本次缓存状态为停止播放状态。
结合第二方面的第五种可能的实现方式或第二方面的第六种可能的 实现方式或第二方面的第七种可能的实现方式或第二方面的第八种可能 的实现方式或第二方面的第九种可能的实现方式, 在第二方面的第十种可 能的实现方式中, 所述状态估计模块用于记录本次缓存状态的开始时间和 持续时间, 包括:
所述状态估计模块具体用于在本次缓存状态与所述本次状态估计前 的缓存状态不一致时, 根据所述第一持续播放时长和所述本次状态估计前 的缓存状态, 更新当前媒体数据自身播放进度对应的时间点, 根据更新后 的媒体数据自身播放进度对应的时间点获取本次缓存状态的开始时间和 持续时间。
结合第二方面或第二方面的第一种可能的实现方式或第二方面的第 二种可能的实现方式或第二方面的第三种可能的实现方式或第二方面的 第四种可能的实现方式或结合第二方面的第五种可能的实现方式或第二 方面的第六种可能的实现方式或第二方面的第七种可能的实现方式或第 二方面的第八种可能的实现方式或第二方面的第九种可能的实现方式或 第二方面的第十种可能的实现方式, 在第二方面的第十一种可能的实现方 式中,所述缓存状态估计设备还包括: 状态修正模块,用于根据用户请求, 对本次缓存状态以及本次缓存状态的开始时间和持续时间进行修正。 结合第二方面的第十一种可能的实现方式, 在第二方面的第十二种可 能的实现方式中, 所述用户请求包括: 播放请求、 重新播放请求、 搜索请 求、 停止播放请求或结束播放请求;
所述状态修正模块具体用于如果所述用户请求为所述播放请求或所 述搜索请求, 则将本次缓存状态修正为初始缓冲状态并记录修正后本次缓 存状态的开始时间和持续时间; 如果所述用户请求为所述重新播放请求, 则将本次缓存状态修正为正常播放状态并记录修正后本次缓存状态的开 始时间和持续时间; 如果所述用户请求为所述结束播放请求, 则将本次缓 存状态修正为结束播放状态并记录修正后本次缓存状态的开始时间和持 续时间; 如果所述用户请求为所述停止播放请求, 则将本次缓存状态修正 为停止播放状态并记录修正后本次缓存状态的开始时间和持续时间。
本发明实施例提供的缓存状态估计方法及设备, 根据终端在两次状态 估计之间接收的媒体数据对应的持续播放时长以及本次状态估计前的缓 存状态, 获得当前缓存中媒体数据对应的持续播放时长, 然后根据本次状 态估计前的缓存状态、 预设的缓存配置参数与当前缓存中媒体数据对应的 持续播放时长, 对缓存进行状态估计获取本次缓存状态以及本次缓存状态 的开始时间和持续时间, 该缓存状态估计过程不受传输协议的限制, 可以 用于对 TCP应用场景下的缓存状态进行估计, 为在 TCP应用场景下对音视 频的播放质量进行评估提供条件。 附图说明 为了更清楚地说明本发明实施例或现有技术中的技术方案, 下面将对实 施例或现有技术描述中所需要使用的附图作一简单地介绍, 显而易见地, 下 面描述中的附图是本发明的一些实施例, 对于本领域普通技术人员来讲, 在 不付出创造性劳动性的前提下, 还可以根据这些附图获得其他的附图。
图 1为本发明实施例提供的一种缓存状态估计方法的流程图; 图 2为本发明实施例提供的一种缓存状态估计模型的示意图; 图 3为本发明实施例提供的各缓存状态之间的跳转关系示意图; 图 4为本发明实施例提供的一种缓存状态估计设备的结构示意图; 图 5为本发明实施例提供的另一种缓存状态估计设备的结构示意图; 图 6为本发明实施例提供的又一种缓存状态估计设备的结构示意图。
具体实施方式 为使本发明实施例的目的、 技术方案和优点更加清楚, 下面将结合本 发明实施例中的附图, 对本发明实施例中的技术方案进行清楚、 完整地描 述, 显然,所描述的实施例是本发明一部分实施例, 而不是全部的实施例。 基于本发明中的实施例, 本领域普通技术人员在没有作出创造性劳动前提 下所获得的所有其他实施例, 都属于本发明保护的范围。
图 1为本发明实施例提供的一种缓存状态估计方法的流程图。 如图 1 所示, 本实施例的方法包括:
歩骤 101、 获取终端在本次状态估计周期内接收的媒体数据对应的第 一持续播放时长。
在一可选实施方式中, 获取第一持续播放时长包括: 根据所述终端在 本次状态估计周期内接收的媒体数据的大小和当前媒体信息, 计算所述第 一持续播放时长。所述状态估计周期是指自上一次状态估计的结束时刻到 本次状态估计的结束时刻之间的时间间隔, 或者是指子上一状态估计的开 始时刻到本次状态估计的开始时刻之间的时间间隔。
一种情况, 上述终端在本次状态估计周期内接收的媒体数据的大小可 以用终端在本次状态估计周期内接收的媒体数据的字节数表示, 相应的, 当前媒体信息为当前媒体码率。 基于此, 歩骤 101的一种可选实施方式包 括: 根据终端在本次状态估计周期内接收的媒体数据的字节数和当前媒体 码率, 计算所述第一持续播放时长。 例如, 可以根据公式 ^7^ : ^^^ 获得第一持续播放时长, 公式中的 表示终端在本次状态估计周期内接 收的媒体数据的字节数, 公式中的 Μ^(ζ')表示当前媒体码率, 公式中的 表示第一持续播放时长。 其中, 当前媒体码率可以是媒体平均码率或者是 媒体实时码率。
可选的, 本发明实施例提供的缓存状态估计方法可由终端来完成, 则 所述终端在执行上述歩骤 101的可选实施方式之前, 即在根据所述终端在 本次状态估计周期内接收的媒体数据的字节数和当前媒体码率, 计算所述 第一持续播放时长之前, 可以解析终端在本次状态估计周期内接收的媒体 数据, 获取终端在本次状态估计周期内接收的媒体数据的字节数。
可选的, 本发明实施例提供的缓存状态估计方法可由媒体服务器或网 络节点来完成, 则媒体服务器或网络节点在执行上述歩骤 101的可选实施 方式之前, 即在根据所述终端在本次状态估计周期内接收的媒体数据的字 节数和当前媒体码率, 计算所述第一持续播放时长之前, 可以接收所述终 端发送的反馈报文, 所述反馈报文是终端针对所述终端在本次状态估计周 期内接收的媒体数据所发送的, 然后根据所述反馈报文, 获取所述终端在 本次状态估计周期内接收的媒体数据的字节数。 其中, 根据应用场景的不 同, 上述反馈报文或者是基于 TCP的确认 (ACK ) 报文或者是 RTCP报文, 这些报文中携带有终端接收到媒体数据的字节数等信息。
另一种情况, 上述终端在本次状态估计周期内接收的媒体数据的大小 可以用所述终端在本次状态估计周期内接收的媒体数据的帧数来表示; 相 应的, 当前媒体信息为当前媒体帧率。 基于此, 歩骤 101的另一种可选实 施方式包括: 解析所述终端在本次状态估计周期内接收的媒体数据, 获得 所述终端在本次状态估计周期内接收的媒体数据的帧数; 根据所述终端在 本次状态估计周期内接收的媒体数据的帧数和当前媒体帧率, 计算所述第 一持续播放时长。 例如, 可以根据公式^7^ :^^ ^, 计算第一持续播放 时长, 公式中的^ 表示终端在本次状态估计周期内接收的媒体数据的帧 数, 公式中的 表示当前媒体帧率, 公式中的 表示所述第一持续播 放时长。 在此说明, 在该情况下, 本实施例的缓存状态估计方法的执行主 体为终端。
在另一可选实施方式中, 获取第一持续播放时长包括: 解析所述终端 在本次状态估计周期内接收的媒体数据, 获取所述媒体数据包括的完整帧 的最大解码时间戳 (Decodi ng T ime Stamp , 简称为 DTS ) 和最小 DTS, 或 者获取所述媒体数据包括的完整帧的最大显示时间戳(Pres entat i on T ime Stamp , 简称为 PTS ) 和最小 PTS ; 以最大 DTS与最小 DTS之差作为所述第 一持续播放时长, 或者以最大 PTS与最小 PTS之差作为所述第一持续播放 时长。 例如, 可以根据公式
RT(i) = max(DTSm, ... … ,Z)rS„) - ηώ ( )7¾, … ... ,Ζ)7¾)或公式
RT(i) = max(PTSm, ,PTSn) -mm(PTSm, ,PTSn) ^ 计算第一持续播放 时长, 公式中的 max ( ) 是一个取最大值的函数, min ( ) 是一个取最小值 的函数, 公式中的 ^ 5;表示终端接收到的第 m个数据帧携带的 DTS, DTSn 表示终端接收到的第 n个数据帧携带的 DTS , 公式中的 ^6表示终端接收 到的第 m个数据帧携带的 PTS, 表示终端接收到的第 n个数据帧携带 的 PTS。 在此说明, 该实施方式的执行主体为终端。
歩骤 102、 根据本次状态估计前的缓存状态以及所述第一持续播放时 长, 计算当前缓存中的媒体数据对应的第二持续播放时长。
基于歩骤 101的各种可选实施方式或情况, 在获取第一持续播放时长 之后, 可以根据本次状态估计前的缓存状态和第一持续播放时长, 计算当 前缓存中的媒体数据对应的持续播放时长, 即第二持续播放时长。
本实施例提供一种缓存状态估计模型, 该模型以第一持续播放时长、 第二持续播放时长、 本次状态估计前的缓存状态以及缓存配置参数等作为 其输入参数, 并以估计出的缓存状态、 该缓存状态的开始时间和持续时间 等信息作为其输出结果, 该模型的一种直观示意图如图 2所示。
在本发明各实施例中,所述缓存的缓存状态可以包括:初始缓冲状态、 正常播放状态、再缓冲状态、结束播放状态和停止播放状态中的至少一个。 其中, 缓存状态估计模型的初始状态设置为初始缓冲状态, 也就是说, 如 果本次状态估计是第一次状态估计, 则本次状态估计前的缓存状态为初始 缓冲状态。 对于本次状态估计为非第一次状态估计时, 本次状态估计前的 缓存状态即为上一次状态估计获取的缓存状态, 则本次状态估计前的缓存 状态可能是初始缓冲状态、 正常播放状态、 再缓冲状态、 结束播放状态和 停止播放状态中的任意一个状态。 相应的, 无论本次状态估计是否是第一 次状态估计, 则估计出的本次缓存状态也可能是初始缓冲状态、 正常播放 状态、 再缓冲状态、 结束播放状态和停止播放状态中的任意一个状态。 各 缓存状态之间的跳转是按照媒体播放的时间顺序发生的。各缓存状态之间 的跳转关系如图 3所示。
基于上述缓存状态, 计算第二持续播放时长的过程可以包括: 如果本次状态估计前的缓存状态是除上述正常播放状态之外的其他 缓存状态, 则将到上一次状态估计结束时所述缓存中媒体数据对应的持续 播放时长与所述第一持续播放时长之和作为所述第二持续播放时长, 例如 可以根据公式 S"Z') = ^(Z'— 1) + ??,获得第二持续播放时长,公式中的 ^ 表示到上一次状态估计结束时缓存中媒体数据对应的持续播放时长, 亦可 以表示到上一次状态估计结束时所述缓存中媒体数据的大小, 公式中的 表示第二持续播放时长; 由于在两次状态估计之间的时间内终端未处 于上述正常播放状态, 故缓存中的媒体数据自上一次缓存状态估计结束到 本次缓存状态估计开始未发生变化, 故将到上一次缓存状态估计结束时缓 存中的媒体数据对应的持续播放时长以及终端在两次状态估计之间接收 到的媒体数据对应的持续播放时长相加, 即可获得当前缓存中媒体数据对 应的持续播放时长;
如果所述本次状态估计前的缓存状态是上述正常播放状态, 则将到上 一次状态估计结束时所述缓存中媒体数据对应的持续播放时长与第一持 续播放时长之和, 减去本次状态估计周期内正常播放所需的媒体数据对应 的持续播放时长, 得到所述第二持续播放时长, 例如可以根据公式
BL(i) = BL(i -l) +RTl -Tl j 获得第二持续播放时长, 公式中的^^ -1〕表示到上 一次状态估计结束时缓存中媒体数据对应的持续播放时长, 亦可以表示到 上一次状态估计结束时所述缓存中媒体数据的大小, 公式中的'7 ^表示本次 状态估计周期内正常播放所需的媒体数据对应的持续播放时长, 亦可以表 示本次状态估计周期内正常播放所需的媒体数据的大小, 公式中的 表 示第二持续播放时长; 由于在两次状态估计之间的时间内终端处于正常播 放状态, 故缓存中的媒体数据自上一次缓存状态估计结束到本次缓存状态 估计开始发生了变化, 故将到上一次缓存状态估计结束时缓存中的媒体数 据对应的持续播放时长与终端在两次状态估计之间接收到的媒体数据对 应的持续播放时长相加, 并减去本次状态估计周期内正常播放所需的媒体 数据对应的持续播放时长, 即可获得当前缓存中媒体数据对应的持续播放 时长。这里的本次状态估计前的缓存状态是指上一次状态估计获取的缓存 状态。
歩骤 103、 根据本次状态估计前的缓存状态、 预设的缓存配置参数和 所述第二持续播放时长, 对所述缓存进行状态估计, 获取本次缓存状态以 及本次缓存状态的开始时间和持续时间, 其中所述缓存的状态包括初始缓 冲状态、 正常播放状态、 再缓冲状态、 结束播放状态和停止播放状态中的 至少一个。
基于上述, 在获取第二持续播放时长之后, 可以根据本次状态估计前 的缓存状态、 预设的缓存配置参数和第二持续播放时长, 对缓存进行状态 估计, 获取本次缓存状态以及本次缓存状态的开始时间和持续时间。
可选的, 缓存配置参数可以包括: 初始缓冲时间和再缓冲时间。 所述 初始缓冲时间是指在终端第一次播放媒体数据前, 为实现正常播放缓存中 最少应该存储的媒体数据对应的持续播放时长。所述再缓冲时间是指从终 端播放媒体数据过程中再缓冲开始, 到所述终端重新播放媒体数据前, 所 述缓存中最少应该存储的媒体数据对应的持续播放时长。 在此说明, 上述 各种持续播放时长的单位可以是毫秒, 但不限于此。
基于上述缓存配置参数, 歩骤 103, 即根据本次状态估计前的缓存状 态、 预设的缓存配置参数和所述第二持续播放时长, 对所述缓存进行状态 估计,获取本次缓存状态以及本次缓存状态的开始时间和持续时间,包括: 如果所述本次状态估计前的缓存状态为初始缓冲状态, 在所述第二持 续播放时长大于或等于所述初始缓冲时间时, 确定本次缓存状态为正常播 放状态并记录本次缓存状态的开始时间和持续时间, 在所述第二持续播放 时长小于所述初始缓冲时间时, 确定本次缓存状态为所述初始缓冲状态并 更新本次缓存状态的持续时间;
如果所述本次状态估计前的缓存状态为再缓冲状态, 在所述第二持续 播放时长大于或等于所述再缓冲时间时, 确定本次缓存状态为正常播放状 态并记录本次缓存状态的开始时间和持续时间, 在所述第二持续播放时长 小于所述再缓冲时间时, 确定本次缓存状态为再缓冲状态并更新本次缓存 状态的持续时间。
进一歩可选的, 除了可以根据本次状态估计前的缓存状态、 预设的缓 存配置参数和所述第二持续播放时长, 对所述缓存进行状态估计, 获取本 次缓存状态以及本次缓存状态的开始时间和持续时间之外, 所述缓存状态 估计方法还可以包括:
如果所述本次状态估计前的缓存状态为正常播放状态, 在所述第二持 续播放时长小于或等于预设的第二门限, 确定本次缓冲状态为再缓冲状态 并记录本次缓冲状态的开始时间和持续时间, 在所述第二持续播放时长大 于所述预设的第二门限时, 确定本次缓存状态为正常播放状态并更新本次 缓存状态的持续时间。
进一歩可选的, 除了上述对缓存进行状态估计的过程之外, 所述缓存 状态估计方法还可以包括:
如果所述本次状态估计前的缓存状态为正常播放状态, 在所述最大
DTS或最大 PTS小于本次状态估计周期内正常播放所需的 DTS或 PTS时, 确定本次缓冲状态为再缓冲状态并记录本次缓冲状态的开始时间和持续 时间, 在所述最大 DTS或最大 PTS大于或等于本次状态估计周期内正常播 放所需的 DTS或 PTS时, 确定本次缓存状态为正常播放状态并更新本次缓 存状态的持续时间。这里的本次状态估计前的缓存状态是指上一次状态估 计获取的缓存状态。
进一歩可选的, 除了上述对缓存进行状态估计的过程之外, 所述缓存 状态估计方法还可以包括:
如果所述本次状态估计前的缓存状态为结束播放状态, 确定本次缓存 状态为结束播放状态。
进一歩可选的, 除了上述对缓存进行状态估计的过程之外, 所述缓存 状态估计方法还可以包括:
如果所述本次状态估计前的缓存状态为停止播放状态, 确定本次缓存 状态为停止播放状态。
基于上述各种获取本次缓存状态以及本次缓存状态的开始时间和持 续时间的实施方式, 在本次缓存状态与所述本次状态估计前的缓存状态不 一致时, 所述记录本次缓存状态的开始时间和持续时间, 包括:
根据所述第一持续播放时长和所述本次状态估计前的缓存状态, 更新 当前媒体数据自身播放进度对应的时间点, 根据更新后的媒体数据自身播 放进度对应的时间点获取本次缓存状态的开始时间和持续时间。表 1所示 为估计出的缓存状态以及各个缓存状态的开始时间和持续时间。
表 1
Figure imgf000018_0001
正常播放 0 10 再缓冲 10 20 正常播放 10 5
停止播放 15 20
正常播放 15 10
再缓冲 25 20 正常播放 25 15
结束播放 40 在表 1中, 各缓存状态的开始时间是媒体数据自身播放进度对应的各 个时间点。 基于上述各实施方式, 在获取本次缓存状态以及本次缓存状态 的开始时间和持续时间之后, 所述缓存状态估计方法还包括:
根据用户请求, 对本次缓存状态以及本次缓存状态的开始时间和持续 时间进行修正。
所述用户请求包括: 播放请求 (paly ) 、 重新播放请求 (resume ) 、 搜索请求 (seek ) 、 停止播放请求 (pause ) 或结束播放请求 (stop ) 。
其中, 根据所述用户请求的不同, 对本次缓存状态以及本次缓存状态 的开始时间和持续时间进行修正的过程有所不同, 举例说明:
如果所述用户请求为播放请求或搜索请求, 则将本次缓存状态修正为 初始缓冲状态并记录修正后本次缓存状态的开始时间和持续时间;
如果所述用户请求为重新播放请求, 则将本次缓存状态修正为正常播 放状态并记录修正后本次缓存状态的开始时间和持续时间;
如果所述用户请求为结束播放请求, 则将本次缓存状态修正为结束播 放状态并记录修正后本次缓存状态的开始时间和持续时间;
如果所述用户请求为停止播放请求, 则将本次缓存状态修正为停止播 放状态并记录修正后本次缓存状态的开始时间和持续时间。
由上述可见, 本发明实施例可以根据终端在两次状态估计之间接收的 媒体数据对应的持续播放时长以及本次状态估计前的缓存状态, 获得当前 缓存中媒体数据对应的持续播放时长, 然后根据本次状态估计前的缓存状 态、 预设的缓存配置参数与当前缓存中媒体数据对应的持续播放时长, 对 缓存进行状态估计获取本次缓存状态以及本次缓存状态的开始时间和持 续时间, 该缓存状态估计过程不受传输协议的限制, 可以用于对 TCP应用 场景下的缓存状态进行估计, 为在 TCP应用场景下对音视频的播放质量进 行评估提供条件。 另外, 在本发明实施例中, 可以根据用户请求对缓存状 态进行修正, 充分考虑了用户行为对缓存状态的影响, 使得缓存状态估计 结果更接近真实、 更准确。
图 4为本发明实施例提供的一种缓存状态估计设备的结构示意图。 如 图 4所示, 本实施例的设备包括: 第一获取模块 41、 计算模块 42和状态 估计模块 43。
第一获取模块 41,用于获取终端在本次状态估计周期内接收的媒体数 据对应的第一持续播放时长。
计算模块 42, 与第一获取模块 41连接, 用于根据本次状态估计前的 缓存状态以及第一获取模块 41获取的第一持续播放时长, 计算当前缓存 中的媒体数据对应的第二持续播放时长。
状态估计模块 43, 与计算模块 42连接, 用于根据本地状态估计前的 缓存状态、 预设的缓存配置参数和计算模块 42计算的第二持续播放时长, 对所述缓存进行状态估计, 获取本次缓存状态以及本次缓存状态的开始时 间和持续时间。
在本实施例中, 所述缓存的缓存状态可以包括: 初始缓冲状态、 正常 播放状态、 再缓冲状态、 结束播放状态和停止播放状态中的至少一个。 其 中, 缓存状态估计的初始状态设置为初始缓冲状态。 基于此, 如果本次状 态估计为第一次状态估计, 则本次状态估计前的缓存状态为初始缓冲状 态; 如果本次状态估计非第一次状态估计, 则本次状态估计前的缓存状态 可以为: 初始缓冲状态、 正常播放状态、 再缓冲状态、 结束播放状态或停 止播放状态。 相应的, 无论本次状态估计是否是第一次状态估计, 则估计 出的本次缓存状态可以为: 初始缓冲状态、 正常播放状态、 再缓冲状态、 结束播放状态或停止播放状态。
在一可选实施方式中, 第一获取模块 41具体用于根据所述终端在本 次状态估计周期内接收的媒体数据的大小和当前媒体信息, 计算所述第一 持续播放时长。
一种情况, 所述终端在本次状态估计周期内接收的媒体数据的大小为 所述终端在本次状态估计周期内接收的媒体数据的字节数; 所述当前媒体 信息为当前媒体码率。 基于此, 第一获取模块 41具体用于根据所述终端 在本次状态估计周期内接收的媒体数据的字节数和当前媒体码率, 计算所 述第一持续播放时长。
基于上述情况, 如图 5所示, 所述缓存状态估计设备还包括: 第二获 取模块 44或第三获取模块 45。
第二获取模块 44, 与第一获取模块 41连接, 用于在第一获取模块 41 计算所述第一持续播放时长之前, 接收所述终端发送的反馈报文, 所述反 馈报文是终端针对所述终端在本次状态估计周期内接收的媒体数据所发 送的, 根据所述反馈报文, 获取所述终端在本次状态估计周期内接收的媒 体数据的字节数。
第三获取模块 45, 与第一获取模块 41连接, 用于在第一获取模块 41 计算所述第一持续播放时长之前, 解析所述终端在本次状态估计周期内接 收的媒体数据, 获取所述终端在本次状态估计周期内接收的媒体数据的字 节数。
在此说明, 如果所述缓存状态估计设备为所述终端, 则所述缓存状态 估计设备可以包括上述第三获取模块 45 ;如果所述缓存状态估计设备为媒 体服务器, 则所述缓存状态估计设备可以包括上述第二获取模块 44。
另一种情况, 所述终端在本次状态估计周期内接收的媒体数据的大小 为所述终端在本次状态估计周期内接收的媒体数据的帧数; 所述当前媒体 信息为当前媒体帧率。 则第一获取模块 41具体用于解析所述终端在本次 状态估计周期内接收的媒体数据, 获得所述终端在本次状态估计周期内接 收的媒体数据的帧数, 根据所述终端在本次状态估计周期内接收的媒体数 据的帧数和当前媒体帧率, 计算所述第一持续播放时长。
在另一可选实施方式中, 第一获取模块 41具体用于解析所述终端在 本次状态估计周期内接收的媒体数据, 获取所述媒体数据包括的完整帧的 最大 DTS和最小 DTS , 或者获取所述媒体数据包括的完整帧的最大 PTS和 最小 PTS , 以最大 DTS与最小 DTS之差作为所述第一持续播放时长, 或者 以最大 PTS与最小 PTS之差作为所述第一持续播放时长。
基于上述, 计算模块 42具体可用于在所述本次状态估计前的缓存状 态是除正常播放状态之外的其他缓存状态时, 将到上一次状态估计结束时 所述缓存中媒体数据对应的持续播放时长与所述第一持续播放时长之和 作为所述第二持续播放时长, 或者在所述本次状态估计前的缓存状态是正 常播放状态时, 将到上一次状态估计结束时所述缓存中媒体数据对应的持 续播放时长与第一持续播放时长之和, 减去本次状态估计周期内正常播放 所需的媒体数据对应的持续播放时长, 得到所述第二持续播放时长。 这里 的本次状态估计前的缓存状态是指上一次状态估计获取的缓存状态。
可选的, 所述缓存配置参数包括: 初始缓冲时间和再缓冲时间。 所述 初始缓冲时间是指在所述终端第一次播放媒体数据前, 为实现正常播放所 述缓存中最少应该存储的媒体数据对应的持续播放时长; 所述再缓冲时间 是指从所述终端播放媒体数据过程中再缓冲开始, 到所述终端重新播放媒 体数据前, 所述缓存中最少应该存储的媒体数据对应的持续播放时长。
基于此, 状态估计模块 43具体可用于如果所述本次状态估计前的缓 存状态为初始缓冲状态, 在所述第二持续播放时长大于或等于所述初始缓 冲时间时, 确定本次缓存状态为正常播放状态并记录本次缓存状态的开始 时间和持续时间, 在所述第二持续播放时长小于所述初始缓冲时间时, 确 定本次缓存状态为所述初始缓冲状态并更新本次缓存状态的持续时间, 以 及如果所述本次状态估计前的缓存状态为再缓冲状态, 在所述第二持续播 放时长大于或等于所述再缓冲时间时, 确定本次缓存状态为正常播放状态 并记录本次缓存状态的开始时间和持续时间, 在所述第二持续播放时长小 于所述再缓冲时间时, 确定本次缓存状态为再缓冲状态并更新本次缓存状 态的持续时间。
进一歩可选的, 状态估计模块 43还用于如果所述本次状态估计前的 缓存状态为正常播放状态, 在所述第二持续播放时长小于或等于预设的第 二门限, 确定本次缓冲状态为再缓冲状态并记录本次缓冲状态的开始时间 和持续时间, 在所述第二持续播放时长大于所述预设的第二门限时, 确定 本次缓存状态为正常播放状态并更新本次缓存状态的持续时间。
进一歩可选的, 状态估计模块 43还用于如果所述本次状态估计前的 缓存状态为正常播放状态, 在所述最大 DTS或最大 PTS小于本次状态估计 周期内正常播放所需的 DTS或 PTS时, 确定本次缓冲状态为再缓冲状态并 记录本次缓冲状态的开始时间和持续时间, 在所述最大 DTS或最大 PTS大 于或等于本次状态估计周期内正常播放所需的 DTS或 PTS时, 确定本次缓 存状态为正常播放状态并更新本次缓存状态的持续时间。这里的本次状态 估计前的缓存状态是指上一次状态估计获取的缓存状态。
进一歩可选的, 状态估计模块 43还用于如果所述本次状态估计前的 缓存状态为结束播放状态, 确定本次缓存状态为结束播放状态。
进一歩可选的, 状态估计模块 43还用于如果所述本次状态估计前的 缓存状态为停止播放状态, 确定本次缓存状态为停止播放状态。
基于上述, 状态估计模块 43用于记录本次缓存状态的开始时间和持 续时间, 包括:
状态估计模块 43具体用于在本次缓存状态与所述本次状态估计前的 缓存状态不一致时, 根据所述第一持续播放时长和所述本次状态估计前的 缓存状态, 更新当前媒体数据自身播放进度对应的时间点, 根据更新后的 媒体数据自身播放进度对应的时间点获取本次缓存状态的开始时间和持 续时间。
如图 5所示, 所述缓存状态估计设备还包括: 状态修正模块 46。
状态修正模块 46, 与状态估计模块 43连接, 用于根据用户请求, 对 状态估计模块 43估计出的本次缓存状态以及本次缓存状态的开始时间和 持续时间进行修正。
其中, 所述用户请求可以包括: 播放请求、 重新播放请求、搜索请求、 停止播放请求或结束播放请求。
状态修正模块 46具体用于如果所述用户请求为播放请求或搜索请求, 则将本次缓存状态修正为初始缓冲状态并记录修正后本次缓存状态的开 始时间和持续时间; 如果所述用户请求为重新播放请求, 则将本次缓存状 态修正为正常播放状态并记录修正后本次缓存状态的开始时间和持续时 间; 如果所述用户请求为结束播放请求, 则将本次缓存状态修正为结束播 放状态并记录修正后本次缓存状态的开始时间和持续时间; 如果所述用户 请求为停止播放请求, 则将本次缓存状态修正为停止播放状态并记录修正 后本次缓存状态的开始时间和持续时间。
在此说明, 所述缓存状态估计设备可以是所述终端, 或者可以是媒体 服务器或网络节点, 但不限于此。
本实施例提供的缓存状态估计设备的各功能模块可用于执行图 1所示 缓存状态估计方法实施例的流程, 其具体工作原理不再赘述, 详见方法实 施例的描述。
本实施例提供的缓存状态估计设备, 可以根据终端在两次状态估计之 间接收的媒体数据对应的持续播放时长以及本次状态估计前的缓存状态, 获得当前缓存中媒体数据对应的持续播放时长, 然后根据本次状态估计前 的缓存状态、 预设的缓存配置参数与当前缓存中媒体数据对应的持续播放 时长, 对缓存进行状态估计获取本次缓存状态以及本次缓存状态的开始时 间和持续时间, 其对缓存状态进行估计的过程不受传输协议的限制, 可以 用于对 TCP应用场景下的缓存状态进行估计, 为在 TCP应用场景下对音视 频的播放质量进行评估提供条件。
图 6为本发明实施例提供的又一种缓存状态估计设备的结构示意图。 如图 6所示, 所述缓存状态估计设备包括: 存储器 61和处理器 62。
存储器 61, 用于存储程序。 具体地, 所述程序可以包括程序代码, 所 述程序代码包括计算机操作指令。 存储器 61可能包含高速 RAM存储器, 也可能还包括非易失性存储器 (non-volati le memory ) , 例如至少一个 磁盘存储器。
处理器 62, 用于执行存储器 61存储的程序, 以用于: 获取终端在本 次状态估计周期内接收的媒体数据对应的第一持续播放时长; 根据本次状 态估计前的缓存状态以及所述第一持续播放时长, 计算当前缓存中的媒体 数据对应的第二持续播放时长; 根据本次状态估计前的缓存状态、 预设的 缓存配置参数和所述第二持续播放时长, 对所述缓存进行状态估计, 获取 本次缓存状态以及本次缓存状态的开始时间和持续时间。
在本实施例中, 所述缓存的缓存状态包括: 初始缓冲状态、 正常播放 状态、 再缓冲状态、 结束播放状态和停止播放状态中的至少一个。 其中, 缓存状态估计的初始状态设置为初始缓冲状态。 基于此, 如果本次状态估 计为第一次状态估计, 则本次状态估计前的缓存状态为初始缓冲状态; 如 果本次状态估计非第一次状态估计, 则本次状态估计前的缓存状态可以 为: 初始缓冲状态、 正常播放状态、 再缓冲状态、 结束播放状态或停止播 放状态; 相应的, 无论本次状态估计是否是第一次状态估计, 则估计出的 本次缓存状态可以为: 初始缓冲状态、 正常播放状态、 再缓冲状态、 结束 播放状态或停止播放状态。
在一可选实施方式中, 处理器 62用于获取第一持续播放时长包括: 处理器 62具体用于根据所述终端在本次状态估计周期内接收的媒体数据 的大小和当前媒体信息, 计算所述第一持续播放时长。
一种情况, 所述终端在本次状态估计周期内接收的媒体数据的大小为 所述终端在本次状态估计周期内接收的媒体数据的字节数; 所述当前媒体 信息为当前媒体码率。 处理器 62具体用于根据所述终端在本次状态估计 周期内接收的媒体数据的字节数和当前媒体码率, 计算所述第一持续播放 时长。
可选的, 所述缓存状态估计设备还包括: 通信接口 63。
如果所述缓存状态估计设备为媒体服务器, 则通信接口 63可用于在 处理器 62计算所述第一持续播放时长之前, 接收所述终端发送的反馈报 文, 所述反馈报文是终端针对所述终端在本次状态估计周期内接收的媒体 数据所发送的。 基于此, 处理器 62具体用于根据所述反馈报文, 获取所 述终端在本次状态估计周期内接收的媒体数据的字节数, 然后根据所述终 端在本次状态估计周期内接收的媒体数据的字节数和当前媒体码率, 计算 所述第一持续播放时长。
或者, 如果所述缓存状态估计设备为所述终端, 则通信接口 63可用 于在处理器 62计算所述第一持续播放时长之前, 接收媒体数据。 处理器 62具体用于解析通信接口 63在本次状态估计周期内接收的媒体数据, 获 取通信接口 63在本次状态估计周期内接收的媒体数据的字节数, 然后根 据通信接口 63在本次状态估计周期内接收的媒体数据的字节数和当前媒 体码率, 计算所述第一持续播放时长。
另一种情况, 终端在本次状态估计周期内接收的媒体数据的大小为所 述终端在本次状态估计周期内接收的媒体数据的帧数; 所述当前媒体信息 为当前媒体帧率。 基于此, 处理器 62具体用于解析所述终端在本次状态 估计周期内接收的媒体数据, 获得所述终端在本次状态估计周期内接收的 媒体数据的帧数, 根据所述终端在本次状态估计周期内接收的媒体数据的 帧数和当前媒体帧率, 计算所述第一持续播放时长。
在另一可选实施方式中, 处理器 62用于获取第一持续播放时长包括: 处理器 62具体用于解析所述终端在本次状态估计周期内接收的媒体数据, 获取所述媒体数据包括的完整帧的最大 DTS和最小 DTS , 或者获取所述媒 体数据包括的完整帧的最大 PTS和最小 PTS , 以最大 DTS与最小 DTS之差 作为所述第一持续播放时长, 或者以最大 PTS与最小 PTS之差作为所述第 一持续播放时长。
在一可选实施方式中, 处理器 62用于计算第二持续播放时长包括: 处理器 62具体用于在所述本次状态估计前的缓存状态是除正常播放状态 之外的其他缓存状态时, 将到上一次状态估计结束时所述缓存中媒体数据 对应的持续播放时长与所述第一持续播放时长之和作为所述第二持续播 放时长, 或者在所述本次状态估计前的缓存状态是正常播放状态时, 将到 上一次状态估计结束时所述缓存中媒体数据对应的持续播放时长与第一 持续播放时长之和, 减去本次状态估计周期内正常播放所需的媒体数据对 应的持续播放时长, 得到所述第二持续播放时长。 这里的本次状态估计前 的缓存状态是指上一次状态估计获取的缓存状态。
可选的, 所述缓存配置参数包括: 初始缓冲时间和再缓冲时间。 所述 初始缓冲时间是指在所述终端第一次播放媒体数据前, 为实现正常播放所 述缓存中最少应该存储的媒体数据对应的持续播放时长; 所述再缓冲时间 是指从所述终端播放媒体数据过程中再缓冲开始, 到所述终端重新播放媒 体数据前, 所述缓存中最少应该存储的媒体数据对应的持续播放时长。
基于此, 处理器 62用于根据本次状态估计前的缓存状态、 预设的缓 存配置参数和所述第二持续播放时长, 对所述缓存进行状态估计, 获取本 次缓存状态以及本次缓存状态的开始时间和持续时间包括: 处理器 62具 体用于如果所述本次状态估计前的缓存状态为初始缓冲状态, 在所述第二 持续播放时长大于或等于所述初始缓冲时间时, 确定本次缓存状态为正常 播放状态并记录本次缓存状态的开始时间和持续时间, 在所述第二持续播 放时长小于所述初始缓冲时间时, 确定本次缓存状态为所述初始缓冲状态 并更新本次缓存状态的持续时间, 以及如果所述本次状态估计前的缓存状 态为再缓冲状态, 在所述第二持续播放时长大于或等于所述再缓冲时间 时, 确定本次缓存状态为正常播放状态并记录本次缓存状态的开始时间和 持续时间, 在所述第二持续播放时长小于所述再缓冲时间时, 确定本次缓 存状态为再缓冲状态并更新本次缓存状态的持续时间。
进一歩可选的, 处理器 62还用于如果所述本次状态估计前的缓存状 态为正常播放状态, 在所述第二持续播放时长小于或等于预设的第二门 限, 确定本次缓冲状态为再缓冲状态并记录本次缓冲状态的开始时间和持 续时间, 在所述第二持续播放时长大于所述预设的第二门限时, 确定本次 缓存状态为正常播放状态并更新本次缓存状态的持续时间。
进一歩可选的, 处理器 62还用于如果所述本次状态估计前的缓存状 态为正常播放状态, 在所述最大 DTS或最大 PTS小于本次状态估计周期内 正常播放所需的 DTS或 PTS时, 确定本次缓冲状态为再缓冲状态并记录本 次缓冲状态的开始时间和持续时间, 在所述最大 DTS或最大 PTS大于或等 于本次状态估计周期内正常播放所需的 DTS或 PTS时, 确定本次缓存状态 为正常播放状态并更新本次缓存状态的持续时间。这里的本次状态估计前 的缓存状态是指上一次状态估计获取的缓存状态。
进一歩可选的, 处理器 62还用于如果所述本次状态估计前的缓存状 态为结束播放状态, 确定本次缓存状态为结束播放状态。
进一歩可选的, 处理器 62还用于如果所述本次状态估计前的缓存状 态为停止播放状态, 确定本次缓存状态为停止播放状态。
其中, 处理器 62用于记录本次缓存状态的开始时间和持续时间, 包 括: 处理器 62具体用于在本次缓存状态与所述本次状态估计前的缓存状 态不一致时, 根据所述第一持续播放时长和所述本次状态估计前的缓存状 态, 更新当前媒体数据自身播放进度对应的时间点, 根据更新后的媒体数 据自身播放进度对应的时间点获取本次缓存状态的开始时间和持续时间。
在一可选实施方式中, 通信接口 63还用于接收用户请求。 处理器 62 还用于根据所述用户请求, 对本次缓存状态以及本次缓存状态的开始时间 和持续时间进行修正。
所述用户请求包括: 播放请求、 重新播放请求、 搜索请求、 停止播放 请求或结束播放请求。
处理器 62用于根据所述用户请求, 对本次缓存状态以及本次缓存状 态的开始时间和持续时间进行修正, 包括: 处理器 62具体用于如果所述 用户请求为播放请求或搜索请求, 则将本次缓存状态修正为初始缓冲状态 并记录修正后本次缓存状态的开始时间和持续时间; 如果所述用户请求为 重新播放请求, 则将本次缓存状态修正为正常播放状态并记录修正后本次 缓存状态的开始时间和持续时间; 如果所述用户请求为结束播放请求, 则 将本次缓存状态修正为结束播放状态并记录修正后本次缓存状态的开始 时间和持续时间; 如果所述用户请求为停止播放请求, 则将本次缓存状态 修正为停止播放状态并记录修正后本次缓存状态的开始时间和持续时间。
本实施例的缓存状态估计设备除了包括存储器 61、 处理器 62和通信 接口 63之外, 还包括电源模块、 显示器、 输入输出设备等。
可选的, 在具体实现上, 如果存储器 61、 处理器 62和通信接口 63 等独立实现, 则存储器 61、处理器 62和通信接口 63等可以通过总线相互 连接并完成相互间的通信。 所述总线可以是工业标准体系结构 (Industry Standard Archi tecture , 简称为 ISA) 总线、 夕卜部设备互连 ( Peripheral Component , 简称为 PCI ) 总线或扩展工业标准体系结构 (Extended
Industry Standard Architecture , 简称为 EISA ) 总线等。 所述总线可以 分为地址总线、 数据总线、 控制总线等。 为便于表示, 图 6中仅用一条粗 线表示, 但并不表示仅有一根总线或一种类型的总线。
可选的, 在具体实现上, 如果存储器 61、 处理器 62和通信接口 63 等集成在一块芯片上实现, 则存储器 61、处理器 62和通信接口 63等可以 通过内部接口完成相同间的通信。
在此说明, 所述缓存状态估计设备可以是所述终端, 或者可以是媒体 服务器或网络节点, 但不限于此。
本实施例提供的缓存状态估计设备可用于执行图 1所示缓存状态估计 方法实施例的流程, 其具体工作原理不再赘述, 详见方法实施例的描述。
本实施例提供的缓存状态估计设备, 可以根据终端在两次状态估计之 间接收的媒体数据对应的持续播放时长以及本次状态估计前的缓存状态, 获得当前缓存中媒体数据对应的持续播放时长, 然后根据本次状态估计前 的缓存状态、 预设的缓存配置参数与当前缓存中媒体数据对应的持续播放 时长, 对缓存进行状态估计获取本次缓存状态以及本次缓存状态的开始时 间和持续时间, 其对缓存状态进行估计的过程不受传输协议的限制, 可以 用于对 TCP应用场景下的缓存状态进行估计, 为在 TCP应用场景下对音视 频的播放质量进行评估提供条件。
本领域普通技术人员可以理解: 实现上述各方法实施例的全部或部分 歩骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算 机可读取存储介质中。 该程序在执行时, 执行包括上述各方法实施例的歩 骤; 而前述的存储介质包括: R0M、 RAM, 磁碟或者光盘等各种可以存储程 序代码的介质。
最后应说明的是: 以上各实施例仅用以说明本发明的技术方案, 而非 对其限制; 尽管参照前述各实施例对本发明进行了详细的说明, 本领域的 普通技术人员应当理解: 其依然可以对前述各实施例所记载的技术方案进 行修改, 或者对其中部分或者全部技术特征进行等同替换; 而这些修改或 者替换, 并不使相应技术方案的本质脱离本发明各实施例技术方案的范 围。

Claims

权 利 要 求 书
1、 一种缓存状态估计方法, 其特征在于, 包括:
获取终端在本次状态估计周期内接收的媒体数据对应的第一持续播 放时长;
根据本次状态估计前的缓存状态以及所述第一持续播放时长, 计算当 前缓存中的媒体数据对应的第二持续播放时长;
根据所述本次状态估计前的缓存状态、 预设的缓存配置参数和所述第 二持续播放时长, 对所述缓存进行状态估计, 获取本次缓存状态以及本次 缓存状态的开始时间和持续时间, 其中所述缓存的状态包括初始缓冲状 态、 正常播放状态、 再缓冲状态、 结束播放状态和停止播放状态中的至少 一个。
2、 根据权利要求 1所述的缓存状态估计方法, 其特征在于, 所述获 取终端在本次状态估计周期内接收的媒体数据对应的第一持续播放时长, 包括:
根据所述终端在本次状态估计周期内接收的媒体数据的字节数和当 前媒体码率, 计算所述第一持续播放时长; 或者
解析所述终端在本次状态估计周期内接收的媒体数据, 获得所述终端 在本次状态估计周期内接收的媒体数据的帧数;
根据所述终端在本次状态估计周期内接收的媒体数据的帧数和当前 媒体帧率, 计算所述第一持续播放时长。
3、 根据权利要求 2所述的缓存状态估计方法, 其特征在于, 所述根 据所述终端在本次状态估计周期内接收的媒体数据的字节数和当前媒体 码率, 计算所述第一持续播放时长之前, 包括:
接收所述终端发送的反馈报文, 所述反馈报文是所述终端针对在本次 状态估计周期内接收的媒体数据所发送的, 根据所述反馈报文, 获取所述 终端在本次状态估计周期内接收的媒体数据的字节数; 或者,
解析所述终端在本次状态估计周期内接收的媒体数据, 获取所述终端 在本次状态估计周期内接收的媒体数据的字节数。
4、 根据权利要求 1所述的缓存状态估计方法, 其特征在于, 所述获 取终端在本次状态估计周期内接收的媒体数据对应的第一持续播放时长, 包括:
解析所述终端在本次状态估计周期内接收的媒体数据, 获取所述媒体 数据包括的完整帧的最大解码时间戳 DTS和最小解码时间戳 DTS , 或获取 所述媒体数据包括的完整帧的最大显示时间戳 PTS和最小显示时间戳 PTS ;
以所述最大 DTS与所述最小 DTS之差作为所述第一持续播放时长, 或 者以所述最大 PTS与所述最小 PTS之差作为所述第一持续播放时长。
5、 根据权利要求 1-4任一项所述的缓存状态估计方法, 其特征在于, 所述根据本次状态估计前的缓存状态以及所述第一持续播放时长, 计算当 前缓存中的媒体数据对应的第二持续播放时长, 包括:
如果所述本次状态估计前的缓存状态是除所述正常播放状态之外的 其他的缓存状态, 则将到上一次状态估计结束时所述缓存中媒体数据对应 的持续播放时长与所述第一持续播放时长之和作为所述第二持续播放时 长;
如果所述本次状态估计前的缓存状态是所述正常播放状态, 则以到上一次 状态估计结束时所述缓存中媒体数据对应的持续播放时长与所述第一持续播 放时长之和, 减去所述本次状态估计周期内正常播放所需的媒体数据对应的 持续播放时长, 得到所述第二持续播放时长。
6、 根据权利要求 1-5任一项所述的缓存状态估计方法, 其特征在于, 所述缓存配置参数包括: 初始缓冲时间和再缓冲时间;
所述初始缓冲时间是指在所述终端第一次播放媒体数据前, 为实现正 常播放所述缓存中最少应该存储的媒体数据对应的持续播放时长;
所述再缓冲时间是指从所述终端播放媒体数据过程中再缓冲开始, 到 所述终端重新播放媒体数据前, 所述缓存中最少应该存储的媒体数据对应 的持续播放时长;
所述根据所述本次状态估计前的缓存状态、 预设的缓存配置参数和所 述第二持续播放时长, 对所述缓存进行状态估计, 获取本次缓存状态以及 本次缓存状态的开始时间和持续时间, 包括:
如果所述本次状态估计前的缓存状态为所述初始缓冲状态, 在所述第 二持续播放时长大于或等于所述初始缓冲时间时, 确定本次缓存状态为正 常播放状态并记录本次缓存状态的开始时间和持续时间, 或者, 在所述第 二持续播放时长小于所述初始缓冲时间时, 确定本次缓存状态为所述初始 缓冲状态并更新本次缓存状态的持续时间;
如果所述本次状态估计前的缓存状态为所述再缓冲状态, 在所述第二 持续播放时长大于或等于所述再缓冲时间时, 确定本次缓存状态为正常播 放状态并记录本次缓存状态的开始时间和持续时间, 或者, 在所述第二持 续播放时长小于所述再缓冲时间时, 确定本次缓存状态为再缓冲状态并更 新本次缓存状态的持续时间。
7、 根据权利要求 1-5任一项所述的缓存状态估计方法, 其特征在于, 还包括:
如果所述本次状态估计前的缓存状态为所述正常播放状态, 在所述第 二持续播放时长小于或等于预设门限, 确定本次缓冲状态为再缓冲状态并 记录本次缓冲状态的开始时间和持续时间, 在所述第二持续播放时长大于 所述预设门限时, 确定本次缓存状态为正常播放状态并更新本次缓存状态 的持续时间。
8、 根据权利要求 1-5任一项所述的缓存状态估计方法, 其特征在于, 还包括:
如果所述本次状态估计前的缓存状态为所述正常播放状态, 在所述最 大 DTS或最大 PTS小于本次状态估计周期内正常播放所需的 DTS或 PTS时, 确定本次缓冲状态为再缓冲状态并记录本次缓冲状态的开始时间和持续 时间, 在所述最大 DTS或最大 PTS大于或等于本次状态估计周期内正常播 放所需的 DTS或 PTS时, 确定本次缓存状态为正常播放状态并更新本次缓 存状态的持续时间。
9、 根据权利要求 1-5任一项所述的缓存状态估计方法, 其特征在于, 还包括:
如果所述本次状态估计前的缓存状态为所述结束播放状态, 确定本次 缓存状态为结束播放状态。
10、根据权利要求 1-5任一项所述的缓存状态估计方法,其特征在于, 还包括:
如果所述本次状态估计前的缓存状态为所述停止播放状态, 确定本次 缓存状态为停止播放状态。
11、 根据权利要求 6-10任一项所述的缓存状态估计方法, 其特征在 于,
在本次缓存状态与所述本次状态估计前的缓存状态不一致时, 所述记 录本次缓存状态的开始时间和持续时间, 包括:
根据所述第一持续播放时长和所述本次状态估计前的缓存状态, 更新 当前媒体数据自身播放进度对应的时间点, 根据更新后的媒体数据自身播 放进度对应的时间点获取本次缓存状态的开始时间和持续时间。
12、 根据权利要求 1-11任一项所述的缓存状态估计方法, 其特征在 于, 所述获取本次缓存状态以及本次缓存状态的开始时间和持续时间之 后, 还包括:
根据用户请求, 对本次缓存状态以及本次缓存状态的开始时间和持续 时间进行修正。
13、 根据权利要求 12所述的缓存状态估计方法, 其特征在于, 所述 用户请求包括: 播放请求、 重新播放请求、 搜索请求、 停止播放请求或结 束播放请求;
所述根据用户请求, 对本次缓存状态以及本次缓存状态的开始时间和 持续时间进行修正, 包括:
如果所述用户请求为所述播放请求或所述搜索请求, 则将本次缓存状 态修正为初始缓冲状态并记录修正后本次缓存状态的开始时间和持续时 间;
如果所述用户请求为所述重新播放请求, 则将本次缓存状态修正为正 常播放状态并记录修正后本次缓存状态的开始时间和持续时间;
如果所述用户请求为所述结束播放请求, 则将本次缓存状态修正为结 束播放状态并记录修正后本次缓存状态的开始时间和持续时间;
如果所述用户请求为所述停止播放请求, 则将本次缓存状态修正为停 止播放状态并记录修正后本次缓存状态的开始时间和持续时间。
14、 一种缓存状态估计设备, 其特征在于, 包括:
第一获取模块, 用于获取终端在本次状态估计周期内接收的媒体数据 对应的第一持续播放时长; 计算模块, 用于根据本次状态估计前的缓存状态以及所述第一持续播 放时长, 计算当前缓存中的媒体数据对应的第二持续播放时长;
状态估计模块, 用于根据所述本地状态估计前的缓存状态、 预设的缓 存配置参数和所述第二持续播放时长, 对所述缓存进行状态估计, 获取本 次缓存状态以及本次缓存状态的开始时间和持续时间, 其中所述缓存的状 态包括初始缓冲状态、 正常播放状态、 再缓冲状态、 结束播放状态和停止 播放状态中的至少一个。
15、 根据权利要求 14所述的缓存状态估计设备, 其特征在于, 所述 第一获取模块具体用于根据所述终端在本次状态估计周期内接收的媒体 数据的字节数和当前媒体码率, 计算所述第一持续播放时长; 或者
所述第一获取模块具体用于解析所述终端在本次状态估计周期内接 收的媒体数据, 获得所述终端在本次状态估计周期内接收的媒体数据的帧 数, 根据所述终端在本次状态估计周期内接收的媒体数据的帧数和当前媒 体帧率, 计算所述第一持续播放时长。
16、 根据权利要求 15所述的缓存状态估计设备, 其特征在于, 还包 括:
第二获取模块, 用于在所述第一获取模块计算所述第一持续播放时长 之前, 接收所述终端发送的反馈报文, 所述反馈报文是所述终端针对在本 次状态估计周期内接收的媒体数据所发送的, 根据所述反馈报文, 获取所 述终端在本次状态估计周期内接收的媒体数据的字节数; 或者,
第三获取模块, 用于在所述第一获取模块计算所述第一持续播放时长 之前, 解析所述终端在本次状态估计周期内接收的媒体数据, 获取所述终 端在本次状态估计周期内接收的媒体数据的字节数。
17、 根据权利要求 14所述的缓存状态估计设备, 其特征在于, 所述 第一获取模块具体用于解析所述终端在本次状态估计周期内接收的媒体 数据, 获取所述媒体数据包括的完整帧的最大解码时间戳 DTS和最小解码 时间戳 DTS , 或者获取所述媒体数据包括的完整帧的最大显示时间戳 PTS 和最小显示时间戳 PTS , 以所述最大 DTS与所述最小 DTS之差作为所述第 一持续播放时长, 或者以所述最大 PTS与所述最小 PTS之差作为所述第一 持续播放时长。
18、 根据权利要求 14-17任一项所述的缓存状态估计设备, 其特征在 于, 所述计算模块具体用于在所述本次状态估计前的缓存状态是除所述正 常播放状态之外的其他缓存状态时, 将到上一次状态估计结束时所述缓存 中媒体数据对应的持续播放时长与所述第一持续播放时长之和作为所述 第二持续播放时长, 或者在所述本次状态估计前的缓存状态是所述正常播 放状态时, 以到上一次状态估计结束时所述缓存中媒体数据对应的持续播 放时长与所述第一持续播放时长之和, 减去所述本次状态估计周期内正常 播放所需的媒体数据对应的持续播放时长, 得到所述第二持续播放时长。
19、 根据权利要求 14-18任一项所述的缓存状态估计设备, 其特征在 于, 所述缓存配置参数包括: 初始缓冲时间和再缓冲时间;
所述初始缓冲时间是指在所述终端第一次播放媒体数据前, 为实现正 常播放所述缓存中最少应该存储的媒体数据对应的持续播放时长;
所述再缓冲时间是指从所述缓存中的媒体数据对应的持续播放时长 小于或等于预设门限时开始, 到所述缓存中的媒体数据对应的持续播放时 长大于所述预设门限前, 所述缓存中最少应该存储的媒体数据对应的持续 播放时长;
所述状态估计模块具体用于如果所述本次状态估计前的缓存状态为 所述初始缓冲状态, 在所述第二持续播放时长大于或等于所述初始缓冲时 间时, 确定本次缓存状态为正常播放状态并记录本次缓存状态的开始时间 和持续时间, 在所述第二持续播放时长小于所述初始缓冲时间时, 确定本 次缓存状态为所述初始缓冲状态并更新本次缓存状态的持续时间, 以及如 果所述本次状态估计前的缓存状态为所述再缓冲状态, 在所述第二持续播 放时长大于或等于所述再缓冲时间时, 确定本次缓存状态为正常播放状态 并记录本次缓存状态的开始时间和持续时间, 在所述第二持续播放时长小 于所述再缓冲时间时, 确定本次缓存状态为再缓冲状态并更新本次缓存状 态的持续时间。
20、 根据权利要求 14-18任一项所述的缓存状态估计设备, 其特征在 于, 所述状态估计模块还用于如果所述本次状态估计前的缓存状态为所述 正常播放状态, 在所述第二持续播放时长小于或等于预设门限, 确定本次 缓冲状态为再缓冲状态并记录本次缓冲状态的开始时间和持续时间, 在所 述第二持续播放时长大于所述预设门限时, 确定本次缓存状态为正常播放 状态并更新本次缓存状态的持续时间。
21、 根据权利要求 14-18任一项所述的缓存状态估计设备, 其特征在 于, 所述状态估计模块还用于如果所述本次状态估计前的缓存状态为所述 正常播放状态, 在所述最大 DTS或最大 PTS小于本次状态估计周期内正常 播放所需的 DTS或 PTS时, 确定本次缓冲状态为再缓冲状态并记录本次缓 冲状态的开始时间和持续时间, 在所述最大 DTS或最大 PTS大于或等于本 次状态估计周期内正常播放所需的 DTS或 PTS时, 确定本次缓存状态为正 常播放状态并更新本次缓存状态的持续时间。
22、 根据权利要求 14-18任一项所述的缓存状态估计设备, 其特征在 于, 所述状态估计模块还用于如果所述本次状态估计前的缓存状态为所述 结束播放状态, 确定本次缓存状态为结束播放状态。
23、 根据权利要求 14-18任一项所述的缓存状态估计设备, 其特征在 于, 所述状态估计模块还用于如果所述本次状态估计前的缓存状态为所述 停止播放状态, 确定本次缓存状态为停止播放状态。
24、 根据权利要求 19-23任一项所述的缓存状态估计设备, 其特征在 于, 所述状态估计模块用于记录本次缓存状态的开始时间和持续时间, 包 括:
所述状态估计模块具体用于在本次缓存状态与所述本次状态估计前 的缓存状态不一致时, 根据所述第一持续播放时长和所述本次状态估计前 的缓存状态, 更新当前媒体数据自身播放进度对应的时间点, 根据更新后 的媒体数据自身播放进度对应的时间点获取本次缓存状态的开始时间和 持续时间。
25、 根据权利要求 14-24任一项所述的缓存状态估计设备, 其特征在 于, 还包括:
状态修正模块, 用于根据用户请求, 对本次缓存状态以及本次缓存状 态的开始时间和持续时间进行修正。
26、 根据权利要求 25所述的缓存状态估计设备, 其特征在于, 所述 用户请求包括: 播放请求、 重新播放请求、 搜索请求、 停止播放请求或结 束播放请求;
所述状态修正模块具体用于如果所述用户请求为所述播放请求或所 述搜索请求, 则将本次缓存状态修正为初始缓冲状态并记录修正后本次缓 存状态的开始时间和持续时间; 如果所述用户请求为所述重新播放请求, 则将本次缓存状态修正为正常播放状态并记录修正后本次缓存状态的开 始时间和持续时间; 如果所述用户请求为所述结束播放请求, 则将本次缓 存状态修正为结束播放状态并记录修正后本次缓存状态的开始时间和持 续时间; 如果所述用户请求为所述停止播放请求, 则将本次缓存状态修正 为停止播放状态并记录修正后本次缓存状态的开始时间和持续时间。
27、 根据权利要求 14-26任一项所述的缓存状态估计设备, 其特征在 于, 所述缓存状态估计设备为所述终端或者媒体服务器。
PCT/CN2013/087558 2013-03-05 2013-11-21 缓存状态估计方法及设备 Ceased WO2014134932A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
EP13877046.6A EP2955930B1 (en) 2013-03-05 2013-11-21 Method and device for estimating temporary storage status

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201310069638.6 2013-03-05
CN201310069638.6A CN104038846B (zh) 2013-03-05 2013-03-05 缓存状态估计方法及设备

Publications (1)

Publication Number Publication Date
WO2014134932A1 true WO2014134932A1 (zh) 2014-09-12

Family

ID=51469412

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2013/087558 Ceased WO2014134932A1 (zh) 2013-03-05 2013-11-21 缓存状态估计方法及设备

Country Status (4)

Country Link
US (1) US9392247B2 (zh)
EP (1) EP2955930B1 (zh)
CN (1) CN104038846B (zh)
WO (1) WO2014134932A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9854282B2 (en) * 2014-11-20 2017-12-26 Alcatel Lucent System and method for enabling network based rate determination for adaptive video streaming
CN105791987B (zh) * 2014-12-23 2018-11-02 深圳Tcl数字技术有限公司 媒体数据播放的方法及终端
CN104639986B (zh) * 2014-12-31 2018-10-26 小米科技有限责任公司 多媒体数据播放方法和装置
CN107645778A (zh) * 2016-07-22 2018-01-30 中兴通讯股份有限公司 一种无线站点状态信息上报方法和装置
CN106792109B (zh) * 2016-12-06 2021-02-26 海信视像科技股份有限公司 视频播放方法、装置及终端
CN106777113B (zh) * 2016-12-15 2020-03-13 北京安云世纪科技有限公司 应用程序中的数据处理方法、装置及移动终端
CN106997300B (zh) * 2017-03-31 2020-04-10 Oppo广东移动通信有限公司 软件升级处理方法、装置和音频设备
CN108111902A (zh) * 2017-12-21 2018-06-01 Tcl移动通信科技(宁波)有限公司 移动终端及视频播放适配处理方法、及存储介质
CN108961855B (zh) * 2018-05-04 2021-02-19 何战涛 一种便携式早教设备及其使用方法
US10555040B2 (en) 2018-06-22 2020-02-04 Samsung Electronics Co., Ltd. Machine learning based packet service classification methods for experience-centric cellular scheduling
CN108882056B (zh) * 2018-07-18 2020-09-29 深圳市茁壮网络股份有限公司 流媒体播放状态检测方法及装置
CN113453066B (zh) * 2020-03-24 2025-01-14 深圳市雅阅科技有限公司 一种播放时长确定方法和相关设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020128788A1 (en) * 2001-03-12 2002-09-12 Ahead Software Gmbh Method for controlling the status of an internal memory (buffer) and control device for same
CN101534400A (zh) * 2009-04-14 2009-09-16 北京中星微电子有限公司 一种数据发送采样率的调节方法和装置
CN102196312A (zh) * 2010-03-02 2011-09-21 北大方正集团有限公司 音视频数据流的播放方法及装置
CN102547449A (zh) * 2011-12-22 2012-07-04 华为技术有限公司 一种控制终端缓冲媒体流数据的方法、机顶盒及媒体服务器

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5677969A (en) 1995-02-23 1997-10-14 Motorola, Inc. Method, rate controller, and system for preventing overflow and underflow of a decoder buffer in a video compression system
US7177278B2 (en) * 1999-12-09 2007-02-13 Broadcom Corporation Late frame recovery method
US7260826B2 (en) 2000-05-31 2007-08-21 Microsoft Corporation Resource allocation in multi-stream IP network for optimized quality of service
US7388912B1 (en) 2002-05-30 2008-06-17 Intervideo, Inc. Systems and methods for adjusting targeted bit allocation based on an occupancy level of a VBV buffer model
US7380028B2 (en) 2003-06-13 2008-05-27 Microsoft Corporation Robust delivery of video data
EP1509011A3 (en) * 2003-08-16 2011-01-19 Samsung Electronics Co., Ltd. Method and apparatus for assigning scheduling for uplink packet transmission in a mobile communication system
US7933328B2 (en) 2005-02-02 2011-04-26 Broadcom Corporation Rate control for digital video compression processing
US8874964B1 (en) * 2006-11-15 2014-10-28 Conviva Inc. Detecting problems in content distribution
US8874725B1 (en) * 2006-11-15 2014-10-28 Conviva Inc. Monitoring the performance of a content player
NZ593644A (en) * 2009-02-09 2014-03-28 Ericsson Telefon Ab L M Method and arrangement in a wireless communication system
JP2011009904A (ja) * 2009-06-24 2011-01-13 Hitachi Ltd 無線映像配信システム、コンテンツビットレート制御方法及びコンテンツビットレート制御プログラムを記憶したコンピュータ読み取り可能な記録媒体
US9100288B1 (en) * 2009-07-20 2015-08-04 Conviva Inc. Augmenting the functionality of a content player
US20130204238A1 (en) * 2010-03-29 2013-08-08 Follica, Inc Combination therapy
US9485298B2 (en) * 2010-10-28 2016-11-01 Netscout Systems Texas, Llc Device with video buffer modeling and methods for use therewith
CN102118270B (zh) * 2011-03-04 2014-04-30 华为技术有限公司 一种度量用户体验质量QoE的方法及装置
EP2679015A4 (en) * 2011-06-07 2014-05-21 Huawei Tech Co Ltd DEVICE AND METHOD FOR CONTROLLING VIDEO SESSION IN A DATA NETWORK
EP2724584A1 (en) * 2011-06-21 2014-04-30 Telefonaktiebolaget LM Ericsson (PUBL) Network node and method related to buffer estimation

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020128788A1 (en) * 2001-03-12 2002-09-12 Ahead Software Gmbh Method for controlling the status of an internal memory (buffer) and control device for same
CN101534400A (zh) * 2009-04-14 2009-09-16 北京中星微电子有限公司 一种数据发送采样率的调节方法和装置
CN102196312A (zh) * 2010-03-02 2011-09-21 北大方正集团有限公司 音视频数据流的播放方法及装置
CN102547449A (zh) * 2011-12-22 2012-07-04 华为技术有限公司 一种控制终端缓冲媒体流数据的方法、机顶盒及媒体服务器

Non-Patent Citations (1)

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

Also Published As

Publication number Publication date
EP2955930B1 (en) 2019-01-16
CN104038846B (zh) 2018-03-09
EP2955930A1 (en) 2015-12-16
US9392247B2 (en) 2016-07-12
EP2955930A4 (en) 2015-12-16
US20140255007A1 (en) 2014-09-11
CN104038846A (zh) 2014-09-10

Similar Documents

Publication Publication Date Title
WO2014134932A1 (zh) 缓存状态估计方法及设备
CN106686438B (zh) 一种跨设备的音频图像同步播放的方法、装置及系统
CN106792073B (zh) 跨设备的音视频数据同步播放的方法、播放设备及系统
CN103875218B (zh) 内容再生信息推测装置、方法
WO2014086172A1 (zh) 一种获取流媒体缓存参数的方法及装置
WO2017005055A1 (zh) 流媒体网络传输的带宽计算方法、服务器端和系统
CN105393583B (zh) 具有媒体突发传送能力的媒体分发网络
WO2017000719A1 (zh) 一种基于队列时延的拥塞控制方法及装置
CN103888381A (zh) 用于控制抖动缓冲器的装置和方法
CN110225385B (zh) 一种音视频同步调整方法和装置
JP6132116B2 (ja) ビデオ品質のユーザ体験値を評価するための方法、デバイス、及びシステム
WO2017215279A1 (zh) 一种视频回放方法及装置
CN105553939A (zh) 一种流媒体卡顿的确定方法及装置
CN113242436B (zh) 直播数据的处理方法、装置及电子设备
TW201644239A (zh) 用於控制語音品質的方法和裝置
CN106791994A (zh) 一种低延时快速开播方法及装置
WO2020042167A1 (zh) 一种提高语音通话质量的方法、终端和系统
US20120117265A1 (en) Method and communication system for implementing stream services, and relevant device
CN112866345B (zh) 一种基于WebSocket的流媒体低延时通信实现方法、电子设备、存储介质
US10382155B2 (en) Data processing
US20170019870A1 (en) Method and apparatus for synchronization in a network
CN103237314B (zh) 业务质量评测方法和装置
CN108933768B (zh) 视频帧的发送帧率的获取方法和装置
JP5806982B2 (ja) ユーザポーズ操作時間推定装置及び方法及びプログラム
JP3996819B2 (ja) オーディオ伝送システム、これに用いられる受信端末、送信端末及び復号化処理装置、並びにオーディオ伝送方法

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: 13877046

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2013877046

Country of ref document: EP