Methods, systems, and media for streaming video content using adaptive buffers

Through adaptive buffer technology, the buffer size is adjusted according to the prediction abandonment distribution, which solves the problem of resource waste when streaming video content and achieves more efficient video content transmission.

CN120201237APending Publication Date: 2025-06-24GOOGLE LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510278239.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2019-10-14
Filing Date
2020-01-24
Publication Date
2025-06-24

AI Technical Summary

Technical Problem

When streaming media content, the user equipment uses a fixed buffer size, which causes the server to send unreleased media content when the network connection quality declines or is lagging, resulting in wasting resources.

Method used

Adaptive buffer technology is adopted to send requests from the user equipment to the server, receive the predicted abandonment distribution, and adjust the buffer size according to the distribution, thereby dynamically requesting part of the video content.

Benefits of technology

It effectively reduces resource waste, improves the efficiency of streaming video content, and adapts to different network conditions and user behavior.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120201237A_ABST
    Figure CN120201237A_ABST
Patent Text Reader

Abstract

The application relates to methods, systems, and media for streaming video content using an adaptive buffer. The method comprises: sending a request from a user device to a server to stream a video content item; receiving, at the user device from the server, a predicted abandon distribution indicating a plurality of likelihoods that a user of the user device ceases presentation of the video content item at a corresponding plurality of presentation time points of the video content item; receiving, at the user device, a first portion of the video content item from the server; storing the first portion in a buffer of a user equipment having a first size; causing the user device to present the video content item; determining a second size of the buffer based on the predicted abandon distribution; modifying the size of the buffer area into a second size; requesting a second portion of the video content item from the server based on a second size of the buffer; receiving the second part from the server; and, while continuing to present the video content item, storing a second portion of the video content item in the buffer of the second size.
Need to check novelty before this filing date? Find Prior Art

Description

Division Explanation

[0001] This application is a divisional application of Chinese Patent Application No. 202080071492.7 with a filing date of January 24, 2020. Cross - reference to Related Applications

[0002] This application claims the benefit of U.S. Provisional Patent Application No. 62 / 914,978, filed on October 14, 2019, which is hereby incorporated by reference in its entirety. Technical Field

[0003] The disclosed subject matter relates to methods, systems, and media for streaming video content using an adaptive buffer. Background Art

[0004] Users often stream media content (e.g., videos, TV shows, movies, music, etc.) from media content sharing services to user devices (e.g., mobile phones, tablets, smart TVs, media players, etc.). A user device streaming a media content item can buffer the media content item so that a portion of the media content is available for presentation in the event that the quality of the network connection used to stream the media content item degrades or lags. In many cases, the user device uses a fixed buffer size. In some such cases, if the user of the user device stops presenting the media content item before presenting the stored portion, the server can send the portion of the media content item that was stored in the buffer but not presented. Sending the portion of the buffered but not presented media content item can be a waste of resources for both the server and the user device.

[0005] Accordingly, there is a desire to provide new methods, systems, and media for streaming video content. Summary of the Invention

[0006] Methods, systems, and media for streaming video content using an adaptive buffer are provided. (An “adaptive” buffer provides memory storage having a size (e.g., storage capacity) that can be changed as needed, while a fixed buffer provides memory storage of a fixed size)

[0007] According to some embodiments of the disclosed subject matter, a method for streaming video content using a buffer is provided. The method includes: sending a request for streaming a video content item from a user device to a server; receiving, at the user device, a predicted abandonment distribution from the server, the predicted abandonment distribution indicating a plurality of likelihoods that a user of the user device stops presenting the video content item at corresponding multiple presentation time points of the video content item; receiving, at the user device, a first portion of the video content item from the server; storing the first portion of the video content item in a buffer of the user device having a first size; causing the user device to present the video content item; determining a second size of the buffer based on the predicted abandonment distribution; modifying the size of the buffer to the second size; requesting, based on the second size of the buffer, a second portion of the video content item from the server; receiving the second portion of the video content item from the server; and storing the second portion of the video content item in the buffer having the second size while continuing to present the video content item. Generally, the presentation time points at which the predicted abandonment distribution indicates the corresponding likelihoods that the user of the user device stops presenting the video content item include at least one time point between the start time point of the content item and the end time point of the content item, and may include a plurality of different time points between the start time point and the end time point of the content item. In addition, the presentation time points at which the predicted abandonment distribution indicates the corresponding likelihoods that the user of the user device stops presenting the video content item may include the end point of the video content item. As another example, the presentation time points at which the predicted abandonment distribution indicates the corresponding likelihoods that the user of the user device stops presenting the video content item may be at D / n, 2D / n... (n - 1)D / n, where n is a positive integer and D is the duration of the video content item, and optionally may also include the presentation time point at the end of the video content item.

[0008] In some embodiments, determining the second size of the buffer based on the predicted abandonment distribution includes: determining that a likelihood among the plurality of likelihoods that the user of the user device stops presenting the video content item is lower than a predetermined threshold; and in response to determining that the likelihood among the plurality of likelihoods is lower than the predetermined threshold, determining that the second size of the buffer will be greater than the first size.

[0009] In some embodiments, determining the second size of the buffer based on the predicted abandonment distribution includes: determining that a likelihood among the plurality of likelihoods that the user of the user device stops presenting the video content item is greater than a predetermined threshold; and in response to determining that the likelihood among the plurality of likelihoods is greater than the predetermined threshold, determining that the second size of the buffer will be less than the first size.

[0010] In some embodiments, the method further comprises: determining a third size of the buffer based on the predicted abandonment distribution; and modifying the size of the buffer to the third size when continuing to present the video content item.

[0011] In some embodiments, the predicted abandonment distribution is normalized to the duration of the video content item.

[0012] In some embodiments, the predicted abandonment distribution is calculated based on the duration of the video content item.

[0013] In some embodiments, the predicted abandonment distribution is calculated based on the characteristics of the video content item.

[0014] According to some embodiments of the disclosed subject matter, there is provided a system for streaming video content using a buffer, the system comprising a hardware processor configured to: send a request for streaming a video content item from a user device to a server; receive, at the user device, a predicted abandonment distribution from the server, the predicted abandonment distribution indicating a plurality of likelihoods that a user of the user device stops presenting the video content item at corresponding multiple presentation time points of the video content item; receive, at the user device, a first portion of the video content item from the server; store the first portion of the video content item in a buffer of the user device having a first size; cause the user device to present the video content item; determine a second size of the buffer based on the predicted abandonment distribution; modify the size of the buffer to the second size; request a second portion of the video content item from the server based on the second size of the buffer; receive the second portion of the video content item from the server; and store the second portion of the video content item in the buffer of the second size when continuing to present the video content item.

[0015] In accordance with some embodiments of the disclosed subject matter, a computer-readable medium is provided, which may be a non-transitory computer-readable medium, but these embodiments are not limited to non-transitory computer-readable media. In some embodiments, the computer-readable medium comprises computer-executable instructions that, when executed by a processor, cause the processor to perform a method for streaming video content using a buffer, the method comprising: sending a request for streaming a video content item from a user device to a server; receiving at the user device a predicted abandonment distribution from the server, the predicted abandonment distribution indicating a plurality of likelihoods that a user of the user device stops presentation of the video content item at corresponding multiple presentation time points of the video content item; receiving at the user device a first portion of the video content item from the server; storing the first portion of the video content item in a buffer of the user device having a first size; causing the user device to present the video content item; determining a second size of the buffer based on the predicted abandonment distribution; modifying the size of the buffer to the second size; requesting a second portion of the video content item from the server based on the second size of the buffer; receiving the second portion of the video content item from the server; and storing the second portion of the video content item in the buffer having the second size while continuing to present the video content item. In accordance with other embodiments of the disclosed subject matter, a computer-readable medium is provided, which may be a non-transitory computer-readable medium, but these embodiments are not limited to non-transitory computer-readable media comprising computer-executable instructions, wherein when executed by a processor, the instructions cause the processor to perform a method according to any of the embodiments or implementations described herein.

[0016] According to some embodiments of the disclosed subject matter, there is provided a system for streaming video content using a buffer, the system including: means for sending a request for streaming a video content item from a user device to a server; means for receiving, at the user device, a predicted abandonment distribution from the server, the predicted abandonment distribution indicating a plurality of likelihoods that a user of the user device stops presentation of the video content item at corresponding multiple presentation time points of the video content item; means for receiving, at the user device, a first portion of the video content item from the server; means for storing the first portion of the video content item in a buffer of the user device having a first size; causing the user device to present the video content item; means for determining a second size of the buffer based on the predicted abandonment distribution; means for modifying the size of the buffer to the second size; means for requesting a second portion of the video content item from the server based on the second size of the buffer; means for receiving the second portion of the video content item from the server; and means for storing the second portion of the video content item in the buffer having the second size while continuing to present the video content item. BRIEF DESCRIPTION OF THE DRAWINGS

[0017] The various objects, features, and advantages of the disclosed subject matter can be more fully understood when considered in conjunction with the following detailed description of the disclosed subject matter, taken in conjunction with the following drawings, in which like reference numerals refer to like elements.

[0018] Figure 1 Illustrative examples of processes for streaming video content using an adaptive buffer in accordance with some embodiments of the disclosed subject matter are shown.

[0019] Figure 2 Illustrative examples of processes for generating a predicted abandonment distribution in accordance with some embodiments of the disclosed subject matter are shown.

[0020] Figure 3 A schematic diagram of an illustrative system suitable for implementing the mechanisms for streaming video content using an adaptive buffer described herein in accordance with some embodiments of the disclosed subject matter is shown.

[0021] Figure 4 Illustrative examples of Figure 3 hardware that can be used in a server and / or user device in accordance with some embodiments of the disclosed subject matter are shown. DETAILED DESCRIPTION

[0022] In accordance with various embodiments, mechanisms for streaming video content using an adaptive buffer (which can include methods, systems, and media) are provided.

[0023] In some embodiments, the mechanisms described herein can modify the size of a buffer used to store media content being streamed based on the likelihood that a user viewing the media content will stop the presentation of the media content before the end of the media content (sometimes referred to as video playback abandonment).

[0024] In some embodiments, a server streaming a media content item to a user device can send a predicted abandonment distribution to the user device, the predicted abandonment distribution indicating the likelihood that a user of the user device will stop presenting the media content item at different playback time points within the media content item. In some embodiments, the user device can receive the predicted abandonment distribution and can modify the size of a buffer used by the user device to store a portion of the media content item received from the server before the user device presents the portion of the video content item. In some embodiments, the user device can modify the size of the buffer in any suitable manner. For example, in some embodiments, the user device can initially store a portion of the streamed media content item in a buffer of a first size and, in response to receiving a predicted abandonment distribution indicating that a user of the user device is relatively likely to stop the presentation of the media content item, can reduce the size of the buffer such that less of the media content item is requested from the server and stored by the user device. Conversely, in response to receiving a predicted abandonment distribution indicating that a user of the user device is less likely to stop the presentation of the media content item, the user device can increase the size of the buffer such that more of the media content item is requested from the server and stored by the user device.

[0025] In some embodiments, the mechanisms described herein can determine a predicted abandonment distribution in any suitable manner and based on any suitable information. For example, in some embodiments, a server streaming media content to a user device can determine a predicted abandonment distribution for a particular media content item, the predicted abandonment distribution indicating the likelihood that a user viewing the media content item will stop presenting the media content item at different presentation time points of the media content item. In some embodiments, a predicted abandonment distribution for a particular media content item can be determined based on any suitable information associated with the media content item, such as the duration of the media content item, whether the media content item includes music, whether the media content item is inline inserted in a website (e.g., in a list of media content items) or a social network post, whether the media content item is configured to autoplay, whether the audio content associated with the media content item is muted by default, and / or any other suitable information. In some embodiments, a predicted abandonment distribution for a particular media content item can be determined based on the prior viewing of other users of the media content item, where the prior viewing of other users of the media content item is, for example, the percentage of users who have viewed the media content item in its entirety, the average duration that users have viewed the media content item before stopping the presentation of the media content item, and / or any other suitable prior viewing information.

[0026] Note that although the mechanisms described herein are generally described as being related to video content, in some embodiments, the mechanisms described herein can be used in connection with streaming any suitable type of media content, where any suitable type of media content can be, for example, audio content (e.g., music, podcasts, live audio content, and / or any other suitable type of audio content), video content (e.g., videos, television shows, movies, live video content, games, and / or any other suitable type of video content), and / or any other suitable type of media content).

[0027] Turning Figure 1 to, an illustrative example 100 of a process for streaming video content using an adaptive buffer in accordance with some embodiments of the disclosed subject matter is shown. In some embodiments, the blocks of process 100 can be performed on any suitable user device, any suitable user device such as a mobile phone, a tablet computer, a laptop computer, a desktop computer, a smart television, a media player, a streaming media device connected to a display device, a gaming console, and / or any other suitable type of user device.

[0028] Process 100 can begin at 102 by sending a request to stream a video content item from the user device to a server. In some embodiments, the video content item can correspond to any suitable type of video content, such as user-generated videos, music videos, television shows, movies, live videos, and / or any other suitable type of video content. In some embodiments, process 100 can send the request to stream a video content item in response to any suitable information. For example, in some embodiments, in response to receiving user input at the user device indicating a selection of a video content item, process 100 can send the request to stream the video content item. As another example, in some embodiments, process 100 can send the request to stream a video content item in response to determining that a page (e.g., a browser window, a feed of a social networking service, and / or any other suitable page) has scrolled to a portion that includes the video content item embedded therein. Note that in some embodiments, the request to stream a video content item can be sent from the user device by any suitable application executed on the user device. In some such embodiments, the application can be associated with any suitable entity or service, such as a media content sharing service that hosts and / or streams the requested video content item, a social networking service, and / or any other suitable entity or service.

[0029] In some embodiments, a request to stream a video content item may include any suitable information, such as an identifier of the video content item, information related to the user device executing process 100 (e.g., the model of the user device, the identifier of the user device, the screen size or resolution of the display of the user device, the current orientation of the user device and / or the display associated with the user device, buffer capacity information and / or any other suitable device information), information related to the network connection of the user device (e.g., the current bandwidth of the network connection, the current latency of the network connection, the current signal strength associated with the network connection and / or any other suitable network information) and / or any other suitable information) and / or any other suitable information.

[0030] At 104, process 100 may receive a predicted abandonment distribution corresponding to the video content item from the server. In some embodiments, the predicted abandonment distribution may indicate any suitable information. For example, in some embodiments, the predicted abandonment distribution may indicate the probability or likelihood that a user viewing the video content item will stop presenting the video content item at different time points of the video content item. In some embodiments, the predicted abandonment distribution may be normalized to the length of the video content item such that the predicted abandonment distribution indicates a predicted abandonment probability starting from [0,1], where 0 indicates the initial time point of the video content item and 1 indicates the complete duration of the video content item. An example of a predicted abandonment distribution may be: {(0.25, 40); (0.5, 80);(1, 90)}, indicating that the likelihood that the user will stop presenting the video content item at 0.25 of the duration of the video content item is 40%, the likelihood that the user will stop presenting the video content item at 0.5 of the duration of the video content item is 80%, and the likelihood that the user will stop presenting the video content item at the complete length of the duration of the video content item is 90%. In some embodiments, the predicted abandonment distribution may indicate the probability at any suitable number of time points of the video content item. For example, in some embodiments, the predicted abandonment distribution may indicate probabilities along a continuous time distribution. As another example, in some embodiments, the predicted abandonment distribution may indicate probabilities at any suitable predetermined intervals of the complete duration of the video content item (e.g., at intervals of 0.1 of the duration of the video content item, at intervals of 0.01 of the duration of the video content item and / or at any other suitable intervals). As yet another example, in some embodiments, the predicted abandonment distribution may indicate probabilities at any suitable predetermined time points of the video content item (e.g., every second, every ten seconds, every minute and / or at any other suitable time point).

[0031] In some embodiments, the predicted abandonment distribution may allow the user device to calculate the probability that a user of the user device will stop presenting the video content item between the current time t0 and a future time t, e.g.: In some embodiments, the probability can be expressed as: where F represents the abandonment distribution calculated by the server, and where S represents the probability that the user will view the video content item at least until time t0. Note that in some embodiments, . The following combines Figure 2 202 to describe in more detail the technique for calculating the abandonment distribution F.

[0032] Note that in some embodiments, the predicted abandonment distribution can be determined by the server in any suitable manner and based on any suitable information (such as the information shown in Figure 2 and described below in connection with Figure 2 ).

[0033] At 106, the user device may receive a first portion of the video content item from the server. In some embodiments, the first portion of the video content item may correspond to any suitable portion of the video content item and may have any suitable size (e.g., a specific number of kilobytes of data and / or any other suitable size) and / or duration (e.g., one second, two seconds, five seconds, and / or any other suitable duration).

[0034] At 108, process 100 may store the first portion of the video content item in a buffer of the user device having a first size. In some embodiments, the first size of the buffer may be set based on any suitable information. For example, in some embodiments, the first size of the buffer may be a default value (e.g., a default value set by the user device, a default value set by an application executing on the user device for streaming media content, and / or any other suitable default value). In some embodiments, the first size of the buffer may correspond to any suitable size (e.g., a predetermined number of frames of media content, a predetermined size of the first portion of the video content item, and / or any other suitable size) and / or any suitable video content duration (e.g., two seconds, five seconds, ten seconds, and / or any other suitable duration).

[0035] At 110, process 100 may begin presenting a first portion of a video content item. In some embodiments, process 100 may begin presenting the first portion of the video content item in any suitable manner. For example, in some embodiments, process 100 may cause the first portion of the video content item to be retrieved from a buffer before presenting the first portion of the video content item. As another example, in some embodiments, process 100 may cause the first portion of the video content item to be presented within a video player window presented on a user device executing process 100. In some such embodiments, the video player window may be presented within any suitable user interface, such as a user interface presented within an application for streaming media content from a particular media content sharing service, a user interface presented within a browser window, and / or any other suitable user interface.

[0036] At 112, process 100 may determine an updated buffer size based on a predicted abandonment distribution. In some embodiments, process 100 may determine the updated buffer size in any suitable manner. For example, in some embodiments, process 100 may determine the updated buffer size in response to determining that a predicted likelihood of abandonment exceeds a predetermined threshold (e.g., greater than a 50% likelihood that the user will stop presenting the video content item, greater than a 70% likelihood that the user will stop presenting the video content item, and / or any other suitable likelihood), such that the updated buffer size is less than a first size of the buffer. As another example, in some embodiments, process 100 may determine the updated buffer size in response to determining that the predicted likelihood of abandonment is below a predetermined threshold (e.g., less than a 10% likelihood that the user will stop presenting the video content item, less than a 20% likelihood that the user will stop presenting the video content item, and / or any other suitable likelihood), such that the updated buffer size is greater than the first size of the buffer. Note that in some embodiments, any suitable predetermined threshold may be used to determine whether to increase or decrease the buffer size.

[0037] Note that in some embodiments, process 100 may determine the updated buffer size based on a predicted likelihood of abandonment within a particular time range. For example, in some embodiments, process 100 may determine the updated buffer size based on a predicted likelihood of abandonment within a predetermined duration starting from the current presentation time point of the video content item (e.g., within the next minute, within the next five minutes, and / or any other suitable duration). As a more specific example, using the The abandonment probability distribution, where t0 indicates the current time, and process 100 can determine the probability that the user of the user equipment will stop presenting the video content item between the current time t0 and a future time t, where t is any suitable predetermined duration in the future (e.g., five seconds, ten seconds, one minute, three minutes, five minutes, and / or any other suitable duration). Note that in some embodiments, the future time t can be determined based on the current buffer size (e.g., the first buffer size as described above in connection with 108). For example, in the case where the current buffer size corresponds to a specific duration of the video content item (e.g., five seconds, ten seconds, and / or any other suitable duration), the future time t can correspond to the duration of the video content item associated with the current buffer size. Additionally or alternatively, note that in some embodiments, the future time t can be determined based on the total duration of the video content item.

[0038] In some embodiments, process 100 can use any suitable technique or combination of techniques to determine an updated buffer size based on the predicted abandonment distribution. For example, in some embodiments, process 100 can modify the size of the buffer from a first size by increasing or decreasing the buffer size by a fixed amount. As another example, in some embodiments, process 100 can determine a change in the buffer size based on the likelihood that the user of the user equipment will stop presenting the video content item (as calculated using the predicted abandonment distribution). As a more specific example, in the case where process 100 determines to increase the buffer size based on determining that the likelihood that the user will stop presenting the video content item is below a predetermined threshold, process 100 can determine the size of the buffer size increase based on the amount by which the likelihood is below the predetermined threshold. As a specific example, in the case where process 100 calculates the likelihood that the user will stop presenting the video content item as 40% and the predetermined threshold is 60%, process 100 can determine that the buffer size will increase by a first amount (e.g., hold an additional three seconds of the video content item, hold an additional five seconds of the video content item, and / or any other suitable amount). Continuing with this specific example, in the case where process 100 calculates the likelihood that the user will stop presenting the video content item as 10% and the predetermined threshold is 60%, process 100 can determine that the buffer size will increase by a second amount greater than the first amount. Note that in some embodiments, for example, in response to determining that the likelihood that the user will stop presenting the video content item exceeds a predetermined threshold, process 100 can use a similar technique to determine an updated buffer size that is less than the first buffer size.

[0039] At 114, process 100 may modify the buffer size from a first size to an updated buffer size. In some embodiments, process 100 may modify the buffer size in any suitable manner. For example, in some embodiments, process 100 may send a function call to any suitable function that allocates a buffer for media content. In some such embodiments, process 100 may send the updated buffer size as a parameter, for example, to a buffer controller.

[0040] At 116, process 100 may request a second portion of a video content item from a server. In some embodiments, process 100 may request the second portion of the video content item based on any suitable information. For example, in some embodiments, in response to determining that the amount of video content stored in the buffer has dropped below a predetermined threshold (e.g., less than a predetermined duration of the video content item remaining in the buffer and / or any other suitable amount of video content items), process 100 may request the second portion of the video content item. As another example, in some embodiments, process 100 may request the second portion of the video content item in response to determining that more than a predetermined amount of the first portion of the video content item has been presented. Note that in some embodiments, process 100 may send an indication of the updated buffer size to the server.

[0041] Note that in some embodiments, based on a determination of whether a time delay has elapsed between requests for portions of a video content item since a previous request for a portion (e.g., since a request for streaming a video content item sent at 102 and / or any other suitable previously sent request), process 100 may request the second portion of the video content item from the server. In some embodiments, the time delay may be determined based on a predicted abandonment distribution. For example, in the case of a given example prediction probability that a user will stop presenting a video content item between t and t0 as given by the formula quoted below: The probability may be expressed as: In some embodiments, x may represent the media position that a user device executing process 100 is to reach before the abandonment probability drops to a threshold P. In some embodiments, the abandonment distribution may be expressed as: In some embodiments: In some embodiments, the time may be calculated as: The time delay may be calculated as:

[0042] At 118, process 100 may receive a second portion of a video content item from a server in response to a request. In some embodiments, the second portion of the video content item may have any suitable size or duration. Note that in some embodiments, the second portion of the video content item may have a size or duration different from the size or duration of the first portion of the video content item described above in connection with 106. For example, in some embodiments, the second portion of the video content item may have a size or duration corresponding to an updated buffer size. As a more specific example, in some embodiments, in the case where process 100 modifies the buffer size (e.g., as described above in connection with 114) to have a buffer size relatively smaller than the first size of the buffer, the second portion of the video content item may have a size or duration smaller than the first portion of the video content item. As another more specific example, in some embodiments, in the case where process 100 modifies the buffer size (e.g., as described above in connection with 114) to have a buffer size relatively larger than the first size of the buffer, the second portion of the video content item may have a size or duration larger than the first portion of the video content item.

[0043] At 120, when continuing to present the video content item, process 100 may store the second portion of the video content item in the buffer. In some embodiments, process 100 may continue to present the video content item in any suitable manner. For example, in some embodiments, process 100 may continue to retrieve portions of the video content item from the buffer and present the retrieved portions of the video content item in a video player window, such as described above in connection with 106.

[0044] In some embodiments, process 100 may loop back to 112 and may determine an updated buffer size based on a predicted abandonment distribution (i.e., may determine a third size of the buffer of the user device), and may modify the buffer size to the updated (third) buffer size at 114 when continuing to present the content item. Note that in some embodiments, process 100 may sequentially change the size of the buffer multiple times during the presentation of a video content item based on the predicted abandonment distribution. In some such embodiments, process 100 may change the size of the buffer any suitable number of times (e.g., once, twice, three times, ten times, and / or any other suitable number of times) during the presentation of a video content item. As a specific example, in a case where the predicted abandonment distribution indicates that a user is relatively likely to stop the presentation of a video content item at the beginning of the video content item, process 100 may cause the buffer to have a relatively small size during the presentation of the beginning portion of the video content item. Continuing with this example, in a case where the user does not stop the presentation of the video content item during the beginning portion of the video content item and where the predicted abandonment distribution indicates that the user is less likely to stop the presentation of the video content item during the middle portion of the video content item, process 100 may increase the buffer size during the presentation of the middle portion of the video content item. Further continuing with the example, in a case where the user does not stop the presentation of the video content item during the middle portion of the video content item and where the predicted abandonment distribution indicates that the user may stop the presentation of the video content item during the ending portion of the video content item before the full duration of the video content item, process 100 may decrease the buffer size during the presentation of the ending portion of the video content item.

[0045] Turning Figure 2 , an illustrative example 200 of a process for determining a predicted abandonment distribution in accordance with some embodiments of the disclosed subject matter is shown. In some embodiments, the blocks of process 200 may be performed by a server (e.g., a server that hosts and / or streams media content to a user device). Note that in some embodiments, the server may be associated with a particular media content sharing service that hosts any suitable media content (e.g., user-generated media content, videos, television shows, movies, music, and / or any other suitable type of media content) and streams the media content to the user device.

[0046] Process 200 may begin by computing a predicted abandonment distribution of a video content item at 202. As described above in connection with Figure 1As described in 104 above, in some embodiments, the predicted abandonment distribution may indicate any suitable information. For example, in some embodiments, the predicted abandonment distribution may indicate the probability or likelihood that a user viewing a video content item will stop presenting the video content item at different time points of the video content item. In some embodiments, the predicted abandonment distribution may be normalized to the length of the video content item such that the predicted abandonment distribution indicates a predicted abandonment probability starting from [0,1], where 0 represents the initial time point of the video content item and where 1 indicates the complete duration of the video content item. As described above in connection with Figure 1 As described in 104 above, examples of the predicted abandonment distribution may include the following values: {(0.25, 40); (0.5, 80); (1, 100)}, indicating a 40% likelihood that the user will stop presenting the video content item at 0.25 of the video content item duration, an 80% likelihood that the user will stop presenting the video content item at 0.5 of the video content item duration, and a 100% likelihood that the user will stop presenting the video content item at the complete length of the video content item duration. Note that in some embodiments, the predicted abandonment distribution may be a completely continuous distribution such that the predicted abandonment probability can be calculated at any time point. Alternatively, in some embodiments, the predicted abandonment distribution may indicate the probability for any suitable number of time points of the video content item. For example, in some embodiments, the predicted abandonment distribution may indicate the probability at any suitable predetermined interval of the complete duration of the video content item (e.g., at an interval of 0.1 of the video content item duration, at an interval of 0.01 of the video content item duration, and / or at any other suitable interval). As another example, in some embodiments, the predicted abandonment distribution may indicate the probability at any suitable predetermined time point of the video content item (e.g., every second, every ten seconds, every minute, and / or at any other suitable time point).

[0047] In some embodiments, process 200 may calculate a predicted abandonment distribution in any suitable manner and using any suitable techniques. For example, in some embodiments, process 200 may model any suitable distribution indicating the likelihood or probability that a user will stop the presentation of a video content item at different points along the distribution. In some embodiments, process 200 may use data related to video content items previously viewed by any suitable group of users to generate a model. Note that in some embodiments, process 200 may use a dataset of any suitable size (e.g., thousands of previously viewed video content items, millions of previously viewed video content items, and / or any other suitable size) to generate a model. Additionally, note that in some embodiments, process 200 may preprocess the data used to generate the model in any suitable manner before generating the model. For example, in some embodiments, process 200 may discard any suitable outliers, such as video content items with a duration of zero time viewed (indicating that the video content item was accidentally selected) and / or any other suitable outliers. In some embodiments, the duration of a video content item may be normalized such that the distribution of the range spans [0,1]. In some embodiments, any suitable distribution may be used, such as the Kumaraswamy distribution, the Beta distribution, the logit transformation distribution, and / or any other suitable distribution.

[0048] In some embodiments, process 200 may model the distribution using any suitable technique or combination of techniques. For example, in some embodiments, the distribution may be modeled as a single inflated mixture of regressions. As a more specific example, in some embodiments, the distribution may be modeled as a mixture or combination of two or more regressions, such as a first regression that models the likelihood that a user views an entire video content item and a second regression that models the likelihood that a user stops presenting the video content item at different time points. In some embodiments, each regression included in the mixture of regressions may be a different type of regression (e.g., Kumaraswamy regression, Beta regression, logistic regression, and / or any other suitable type of regression). For example, in some embodiments, the first regression that models the likelihood that a user views an entire video content item may be a logistic regression, while the second regression that models the likelihood that a user stops presenting the video content item at different time points may be a Kumaraswamy regression. Note that in some embodiments, the first regression that models the likelihood that a user views an entire video content item may be any suitable type of classifier, such as a gradient boosted tree classifier and / or any other suitable type of classifier. Additionally, note that in some embodiments, each regression in the mixture of regressions may have any suitable number of terms corresponding to any suitable components or predictors, and may have any suitable number of cross terms. For example, in some embodiments, both the first regression and the second regression of the mixture of regressions may include the same predictors and the same cross terms. As another example, in some embodiments, the second regression may be a Kumaraswamy regression that includes any suitable quadratic terms.

[0049] Note that in some embodiments, in the case where process 200 generates a mixture of regressions where the first regression models the likelihood that a user views a complete video content item, process 200 may determine during the generation of the training dataset whether the video content items included in the training set are viewed in their entirety in any suitable manner. For example, in some embodiments, process 200 may determine (e.g., using log data associated with the playback of each video content item) whether the state of the video player used to present the video content item changes in any suitable manner, indicating that the video content item is presented in its entirety by the video player.

[0050] Additionally, note that in some embodiments, in addition to generating a mixture of regressions as described above, in some embodiments, process 200 may process the data used to generate the model to shrink the data points to any suitable intermediate value, such as 0.5, such that the data does not contain zero or one values. In some embodiments, process 200 may transform the data points to shrink the data points using any suitable shrinkage function.

[0051] In some embodiments, each regression can be based on a different set of predictors used to generate the regression. In some embodiments, the set of predictors can include any suitable factors or variables. For example, in some embodiments, the set of predictors can include characteristics of the video content item, such as the duration of the video content item, the logarithm of the duration of the video content item, whether the video content item includes background music, whether the video content item is an advertisement, whether the video content item is a skippable advertisement, and / or any other suitable characteristics of the video content item. As another example, in some embodiments, the set of predictors can include characteristics related to the way the video content item is linked or embedded within other content (e.g., within a web page, within a social network post, within a message, and / or within any other suitable type of content), such as the type of interface in which the video content item is linked or embedded (e.g., whether the video content item is inline embedded in a website or social network post, whether the video content item is set to autoplay by default, whether the video content item is set to mute by default, whether the video content item is set to have muted audio content when inline embedded, and / or any suitable characteristics). As yet another example, in some embodiments, the set of predictors can include information indicating buffering of the video content item, such as the likelihood that a user will stop the presentation of the video content item in the case where the video content item is paused to rebuffer, the expected duration required to rebuffer the video content item, the expected number of times the video content item will be rebuffered, and / or any other suitable buffering information. As yet another example, in some embodiments, the set of predictors can include information related to the way other users have viewed the video content item previously, such as the average duration that previous users have viewed the video content item, the proportion of users who have viewed the video content item in its entirety, the proportion of users who stopped the presentation of the video content item before a particular presentation time point (e.g., before the midpoint of the video content item, before a particular presentation timestamp, and / or any other suitable time point), and / or any other suitable prior viewing information. As a further example, in some embodiments, the set of predictors can include seek information related to the way the video content item is currently or previously viewed, where a seek instruction during video playback can be considered playback abandonment.

[0052] In some embodiments, process 200 may use any suitable technique or combination of techniques to fit the regressions in the regression mixture. For example, in some embodiments, process 200 may use expectation maximization to generate coefficients for each predictor associated with each regression. As a more specific example, in some embodiments, the Kumaraswamy regression used in the regression mixture may have distribution parameters that depend on any suitable predictor variable (as described above) through the following relationships: log(a) = P * X and log(b) = Q * X, where P and Q are coefficient matrices and X is a covariate vector. In some embodiments, process 200 may use maximum likelihood estimation to estimate the model parameters (e.g., coefficient matrices P and Q) using any suitable technique or combination of techniques (e.g., the Newton - Raphson method and / or any other suitable technique). As another example, in some embodiments, in the case where logistic regression is used to model a first regression indicating the likelihood that a user will view a full video content item, any suitable technique or combination of techniques may be used to calculate the coefficients associated with any suitable predictor of the logistic regression.

[0053] At 204, process 200 may receive a request for a portion of a video content item from a user device. In some embodiments, process 200 may receive a request for a portion of a video content item in any suitable manner. For example, in some embodiments, process 200 may receive an indication that a user of the user device has selected a particular video content item for presentation on the user device. As another example, in some embodiments, process 200 may receive an indication that a page in which the video content item is embedded has been navigated such that the video content item is visible.

[0054] Note that in some embodiments, process 200 may receive any suitable information related to the user device from the user device (e.g., the model of the user device, the identifier of the user device, the screen size or resolution of the display associated with the user device, the current orientation of the user device and / or the display associated with the user device, and / or any other suitable information) and / or any suitable information related to the connection of the user device and the communication network for receiving streamed media content (e.g., the current bandwidth of the connection, the current latency of the connection, the current signal strength of the connection, the identifier of the connection type, and / or any other suitable information).

[0055] At 206, process 200 may send a predicted abandonment distribution corresponding to the requested video content item to the user device. In some embodiments, process 200 may send the predicted abandonment distribution in any suitable manner. For example, in the case where the predicted abandonment distribution is a continuous distribution, process 200 may send the parameters of the continuous distribution to the user device. As another example, in some embodiments, process 200 may format the predicted abandonment distribution as an array, where a first set of elements of the array indicates different time points of the video content item normalized from 0 to 1, and where a second set of elements of the array indicates the likelihood that a user viewing the video content item will stop presenting the video content item at each corresponding time point. In some such embodiments, process 200 may send the array to the user device.

[0056] At 208, process 200 may send a portion of the video content item to the user device. Note that in some embodiments, process 200 may identify the file corresponding to the portion of the video content item before sending the portion of the video content item to the user device. For example, in some embodiments, process 200 may identify the file corresponding to a version of the portion of the video content item, the version of the portion of the video content item being identified based on information associated with the user device and / or information associated with the connection of the user device and the communication network. As a more particular example, in some embodiments, process 200 may identify the version of the video content item associated with a particular resolution based on the screen size of the display associated with the user device. As another more particular example, in some embodiments, process 200 may identify the version of the video content item associated with a particular resolution based on the current bandwidth of the network connection.

[0057] At 210, process 200 may optionally receive a request for a second portion of the video content item from the user device. In some embodiments, the request for the second portion of the video content item may include any suitable information. For example, in some embodiments, the request for the second portion of the video content item may include an updated buffer size used by the user device, such as that described above in connection with Figure 1as described in 112-116. As another example, in some embodiments, a request for a second portion of a video content item may include any suitable network information related to the network connection used by the user equipment (e.g., the current bandwidth associated with the connection, the current latency associated with the connection, the current signal strength associated with the connection, and / or any other suitable network information). As yet another example, in some embodiments, a request for a second portion of a video content item may include device information related to the user equipment (e.g., the current buffer capacity of the user equipment, the current buffer size of the buffer used by the user equipment, the current display orientation of the display associated with the user equipment, and / or any other suitable information).

[0058] At 212, process 200 may send the second portion of the video content item to the user equipment in response to receiving the request. In some embodiments, process 200 may identify the file before sending the video data included in the file associated with the second portion of the video content item. For example, in some embodiments, process 200 may identify the file corresponding to a particular resolution of the video content based on any suitable information, such as based on the current network information associated with the network connection of the user equipment, based on the resolution or size of the display associated with the user equipment, and / or based on any other suitable information. Note that in some embodiments, the second portion of the video content item may have any suitable size or duration. For example, in some embodiments, the second portion of the video content item may have a size and / or duration corresponding to the updated buffer size used by the user equipment. As a more specific example, in some embodiments, in the case where the request for the second portion of the video content item indicates that the user equipment has modified the size of the buffer to be smaller than the buffer size used to store the first portion of the video content item (e.g., sent at 208), process 200 may send a second portion of the video content item that is smaller and / or has a duration shorter than the first portion of the video content item. Conversely, in the case where the request for the second portion of the video content item indicates that the user equipment has modified the size of the buffer to be larger than the buffer size used to store the first portion of the video content item, process 200 may send a second portion of the video content item that is larger and / or has a duration longer than the first portion of the video content item.

[0059] Note that, in some embodiments, in the case where the video content item is an advertisement, process 200 may send a portion of the video content item that is more than what the user device has requested. For example, in some embodiments, in the case where the request for the second portion of the video content item indicates that the size of the second portion is relatively small and / or the duration is relatively short (e.g., in response to determining that the user of the user device may stop the presentation of the video content item), in response to determining that the video content item is an advertisement, process 200 may send more than the requested amount or duration of the video content item.

[0060] In some embodiments, process 200 may loop back to 210 and may receive another request for another portion of the video content item. In some such embodiments, process 200 may loop through 210 and 212 until the entire video content item has been streamed to the user device or process 200 receives an indication that the user of the user device has stopped presenting the video content item.

[0061] Note that although processes 100 and 200 are generally described as the user device receiving a predicted abandonment distribution, determining a buffer size based on the predicted abandonment distribution, and modifying the buffer size based on the determined buffer size, in some embodiments, the server may determine an updated buffer size according to the predicted abandonment distribution. For example, similar to what is described above in connection with Figure 1 box 112, in some embodiments, the server may determine whether to increase or decrease the buffer size based on the predicted abandonment distribution. In some embodiments, the server may then send an indication of the buffer size change to the user device. Additionally, in some embodiments, the server may change the size of a portion of the video content item sent to the user device. For example, in the case where the first portion of the video content item sent to the user device has a first size or a first duration and the server determines that the buffer size will become smaller (e.g., in response to determining that the likelihood that the user will stop the presentation of the video content item is relatively high), the server may send a second portion of the video content item having a relatively small size or a relatively short duration. Conversely, in the case where the server determines that the buffer size will become larger (e.g., in response to determining that the likelihood that the user will stop the presentation of the video content item is relatively low), the server may send a second portion of the video content item having a relatively large size or a relatively long duration. Additionally or alternatively, in some embodiments, the server may calculate the time delay between the times when portions of the video content item will be sent, where the time delay corresponds to the duration of the video content item that the user device is buffering. In some such embodiments, the server may pause sending subsequent portions of the video content item to the user device until the server determines that the time delay has elapsed. Note that, in some such embodiments, the time delay used by the server may be modified based on the predicted abandonment distribution during the streaming of the video content item.

[0062] Steering Figure 3 Figure 3 illustrates an illustrative example 300 of hardware for using an adaptive buffer to stream video content that can be used, according to some embodiments of the disclosed subject matter. As shown, the hardware 300 may include a server 302, a communication network 304, and / or one or more user devices 306, such as user devices 308 and 310.

[0063] The server 302 may be any suitable server for storing information, data, programs, media content, and / or any other suitable content. In some embodiments, the server 302 may perform any suitable function. For example, in some embodiments, the server 302 may send media content (e.g., video content, audio content, and / or any other suitable audio content) to a user device, such as one of the user devices 306. As a more specific example, in some embodiments, the server 302 may stream media content to a user device in response to a request for the media content. As another example, in some embodiments, the server 302 may determine a predicted abandonment distribution that indicates the likelihood that a user of a user device streaming a media content item from the server 302 will stop presenting the media content item at different presentation time points of the media content item, such as in conjunction with Figure 2 shown and described above.

[0064] In some embodiments, the communication network 304 may be any suitable combination of one or more wired and / or wireless networks. For example, the communication network 304 may include the Internet, an intranet, a wide area network (WAN), a local area network (LAN), a wireless network, a digital subscriber line (DSL) network, a frame relay network, an asynchronous transfer mode (ATM) network, a virtual private network (VPN), and / or any other suitable communication network. The user device 306 may be linked to the communication network 304 via one or more communication links (e.g., communication link 312), and the communication network 304 may be linked to the server 302 via one or more communication links (e.g., communication link 314). The communication link may be any communication link suitable for transmitting data between the user device 306 and the server 302, such as a network link, a dial-up link, a wireless link, a hardwired link, any other suitable communication link, or any suitable combination of these links.

[0065] The user device 306 may include any one or more user devices suitable for streaming media content from the server 302. In some embodiments, the user device 306 may include any suitable type of user device, such as a mobile phone, a tablet computer, a wearable computer, a laptop computer, a desktop computer, a smart TV, a media player, a gaming console, a vehicle infotainment system, and / or any other suitable type of user device. In some embodiments, the user device 306 may adaptively modify the size of a buffer for storing media content received from the server 302 during the streaming of the media content. For example, in some embodiments, the user device 306 may modify the size of the buffer based on a predicted abandonment distribution received from the server 302, which indicates the likelihood that the user device 306 will continue to present a media content item, as shown and described above in connection with Figure 1 shown and described above.

[0066] Although the server 302 is shown as one device, in some embodiments, any suitable number of devices may be used to perform the functions performed by the server 302. For example, in some embodiments, multiple devices may be used to implement the functions performed by the server 302.

[0067] Although Figure 3 two user devices 308 and 310 are shown in

[0068] to avoid cluttering the figure, in some embodiments any suitable number and / or any suitable type of user devices may be used. Figure 4 In some embodiments, any suitable hardware may be used to implement the server 302 and the user device 306. For example, in some embodiments, any suitable general-purpose computer or special-purpose computer may be used to implement the devices 302 and 306. For example, a special-purpose computer may be used to implement a mobile phone. Any such general-purpose computer or special-purpose computer may include any suitable hardware. For example, as shown in the example hardware 400 of

[0069] In some embodiments, the hardware processor 402 may include any suitable hardware processor, such as a microprocessor, a microcontroller, a digital signal processor, dedicated logic, and / or any other suitable circuitry for controlling the functions of a general-purpose computer or a special-purpose computer. In some embodiments, the hardware processor 402 may be controlled by a server program stored in the memory and / or storage device of the server (server 302). In some embodiments, the hardware processor 402 may be controlled by a computer program stored in the memory and / or storage device 404 of the user device 306.

[0070] In some embodiments, the memory and / or storage device 404 may be any suitable memory and / or storage device for storing programs, data, and / or any other suitable information. For example, the memory and / or storage device 404 may include random access memory, read-only memory, flash memory, hard disk storage, optical media, and / or any other suitable memory. An adaptive buffer may be defined, for example, by the hardware processor 402 in the memory and / or storage device 404.

[0071] In some embodiments, the input device controller 406 may be any suitable circuitry for controlling and receiving inputs from one or more input devices 408. For example, the input device controller 406 may be circuitry for receiving inputs from a touch screen, from a keyboard, from one or more buttons, from a voice recognition circuit, from a microphone, from a camera, from an optical sensor, from an accelerometer, from a temperature sensor, from a near-field sensor, from a pressure sensor, from an encoder, and / or from any other type of input device.

[0072] In some embodiments, the display / audio driver 410 may be any suitable circuitry for controlling and driving outputs to one or more display / audio output devices 412. For example, the display / audio driver 410 may be circuitry for driving a touch screen, a flat panel display, a cathode ray tube display, a projector, one or more speakers, and / or any other suitable display and / or presentation device.

[0073] The communication interface 414 may be any suitable circuitry for interfacing with one or more communication networks (e.g., the computer network 304). For example, the interface 414 may include network interface card circuitry, wireless communication circuitry, and / or any other suitable type of communication network circuitry.

[0074] In some embodiments, the antenna 416 may be any suitable one or more antennas for wireless communication with a communication network (e.g., the communication network 304). In some embodiments, the antenna 416 may be omitted.

[0075] In some embodiments, bus 418 can be any suitable mechanism for communicating between two or more components 402, 404, 406, 410, and 414.

[0076] According to some embodiments, any other suitable components can be included in hardware 400.

[0077] In some embodiments, at least some of the above Figure 1 and Figure 2 process boxes can be executed or implemented in any order or sequence (not limited to the order and sequence shown and described in connection with the figures). Additionally, Figure 1 and Figure 2 some of the above boxes of and can be executed or implemented substantially simultaneously or in parallel, where appropriate, to reduce latency and processing time. Additionally or alternatively, some of the above boxes of the process of and can be omitted. Figure 1 and Figure 2

[0078] In some embodiments, any suitable computer-readable medium can be used to store instructions for performing the functions and / or processes herein. For example, in some embodiments, the computer-readable medium can be transient or non-transient. For example, a non-transitory computer-readable medium can include media such as non-transitory forms of magnetic media (e.g., hard disks, floppy disks, and / or any other suitable magnetic media), non-transitory forms of optical media (e.g., optical discs, digital video discs, Blu-ray discs, and / or any other suitable optical media), non-transitory forms of semiconductor media (e.g., flash memory, electrically programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), and / or any other suitable semiconductor media), any suitable media that does not transiently pass or have any persistence during transmission, and / or any suitable tangible media. As another example, a transient computer-readable medium can include signals on a network, wires, conductors, optical fibers, circuits, any suitable media that transiently pass and have no persistence during transmission, and / or any suitable intangible media.

[0079] Accordingly, methods, systems, and media for streaming video content using an adaptive buffer are provided.

[0080] Although the invention has been described and illustrated in the foregoing illustrative embodiments, it is to be understood that the disclosure has been made by way of example only, and that various changes in the details of implementation of the invention can be made without departing from the spirit and scope of the invention, which is defined solely by the appended claims. The features of the disclosed embodiments can be combined and rearranged in various ways.​

Claims

1. A method for streaming video content using a buffer, the method comprising: Receiving a request for streaming a video content item from a user device; Determining a predicted abandonment distribution that indicates a plurality of likelihoods that a user of the user device stops presenting the video content item at corresponding multiple presentation time points of the video content item, wherein the predicted abandonment distribution is normalized to the duration of the video content item; And Sending a first portion of the video content item to the user device based on the predicted abandonment distribution.

2. The method according to claim 1, wherein, The size of the first portion of the video content item sent to the user device is determined based on the predicted abandonment distribution.

3. The method according to claim 1, wherein, The predicted abandonment distribution is calculated based on the duration of the video content item.

4. The method according to claim 1, wherein The predicted abandonment distribution is calculated based on characteristics of the video content item.

5. The method according to claim 1 further comprises: Sending the predicted abandonment distribution to the user device.

6. The method according to claim 1, further comprising: Receiving a request for a second portion of the video content item from the user device; And Sending the second portion of the video content item based on the predicted abandonment distribution, wherein the second portion of the video content item has a different size from the first portion of the video content item.

7. The method according to claim 1, wherein The size of the buffer of the user device depends on the predicted abandonment distribution.

8. A system for streaming video content using a buffer, the system comprising: A memory; And A hardware processor coupled to the memory to perform operations, the operations comprising: Receiving a request for streaming a video content item from a user device; Determining a predicted abandonment distribution that indicates a plurality of likelihoods that a user of the user device stops presenting the video content item at corresponding multiple presentation time points of the video content item, wherein the predicted abandonment distribution is normalized to the duration of the video content item; and Sending a first portion of the video content item to the user device based on the predicted abandonment distribution.

9. The system according to claim 8, wherein The size of the first portion of the video content item sent to the user device is determined based on the predicted abandonment distribution.

10. The system according to claim 8, wherein, The predicted abandonment distribution is calculated based on the duration of the video content item.

11. The system according to claim 8, wherein, The predicted abandonment distribution is calculated based on characteristics of the video content item.

12. The system according to claim 8, wherein the operation further comprises: Sending the predicted abandonment distribution to the user device.

13. The system according to claim 8, the operations further comprising: Receiving a request for a second portion of the video content item from the user device; And Sending the second portion of the video content item based on the predicted abandonment distribution, wherein the second portion of the video content item has a different size from the first portion of the video content item.

14. The system according to claim 8, wherein, The size of the buffer of the user device depends on the predicted abandonment distribution.

15. A non-transitory computer-readable medium including instructions that, when executed by a processor, cause the processor to perform operations, the operations comprising: Receiving a request for streaming a video content item from a user device; Determine a predicted abandonment distribution that indicates a plurality of likelihoods that a user of the user equipment stops presenting the video content item at corresponding multiple presentation time points of the video content item, wherein the predicted abandonment distribution is normalized to the duration of the video content item; And Send a first portion of the video content item to the user equipment based on the predicted abandonment distribution.

16. The non-transitory computer-readable medium according to claim 15, wherein, The size of the first portion of the video content item sent to the user equipment is determined based on the predicted abandonment distribution.

17. The non-transitory computer-readable medium according to claim 15, wherein, The predicted abandonment distribution is calculated based on the duration of the video content item.

18. The non-transitory computer-readable medium according to claim 15, wherein, The predicted abandonment distribution is calculated based on the characteristics of the video content item.

19. The non-transitory computer-readable medium according to claim 15, wherein the operation further comprises: Send the predicted abandonment distribution to the user equipment.

20. The non-transitory computer-readable medium according to claim 15, wherein the operations further include: Receive a request for a second portion of the video content item from the user equipment; And Send the second portion of the video content item based on the predicted abandonment distribution, wherein the second portion of the video content item has a size different from that of the first portion of the video content item.