CN112672186B - Video preloading method and device - Google Patents

Video preloading method and device Download PDF

Info

Publication number
CN112672186B
CN112672186B CN202011449107.6A CN202011449107A CN112672186B CN 112672186 B CN112672186 B CN 112672186B CN 202011449107 A CN202011449107 A CN 202011449107A CN 112672186 B CN112672186 B CN 112672186B
Authority
CN
China
Prior art keywords
video
played
cache
bandwidth
threshold
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011449107.6A
Other languages
Chinese (zh)
Other versions
CN112672186A (en
Inventor
马茗
蒋鹏程
刘震岳
郭君健
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Dajia Internet Information Technology Co Ltd
Original Assignee
Beijing Dajia Internet Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Dajia Internet Information Technology Co Ltd filed Critical Beijing Dajia Internet Information Technology Co Ltd
Priority to CN202011449107.6A priority Critical patent/CN112672186B/en
Publication of CN112672186A publication Critical patent/CN112672186A/en
Application granted granted Critical
Publication of CN112672186B publication Critical patent/CN112672186B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

The present disclosure relates to a method and an apparatus for video preloading, the method comprising: when a current video is played and downloaded at a client, determining a bandwidth threshold value based on the playing code rate of the current video; predicting the downloading bandwidth of the client in a future preset time period, and executing a preloading task of the video to be played in the future preset time period under the condition that the predicted downloading bandwidth is larger than the bandwidth threshold.

Description

Video preloading method and device
Technical Field
The present disclosure relates to the field of audio technologies, and in particular, to a method and an apparatus for preloading a video.
Background
In the increasingly popular short video application services, it is a challenge to give users a smooth video viewing experience. On one hand, due to the dynamic property of the user network and the difference of the mobile phone performance, many users with poor network or mobile phone performance frequently jam and pause when watching videos, and are difficult to smoothly play high-definition videos, and on the other hand, when using short video applications, users are usually in a state of quickly consuming content, have strong watching experience appeal, and need to turn on and turn off videos ' in seconds ' smoothly '. In order to provide smooth video viewing experience for a user, a short video client is usually configured with a content prefetching device, that is, when the user uses a video app, a video content set to be viewed by the user in the future is estimated, a small segment of data of the videos is prefetched to the client in advance, and the user is enabled to start playing by using the local data directly when browsing in the future, so that the smooth video viewing experience is obtained. However, in order to avoid the problem that the network competition caused by the preloading task encroaches on the current video downloading bandwidth, so that the playing pause rate is increased and other experience deterioration problems are caused, the preloading efficiency is sacrificed to a great extent, and the user experience requirement of video opening in seconds and smoothness cannot be met.
Disclosure of Invention
The present disclosure is directed to a method and apparatus for video preloading that addresses at least the problems associated with the related art described above, and may not address any of the problems described above.
According to a first aspect of embodiments of the present disclosure, there is provided a method of video preloading, including: when a current video is played and downloaded at a client, determining a bandwidth threshold value based on the playing code rate of the current video; predicting the downloading bandwidth of the client in a future preset time period, and executing a preloading task of the video to be played in the future preset time period under the condition that the predicted downloading bandwidth is larger than the bandwidth threshold.
Optionally, the method may further comprise: and in the case that the predicted downloading bandwidth is less than or equal to the bandwidth threshold value, suspending the pre-loading task of the video to be played in the future predetermined time period.
Optionally, the determining the bandwidth threshold based on the playing rate of the current video may include: multiplying the playing code rate of the current video by a preset coefficient to obtain the bandwidth threshold; wherein the predetermined coefficient is a constant greater than 1.
Optionally, the predicting the download bandwidth of the client in the predetermined time period in the future may include: acquiring actual downloading bandwidth in each historical preset time period; and predicting the download bandwidth in the predetermined time period in the future by using exponential filtering based on the historical actual download bandwidth in each predetermined time period.
Optionally, the obtaining the actual download bandwidth of the history in each predetermined time period may include: performing the following for each of the predetermined time periods of the history: acquiring the total download data volume in the current preset time period; and dividing the total download data quantity by the duration of the preset time period to obtain the actual download bandwidth in the preset time period.
Optionally, the method may further comprise: when a current video is played and downloaded at a client, acquiring the video cache duration loaded by the current video in the client in real time; wherein, in the case that the predicted download bandwidth is greater than the bandwidth threshold, executing a preloading task of a video to be played in the future predetermined time period may include: under the condition that the video cache duration is smaller than a preset cache duration threshold value, suspending a preloading task of a video to be played; and executing the preloading task of the video to be played under the condition that the video cache time length is greater than or equal to the preset cache time length threshold.
Optionally, the predetermined cache duration threshold may include a first cache duration threshold, where suspending the pre-loading task of the video to be played when the video cache duration is less than the predetermined cache duration threshold, and executing the pre-loading task of the video to be played when the video cache duration is greater than or equal to the predetermined cache duration threshold may include: when a client side starts playing and downloads a current video, under the condition that the video cache time length does not reach the first cache time length threshold value, the pre-loading task of the video to be played is suspended, and the pre-loading task of the video to be played is resumed and executed until the video cache time length reaches the first cache time length threshold value.
Optionally, the predetermined cache duration threshold may include a second cache duration threshold, where suspending the pre-loading task of the video to be played when the video cache duration is less than the predetermined cache duration threshold, and executing the pre-loading task of the video to be played when the video cache duration is greater than or equal to the predetermined cache duration threshold may include: when the current video continues to be played and downloaded at the client after the cache duration of the current video reaches the first cache duration threshold, the preloading task of the video to be played is suspended under the condition that the video cache duration is smaller than the second cache duration threshold, and the preloading task of the video to be played is executed under the condition that the video cache duration is larger than or equal to the second cache duration threshold.
Optionally, the first buffer duration threshold may be greater than the second buffer duration threshold.
Optionally, the suspending the pre-loading task of the video to be played when the video cache duration is less than the second cache duration threshold, and suspending the pre-loading task of the video to be played when the video cache duration is greater than or equal to the second cache duration threshold may include: and under the condition that the video cache time length is reduced to be less than the second cache time length threshold, suspending the pre-loading task of the video to be played until the video cache time length is increased to reach the second cache time length threshold, and resuming the execution of the pre-loading task of the video to be played.
Optionally, the method may further comprise: and under the condition of suspending the pre-loading task of the video to be played, when the current video is completely downloaded at the client, restoring to execute the pre-loading task of the video to be played.
Optionally, the operation of predicting the download bandwidth of the client in a future predetermined time period may be performed every other predetermined time period, and in the case that the predicted download bandwidth is greater than the bandwidth threshold, the pre-loading task of the video to be played may be performed in the future predetermined time period.
According to a second aspect of the embodiments of the present disclosure, there is provided an apparatus for video preloading, including: a bandwidth control unit configured to: when a current video is played and downloaded at a client, determining a bandwidth threshold value based on the playing code rate of the current video; a preload unit configured to: and predicting the download bandwidth of the client in a future preset time period, and executing a preloading task of the video to be played in the future preset time period under the condition that the predicted download bandwidth is greater than the bandwidth threshold.
Optionally, the preload unit may be further configured to: and under the condition that the predicted downloading bandwidth is less than or equal to the bandwidth threshold, suspending the preloading task of the video to be played in the future preset time period, and resuming the execution of the preloading task of the video to be played when the current video is downloaded.
Optionally, the bandwidth control unit may be configured to: multiplying the playing code rate of the current video by a preset coefficient to obtain the bandwidth threshold; wherein the predetermined coefficient is a constant greater than 1.
Optionally, the preload unit may be configured to: acquiring actual downloading bandwidth in each historical preset time period; predicting a predicted download bandwidth in the predetermined time period in the future using exponential filtering based on historical actual download bandwidths in each of the predetermined time periods.
Optionally, the preload unit may be configured to: performing the following for each of the predetermined time periods of the history: acquiring the total download data volume in the current preset time period; and dividing the total download data quantity by the duration of the preset time period to obtain the actual download bandwidth in the preset time period.
Optionally, the apparatus may further comprise: a cache retrieval unit configured to: when a current video is played and downloaded at a client, acquiring the video cache duration loaded by the current video in the client in real time; wherein the preload unit may be configured to: and under the condition that the video cache time length is less than the preset cache time length threshold value, suspending the preloading task of the video to be played, and under the condition that the video cache time length is greater than or equal to the preset cache time length threshold value, executing the preloading task of the video to be played.
Optionally, the predetermined caching duration threshold may include a first caching duration threshold, wherein the preloading unit may be configured to: when a client side starts playing and downloads a current video, under the condition that the video cache time length does not reach the first cache time length threshold value, the pre-loading task of the video to be played is suspended, and the pre-loading task of the video to be played is resumed and executed until the video cache time length reaches the first cache time length threshold value.
Optionally, the predetermined caching duration threshold may include a second caching duration threshold, wherein the preloading unit may be configured to: when the current video continues to be played and downloaded at the client after the cache duration of the current video reaches the first cache duration threshold, the preloading task of the video to be played is suspended under the condition that the video cache duration is smaller than the second cache duration threshold, and the preloading task of the video to be played is suspended under the condition that the video cache duration is larger than or equal to the second cache duration threshold.
Optionally, the first buffer duration threshold may be greater than the second buffer duration threshold.
Optionally, the preload unit may be configured to: and under the condition that the video caching time length is reduced to be less than the second caching time length threshold, suspending the preloading task of the video to be played until the video caching time length is increased to reach the second caching time length threshold, and resuming the execution of the preloading task of the video to be played.
Optionally, the preload unit may be further configured to: and under the condition of suspending the pre-loading task of the video to be played, when the current video is completely downloaded at the client, restoring to execute the pre-loading task of the video to be played.
Optionally, the preload unit may be configured to: and executing the downloading bandwidth of the prediction client in the future predetermined time period every other predetermined time period, and executing the operation of preloading tasks of the video to be played in the future predetermined time period under the condition that the predicted downloading bandwidth is greater than the bandwidth threshold.
According to a third aspect of the embodiments of the present disclosure, there is provided an electronic apparatus including: at least one processor; at least one memory storing computer-executable instructions, wherein the computer-executable instructions, when executed by the at least one processor, cause the at least one processor to perform a method of video preloading according to the present disclosure.
According to a fourth aspect of embodiments of the present disclosure, there is provided a computer-readable storage medium storing instructions that, when executed by at least one processor, cause the at least one processor to perform a method of video preloading according to the present disclosure.
According to a fifth aspect of embodiments of the present disclosure, there is provided a computer program product, instructions in which are executable by a processor of a computer device to perform a method of video preloading according to the present disclosure.
The technical scheme provided by the embodiment of the disclosure at least brings the following beneficial effects:
according to the video preloading method and device, whether the preloading task is executed or not can be determined based on the network speed of the client when the client downloads the current video, and the preloading can be suspended in time when the network speed of a user is low, so that the problem that the preloading task occupies the bandwidth of the current video playing and downloading task is avoided, the fluency of the current playing works is guaranteed, and the preloading efficiency is improved.
In addition, according to the method and the device for preloading the video, when the client downloads the current video, whether the preloading task is executed or not can be determined based on the network speed of the client and the state of the player cache, when the network speed of a user is enough and the state of the player cache is healthy enough, the preloading task is allowed to be continuously submitted, the fluency of the current played work is guaranteed more fully and reliably, and meanwhile the preloading efficiency and the starting experience of the subsequent work are improved.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the disclosure.
Drawings
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments consistent with the present disclosure and, together with the description, serve to explain the principles of the disclosure and are not to be construed as limiting the disclosure.
Fig. 1 is an implementation scenario diagram illustrating a method and apparatus for video preloading according to the present disclosure.
Fig. 2 is a flow chart illustrating an exemplary method of video preloading according to the present disclosure.
Fig. 3 is a decision diagram illustrating video preloading according to an exemplary embodiment of the present disclosure.
Fig. 4 is a block diagram illustrating an apparatus for video preloading according to an exemplary embodiment of the present disclosure.
Fig. 5 is a block diagram illustrating an apparatus for video preloading according to another exemplary embodiment of the present disclosure.
Fig. 6 is a block diagram of an electronic device 600 according to an example embodiment of the present disclosure.
Detailed Description
In order to make the technical solutions of the present disclosure better understood by those of ordinary skill in the art, the technical solutions in the embodiments of the present disclosure will be clearly and completely described below with reference to the accompanying drawings.
It should be noted that the terms "first," "second," and the like in the description and claims of the present disclosure and in the above-described drawings are used for distinguishing between similar elements and not necessarily for describing a particular sequential or chronological order. It is to be understood that the data so used is interchangeable under appropriate circumstances such that the embodiments of the disclosure described herein are capable of operation in sequences other than those illustrated or otherwise described herein. The embodiments described in the following examples do not represent all embodiments consistent with the present disclosure. Rather, they are merely examples of apparatus and methods consistent with certain aspects of the present disclosure, as detailed in the appended claims.
In this case, the expression "at least one of the items" in the present disclosure means a case where three types of parallel expressions "any one of the items", "a combination of any plural ones of the items", and "the entirety of the items" are included. For example, "include at least one of a and B" includes the following three cases in parallel: (1) comprises A; (2) comprises B; and (3) comprises A and B. For another example, "at least one of the first step and the second step is performed", which means that the following three cases are juxtaposed: (1) executing the step one; (2) executing the step two; and (3) executing the step one and the step two.
In addition, the client side is usually configured with a short video multi-code-rate strategy, and for the same video, a definition gear can be selected for the user according to the network speed of the client side. Then in these scenarios, the short video preloading task is performed simultaneously, and the generated network traffic will compete together for the bandwidth of the client. Therefore, in the video preloading device, the timing of prefetching the work is important. A good short video preloading scheduling device needs to be designed, so that the use experience of a current user is not influenced, and the problem of experience deterioration such as increase of playing pause rate and the like or the problem of low multi-code-rate gear decision caused by network competition caused by preloading tasks invading the current video downloading bandwidth is avoided; but also can ensure the video preloading completion rate to the maximum extent, and achieve the effect of second opening when the subsequent users click the works.
The current video preloading strategy is: in order to ensure that the current short video is not interfered by network speed competition of a video preloading task, the client side sequentially preloads the subsequent works to be played according to the sequence of the video works in the recommended video work list to be played after the current video is completely downloaded. The current video preloading strategy cannot carry out the video preloading task with the highest efficiency, and the preloading task is unconditionally paused as long as the video is downloaded currently. For example, even if the network speed of a user is higher in a short video downloading and playing page, two tasks of video downloading and short video preloading can be simultaneously carried out, and preloading cannot be started. For another example, in the scene of a live page, the video preloading work cannot be started at all. For another example, if the user does not see the current video, the user is forced to request the current video to be completely downloaded, and the bandwidth is wasted.
In order to solve the balance problem of the preloading efficiency and the video playing experience, improve the preloading efficiency under the condition of not influencing the current watching experience of a user, meet the requirement of the user on the second-order click of a video work, effectively utilize the bandwidth and avoid wasting the bandwidth, the invention provides a novel video preloading method and a novel video preloading device. Specifically, the method for scheduling the pre-loading task considering the network speed of the client is designed, the pre-loading task is executed when the network speed of the client reaches a certain threshold, and otherwise, the pre-loading task is suspended. In addition, the preloading task scheduling method considering the network speed of the client and the cache time of the currently watched video in the player of the client is designed, the preloading task is executed when the network speed of the client reaches a certain threshold and the cache time of the currently watched video in the player of the client reaches the certain threshold, otherwise, the preloading task is suspended, and therefore the preloading efficiency is optimized under the condition that the playing experience is fully guaranteed to be lossless. Hereinafter, a method and apparatus for video preloading according to an exemplary embodiment of the present disclosure will be described with reference to fig. 1 to 6.
Fig. 1 is an implementation scenario diagram illustrating a method and apparatus for video preloading according to the present disclosure.
Referring to fig. 1, when a user requests to view content such as a short video or a live broadcast from a server 101 through a network 102 using a short video application client at a user terminal (e.g., a mobile phone 103 u 1, a desktop computer 103 u 2, a tablet computer 103 u 3, etc.), the server 101 may transmit the requested content such as the short video or the live broadcast to the user terminal 103 u 1, 103 u 2, or 103 u 3 through the network 102, and the user may view the content such as the short video or the live broadcast through the short video application client. Meanwhile, the short video application client can generate a recommended video product list according to the user information such as the watching habits of the user, the interest point information and the like, and the recommended video product list is used for the user to click or slide to watch. To ensure that a second-to-second, smooth user experience can be achieved when a user subsequently clicks or slides on a video work, a short video application client in user terminal 103_1, 103_2, or 103 _3may request, in advance, the server 101 over the network 102 to send a short piece of data of some video works in a recommended video work list to the short video application client, and upon receiving the request, the server 101 may send the requested video data to the short video application client in user terminal 103_1, 103_2, or 103 _3. In such a scenario, the video preloading method and device according to the present disclosure can be applied, which not only ensures the current video playing experience, but also improves the video preloading efficiency, thereby providing a second-turn and smooth user experience for the user.
Fig. 2 is a flow chart illustrating an exemplary method of video preloading according to the present disclosure.
Referring to fig. 2, in step 201, when a current video is being played and downloaded at a client, a bandwidth threshold may be determined based on a playback bitrate of the current video. Here, when the client receives a video (e.g., short video content or live content, etc.) from a transmitting end (e.g., a server end), a playback bitrate of the video may be acquired. For example, video contents with various code rates can be generated at the server side through transcoding, and the client side can select one definition gear according to the current network and receive the video contents with the corresponding code rates from the server side.
In order to guarantee that a user can smoothly play videos or watch live broadcasts, a bandwidth threshold client _ bw _ rigid _ command can be set for a preloading task of the video to be played, that is, when the network speed (or download bandwidth) client _ bw of a client reaches the bandwidth threshold client _ bw _ rigid _ command, the preloading task of the video to be played can be executed. To ensure that the current video is not blocked, the bandwidth threshold, client _ bw _ right _ command, is at least equal to the playback bitrate, video _ bitrate, of the video (e.g., short video content or live content, etc.). Alternatively, the bandwidth threshold value client _ bw _ rigid _ demand is greater than the playback bitrate video _ bitrate of the video (e.g., short video content or live content, etc.).
According to an exemplary embodiment of the present disclosure, the play bitrate, video _ bitrate, of the current video may be multiplied by a predetermined coefficient, discrete _ coefficient, to obtain a bandwidth threshold, client _ bw _ right _ command, that is, client _ bw _ right _ command = video _ bitrate × discrete _ coefficient. Here, the predetermined coefficient count _ coefficient may be a constant greater than 1. For example, if the playing rate of the currently playing short video is 3mbps, then at least 3mbps × difference _ coefficient bandwidth is reserved for the currently playing short video to guarantee that the playing is not stuck, that is, the bandwidth threshold client _ bw _ edge _ command may be set to 3mbps × difference _ coefficient. Here, the predetermined coefficient count _ coefficient may be, but is not limited to, 2.
According to another exemplary embodiment of the present disclosure, the bandwidth threshold client _ bw _ edge _ command may also be determined to be greater than a result of multiplying the playing rate video _ bitrate of the current video by a predetermined coefficient, which is, the client _ bw _ edge _ command > video _ bitrate × difference _ coefficient, so that it may be sufficiently ensured that the current video is not stuttered.
Since the network speed (or download bandwidth) of the client fluctuates in real time, it cannot be determined exactly whether the future download bandwidth of the client reaches the bandwidth threshold. Thus, at step 202, the download bandwidth of the client within a predetermined period of time in the future can be predicted.
According to an exemplary embodiment of the present disclosure, the download bandwidth client _ bw of the client may be counted and recorded once every predetermined time period Ts (e.g., without limitation, 60 seconds). Specifically, every predetermined time period Ts, the total downloaded data amount of _ data in the predetermined time period Ts may be acquired, and the actual downloaded bandwidth client _ bw in the predetermined time period Ts is obtained by dividing the acquired total downloaded data amount by the duration of the predetermined time period Ts (i.e., the total downloaded time T). I.e. client _ bw = amount _ of _ data/T. By the method, the actual download bandwidth of the client in each preset time period Ts can be counted and recorded. When the downloading bandwidth of the client in the future scheduled time period Ts needs to be predicted, the actual downloading bandwidth client _ bw in each of n (n is an integer greater than or equal to 1) historical scheduled time periods Ts (which may also include the current scheduled time period Ts) before the current scheduled time period Ts may be obtained, and the downloading bandwidth client _ bw _ prediction in the future scheduled time period Ts may be predicted by using an exponential filtering method according to the actual downloading bandwidth client _ bw in each historical scheduled time period. Currently, the method for predicting the future download bandwidth of the client in the present disclosure is not limited thereto, and any feasible prediction method may be used to predict the download bandwidth of the client for a period of time in the future.
In step 203, in the case that the predicted download bandwidth is greater than the bandwidth threshold, a pre-loading task of the video to be played is executed in a predetermined time period in the future. Specifically, when the predicted download bandwidth client _ bw _ predict is greater than the bandwidth threshold client _ bw _ rigid _ command, that is, the client _ bw _ predict > client _ bw _ rigid _ command, it means that the client has extra bandwidth for pre-downloading of the subsequent video work to be played in a predetermined period of time in the future, and thus, in this case, a pre-loading task of the video to be played may be performed. For example, a pre-load task of a video to be played may be allowed to be submitted and then may be performed.
In addition, in the case that the predicted download bandwidth is less than or equal to the bandwidth threshold, the preloading task of the video to be played is suspended for a predetermined period of time in the future. Specifically, when the predicted download bandwidth client _ bw _ predict is less than or equal to the bandwidth threshold client _ bw _ rigid _ command, i.e., client _ bw _ predict ≦ client _ bw _ rigid _ command, then it means that the client has no additional bandwidth to pre-download more works in a predetermined period of time in the future, and therefore, in this case, the pre-loading task of the video to be played can be suspended. For example, when the currently played video work requests downloading, the submission of the preloading task of the video to be played can be suspended, and after the currently played video work is downloaded, the submission of the preloading task is resumed and the preloading task is executed.
Furthermore, the above steps 202 and 203 may be performed every predetermined time period Ts, so that a decision may be made every predetermined time period Ts as to whether to execute the pre-loading task in the next predetermined time period Ts.
In addition, the tracking prediction of the network speed of the client may not be very accurate, for example, when a user suddenly switches from a wifi hotspot with a better network speed to a wifi hotspot with a congested network during a walking movement process, the network speed (download bandwidth) of the client may suddenly deteriorate, and at this time, the future client download bandwidth client _ bw _ predict predicted by using the previous historical network speed (download bandwidth) may be significantly higher, which affects the decision of whether to execute the preloading task. Therefore, besides predicting the future download bandwidth of the client, the cache state of the current video loaded in the client player can be monitored, and whether to execute the preloading task is determined based on the future download bandwidth of the client and the cache state of the current video loaded in the client player.
According to the exemplary embodiment of the present disclosure, when a current video is being played and downloaded at a client, a video cache duration of the current video loaded in the client may be obtained in real time. Here, the buffering of the current video in the client player is consumed frame by frame, i.e., the player fetches the decoded renderings frame by frame from the buffering to the user for viewing. Therefore, the cache loaded by the current video in the client changes in real time, so that the cache duration of the video loaded by the current video in the client can be obtained in real time. When the client plays and downloads the current video, under the condition that the predicted download bandwidth is larger than the bandwidth threshold, and when the video cache time length is smaller than the preset cache time length threshold, the preloading task of the video to be played is suspended, and under the condition that the video cache time length is larger than or equal to the preset cache time length threshold, the preloading task of the video to be played is executed.
For example, the predetermined buffer duration threshold Ns may comprise a first buffer duration threshold Ns1 (e.g., without limitation, 5 seconds). When a client side starts playing and downloads a current video, under the condition that the video cache time length buffer does not reach the first cache time length threshold Ns1 (buffer is less than Ns 1), the pre-loading task of the video to be played is suspended, and the pre-loading task of the video to be played is resumed and executed until the video cache time length buffer reaches the first cache time length threshold Ns1 (buffer is more than or equal to Ns 1). In addition, even if the video buffering time duration buffer does not reach the first buffering time duration threshold Ns1, the pre-loading task of the video to be played can be resumed if the current video has been completely downloaded. For example, when a short video is watched according to the recommended video work list, switching to a certain video may be performed by sliding up and down, when the user slides to the current video, the current video is just played and downloaded at the client, the video cache duration for caching the current video in the buffer of the player may be obtained in real time, and whether to execute the pre-loading task is determined based on the comparison of the video cache duration and the first cache duration threshold, as described above. In addition, the current video may have been preloaded with a portion of data before being played, and thus, when the current video is just started to be played and downloaded at the client, the video cache duration may include the duration of the preloading.
As another example, the predetermined buffering duration threshold Ns may include a second buffering duration threshold Ns2. Under the condition that the cache duration of the current video reaches the first cache duration threshold Ns1, the client continues to play and download the current video, under the condition that the video cache length buffer is smaller than the second cache duration threshold Ns2 (buffer < Ns 2), the pre-loading task of the video to be played is suspended, and under the condition that the video cache length buffer is larger than or equal to the second cache duration threshold Ns2 (buffer is larger than or equal to Ns 2), the pre-loading task of the video to be played is executed.
Further, the second buffering duration threshold Ns2 may be set smaller than the first buffering duration threshold Ns1. For example, in the case where the first buffer duration threshold Ns1 is set to 5 seconds, the second buffer duration threshold Ns2 may be set to 4 seconds. For another example, the second cache duration threshold Ns2 may be set as the result of multiplying the first cache duration threshold Ns1 by the cache coefficient buffer _ count, that is, ns2= Ns1 × buffer _ count, where 0 "buffer _ count" 1 is included. For example, the buffer _ count may be, but is not limited to, 0.8. After the buffer duration of the current video has reached the first buffer duration threshold Ns1 and is reduced to be less than the second buffer duration threshold Ns2, it indicates that the downloading speed of the current video is less than the speed consumed by the buffer playing, so the pre-loading task of the video to be played can be suspended until the buffer duration increases to reach the second buffer duration threshold Ns2, and the pre-loading task of the video to be played is resumed. In addition, even if the video buffering time duration buffer does not reach the first buffering time duration threshold Ns2, the pre-loading task of the video to be played can be resumed if the current video has been completely downloaded. For example, after the user slides to the current video, which has been loaded to a first cache duration threshold in the player of the client, in subsequent playing and downloading of the current video, whether to perform the pre-loading task may be determined based on a comparison of the video cache duration to a second cache duration threshold.
Fig. 3 is a decision diagram illustrating video preloading according to an exemplary embodiment of the present disclosure.
When a user watches short videos, live broadcasts and other contents by using a client, the downloading bandwidth of the client in a future preset time period can be predicted once every preset time period Ts, the video cache duration loaded by the contents at the client is obtained in real time, and whether to execute video preloading, whether to pause video preloading or whether to resume executing video preloading is determined based on the comparison between the predicted downloading bandwidth and the calculated bandwidth threshold and the comparison between the video cache duration and the preset cache duration threshold.
Referring to fig. 3, video preloading decisions that may exist for a predetermined period of time are described only exemplarily. For example, when the client starts playing and downloading the current video, the downloading bandwidth client _ bw _ predict (301) of the client in a predetermined period of time in the future and the video cache duration buffer (302) for acquiring the current video loaded in the client in real time can be predicted. Comparing (303) the predicted download bandwidth client _ bw _ predict with a bandwidth threshold client _ bw _ edge _ command and comparing (304) the video buffering duration buffer with a first buffering duration threshold Ns1, in case the predicted download bandwidth client _ bw _ predict is larger than the bandwidth threshold client _ bw _ edge _ command and the video buffering duration buffer is not smaller than the first buffering duration threshold Ns1, performing (305) the video preloading task, otherwise suspending (306, 307) the video preloading task. Here, since the current video just starts to be played and downloaded, the video buffering time duration buffer loaded at the client does not reach the first buffering time duration threshold Ns1 yet, and therefore, the video preloading task needs to be suspended (307). In the case where the video preloading task is suspended (307), if the video buffering time period buffer is full of the first buffering time period threshold Ns1 after a while, the execution of the video preloading task may be resumed (305). Subsequently, after the video buffer duration buffer is full of the first buffer duration threshold Ns1, in the subsequent playing and downloading of the current video, the video buffer duration buffer may be compared with the second buffer duration threshold Ns2 (308), and when the video buffer duration buffer is not less than the second buffer duration threshold Ns2, the video preloading task may be continuously executed (309). However, when the video buffering duration buffer decreases to be less than the second buffering duration threshold Ns2, the video preloading task needs to be suspended (310). When the video buffering time duration buffer is increased to the second buffering time duration threshold Ns2, the execution of the video preloading task can be resumed (309). Furthermore, in case of pausing the video preloading task (306, 307, 310), once the current video download is completed (311 _ yes), execution of the video preloading task is resumed (312).
Fig. 4 is a block diagram illustrating an apparatus for video preloading according to an exemplary embodiment of the present disclosure.
Referring to fig. 4, an apparatus 400 for video preloading according to an exemplary embodiment of the present disclosure may include a bandwidth control unit 401 and a preloading unit 402.
When the current video is being played and downloaded at the client, the bandwidth control unit 401 may determine the bandwidth threshold based on the playing bitrate of the current video. Here, when the client receives a video (e.g., short video content or live content, etc.) from a transmitting end (e.g., a server end), the bandwidth control unit 401 may acquire a playback bitrate of the video. For example, video contents with various code rates can be generated at the server side through transcoding, and the client side can select one definition gear according to the current network and receive the video contents with the corresponding code rates from the server side.
In order to guarantee that the user can smoothly play the video or watch the live broadcast, the bandwidth control unit 401 may set a bandwidth threshold client _ bw _ rigid _ demand for the pre-loading task of the video to be played, that is, when the network speed (or download bandwidth) client _ bw of the client reaches the bandwidth threshold client _ bw _ rigid _ demand, the pre-loading task of the video to be played may be executed. To ensure that the current video is not blocked, the bandwidth threshold client _ bw _ rigid _ command is at least equal to the playback bitrate video _ bitrate of the video (e.g., short video content or live content, etc.). Alternatively, the bandwidth threshold value client _ bw _ rigid _ demand is greater than the playback bitrate video _ bitrate of the video (e.g., short video content or live content, etc.).
According to an exemplary embodiment of the present disclosure, the bandwidth control unit 401 may multiply the play bitrate, video _ bitrate, of the current video by a predetermined coefficient, discrete _ coefficient, to obtain a bandwidth threshold, client _ bw _ right _ command, i.e., client _ bw _ right _ command = video _ bitrate × discrete _ coefficient. Here, the predetermined coefficient count _ coefficient may be a constant greater than 1. For example, if the playing rate of the currently playing short video is 3mbps, then to ensure that the playing is not blocked, at least a bandwidth of 3mbps × difference _ coeffient is reserved, that is, the bandwidth threshold client _ bw _ right _ command may be set to 3mbps × difference _ coeffient. Here, the predetermined coefficient count _ coeffient may be, but is not limited to, 2.
According to another exemplary embodiment of the present disclosure, the bandwidth control unit 401 may also determine the bandwidth threshold value client _ bw _ edge _ command to be greater than a result of multiplying the playback rate video _ bitrate of the current video by a predetermined coefficient count _ coefficient, that is, the client _ bw _ edge _ command > video _ bitrate × count _ coefficient, so that it may be fully ensured that the current video playback is not stuck.
Since the network speed (or download bandwidth) of the client fluctuates in real time, it cannot be determined exactly whether the future download bandwidth of the client reaches the bandwidth threshold. Thus, the preloading unit 402 may predict the download bandwidth of the client within a predetermined period of time in the future.
According to an exemplary embodiment of the present disclosure, the preloading unit 402 may count and record the download bandwidth client _ bw of the client once every predetermined time period Ts (e.g., without limitation, 60 seconds). Specifically, every predetermined time period Ts, the preloading unit 402 may obtain a total downloaded data amount of _ data in the predetermined time period Ts, divide the obtained total downloaded data amount by a duration of the predetermined time period Ts (i.e., the total downloaded time T), and obtain an actual downloaded bandwidth client _ bw in the predetermined time period Ts. I.e. client _ bw = amount _ of _ data/T. By this method, the preloading unit 402 can count and record the actual download bandwidth of the client in each predetermined time period Ts. When the downloading bandwidth of the client in the future predetermined time period Ts needs to be predicted, the preloading unit 402 may obtain an actual downloading bandwidth client _ bw in each predetermined time period Ts of n (n is an integer greater than or equal to 1) historical predetermined time periods Ts (which may also include the current predetermined time period Ts) before the current predetermined time period Ts, and predict the downloading bandwidth client _ bw _ prediction in the future predetermined time period Ts by using an exponential filtering method according to the actual downloading bandwidth client _ bw in each historical predetermined time period. Currently, the method for predicting the future download bandwidth of the client in the present disclosure is not limited thereto, and any feasible prediction method may be used to predict the download bandwidth of the client for a period of time in the future.
In the case that the predicted download bandwidth is greater than the bandwidth threshold, the preloading unit 402 may perform the preloading task of the video to be played within a predetermined time period in the future. Specifically, when the predicted download bandwidth client _ bw _ predict is greater than the bandwidth threshold client _ bw _ rigid _ command, that is, the client _ bw _ predict > client _ bw _ rigid _ command, it means that the client has extra bandwidth for pre-downloading of the subsequent video work to be played in a predetermined period of time in the future, and thus, in this case, the pre-loading unit 402 may perform a pre-loading task of the video to be played. For example, the preloading unit 402 may allow submitting a preloading task of a video to be played and then may perform the preloading task of the video to be played.
Further, in the case that the predicted download bandwidth is less than or equal to the bandwidth threshold, the preloading unit 402 may pause the preloading task of the video to be played for a predetermined period of time in the future. Specifically, when the predicted download bandwidth client _ bw _ prediction is less than or equal to the bandwidth threshold client _ bw _ rigid _ command, i.e., client _ bw _ prediction is less than or equal to client _ bw _ rigid _ command, then it means that the client has no additional bandwidth for pre-downloading more works in a predetermined period of time in the future, and therefore, in this case, the preloading unit 402 may suspend the preloading task of pre-loading the video to be played. For example, when the currently played video work requests downloading, the preloading unit 402 may suspend submission of the preloading task of the video to be played, and after the currently played video work is downloaded, the preloading unit 402 resumes submission of the preloading task and executes the preloading task.
Further, the preload unit 402 may perform the prediction and comparison every predetermined period of time Ts, so that a decision may be made every predetermined period of time Ts as to whether or not to execute the preload task in the next predetermined period of time Ts.
In addition, the tracking prediction of the network speed of the client may not be very accurate, for example, when a user suddenly switches from a wifi hotspot with a better network speed to a wifi hotspot with a congested network during a walking movement process, the network speed (download bandwidth) of the client may suddenly deteriorate, and at this time, the future client download bandwidth client _ bw _ predict predicted by using the previous historical network speed (download bandwidth) may be significantly higher, which affects the decision of whether to execute the preloading task. Therefore, besides predicting the future download bandwidth of the client, the cache state of the current video loaded in the client player can be monitored, and whether to execute the preloading task is determined based on the future download bandwidth of the client and the cache state of the current video loaded in the client player. For example, fig. 5 is a block diagram illustrating an apparatus for video preloading according to another exemplary embodiment of the present disclosure.
Referring to fig. 5, an apparatus 500 for video preloading according to another exemplary embodiment of the present disclosure may include a bandwidth control unit 501, a buffer acquisition unit 502, and a preloading unit 503. The function of the bandwidth control unit 501 is the same as the bandwidth control unit 401 in fig. 4, and the preloading unit 503 at least includes the same function as the preloading unit 402 in fig. 4, so that the same function will not be described again here.
When the current video is being played and downloaded at the client, the cache obtaining unit 502 may obtain, in real time, a video cache duration of the current video loaded in the client. Here, the buffering of the current video in the client player is consumed frame by frame, i.e., the player fetches the decoded renderings frame by frame from the buffering to the user for viewing. Therefore, the cache loaded in the client by the current video changes in real time, and the cache obtaining unit 502 can obtain the cache duration of the video loaded in the client by the current video in real time. When the client plays and downloads the current video, the predicted download bandwidth is greater than the bandwidth threshold, when the video cache duration is less than the predetermined cache duration threshold, the preloading unit 503 suspends the preloading task of the video to be played, and when the video cache duration is greater than or equal to the predetermined cache duration threshold, the preloading unit 503 executes the preloading task of the video to be played.
For example, the predetermined buffer duration threshold Ns may comprise a first buffer duration threshold Ns1 (e.g., without limitation, 5 seconds). When the client starts to play and download the current video, and the video cache duration buffer does not reach the first cache duration threshold Ns1 (buffer < Ns 1), the preloading unit 503 suspends the preloading task of the video to be played until the video cache duration buffer reaches the first cache duration threshold Ns1 (buffer is greater than or equal to Ns 1), and the preloading unit 503 resumes executing the preloading task of the video to be played. In addition, even if the video buffering duration buffer has not reached the first buffering duration threshold Ns1, the pre-loading unit 503 may resume executing the pre-loading task of the video to be played if the current video has been completely downloaded. For example, when a short video is viewed according to the recommended video work list, switching to a certain video may be performed by sliding up and down, when the user slides to the current video, the current video is just played and downloaded at the client, the cache obtaining unit 502 may obtain the video cache time length in real time, and as described above, the preloading unit 503 determines whether to execute the preloading task based on a comparison of the video cache time length and the first cache time length threshold. In addition, the current video may have been preloaded with a portion of data before being played, and thus, when the current video is just started to be played and downloaded at the client, the video cache duration may include the duration of the preloading.
As another example, the predetermined buffering duration threshold Ns may include a second buffering duration threshold Ns2. When the cache duration of the current video reaches the first cache duration threshold Ns1, the client continues to play and download the current video, when the video cache duration buffer is less than the second cache duration threshold Ns2 (buffer < Ns 2), the preloading unit 503 suspends the preloading task of the video to be played, and when the video cache duration buffer is greater than or equal to the second cache duration threshold Ns2 (buffer is greater than or equal to Ns 2), the preloading unit 503 executes the preloading task of the video to be played.
Further, the second buffering duration threshold Ns2 may be set smaller than the first buffering duration threshold Ns1. For example, in a case where the first buffering duration threshold Ns1 is set to 5 seconds, the second buffering duration threshold Ns2 may be set to 4 seconds. For another example, the second cache duration threshold Ns2 may be set as the result of multiplying the first cache duration threshold Ns1 by the cache coefficient buffer _ count, that is, ns2= Ns1 × buffer _ count, where 0-yet-1 is constructed. For example, the buffer _ count may be, but is not limited to, 0.8. After the buffer duration of the current video has reached the first buffer duration threshold Ns1 and is decreased to be less than the second buffer duration threshold Ns2, it indicates that the downloading speed of the current video is less than the speed consumed by the buffer playing, so the pre-loading unit 503 may suspend the pre-loading task of the video to be played until the buffer duration has increased to reach the second buffer duration threshold Ns2, and the pre-loading unit 503 resumes executing the pre-loading task of the video to be played. In addition, even if the video buffering duration buffer has not reached the first buffering duration threshold Ns2, the pre-loading unit 503 may resume executing the pre-loading task of the video to be played if the current video has been completely downloaded. For example, when the user slides to the current video, which is already loaded in the player of the client to the first cache duration threshold, in the subsequent playing and downloading of the current video, the preloading unit 503 may determine whether to execute the preloading task based on the comparison between the video cache duration and the second cache duration threshold.
Fig. 6 is a block diagram of an electronic device 600 according to an example embodiment of the present disclosure.
Referring to fig. 6, the electronic device 600 includes at least one memory 601 and at least one processor 602, the at least one memory 601 having stored therein a set of computer-executable instructions that, when executed by the at least one processor 602, perform a method of video preloading according to an exemplary embodiment of the present disclosure.
By way of example, the electronic device 600 may be a PC computer, tablet device, personal digital assistant, smartphone, or other device capable of executing the set of instructions described above. Here, the electronic device 600 need not be a single electronic device, but can be any arrangement or collection of circuits capable of executing the above-described instructions (or sets of instructions), either individually or in combination. The electronic device 600 may also be part of an integrated control system or system manager, or may be configured as a portable electronic device that interfaces with local or remote (e.g., via wireless transmission).
In the electronic device 600, the processor 602 may include a Central Processing Unit (CPU), a Graphics Processing Unit (GPU), a programmable logic device, a special purpose processor system, a microcontroller, or a microprocessor. By way of example, and not limitation, processors may also include analog processors, digital processors, microprocessors, multi-core processors, processor arrays, network processors, and the like.
The processor 602 may execute instructions or code stored in the memory 601, wherein the memory 601 may also store data. The instructions and data may also be transmitted or received over a network via a network interface device, which may employ any known transmission protocol.
The memory 601 may be integrated with the processor 602, for example, with RAM or flash memory disposed within an integrated circuit microprocessor or the like. Further, memory 601 may comprise a stand-alone device, such as an external disk drive, storage array, or any other storage device usable by a database system. The memory 601 and the processor 602 may be operatively coupled or may communicate with each other, e.g., through I/O ports, network connections, etc., such that the processor 602 can read files stored in the memory.
Further, the electronic device 600 may also include a video display (such as a liquid crystal display) and a user interaction interface (such as a keyboard, mouse, touch input device, etc.). All components of the electronic device 600 may be connected to each other via a bus and/or a network.
According to an exemplary embodiment of the present disclosure, there may also be provided a computer-readable storage medium storing instructions, which when executed by at least one processor, cause the at least one processor to perform a method of video preloading according to the present disclosure. Examples of computer-readable storage media herein include: read-only memory (ROM), random-access programmable read-only memory (PROM), electrically erasable programmable read-only memory (EEPROM), random-access memory (RAM), dynamic random-access memory (DRAM), static random-access memory (SRAM), flash memory, non-volatile memory, CD-ROM, CD-R, CD + R, CD-RW, CD + RW, DVD-ROM, DVD-R, DVD-RW, DVD + RW, DVD-RAM, BD-ROM, BD-R LTH, BD-RE, blu-ray or optical disk memory, hard Disk Drive (HDD), solid State Disk (SSD), card memory (such as a multimedia card, a Secure Digital (SD) card or an extreme digital (XD) card), magnetic tape, a floppy disk, a magneto-optical data storage device, an optical data storage device, a hard disk, a solid state disk, and any other device configured to store and provide computer programs and any associated data, data files and data structures in a non-transitory manner to a computer processor or computer such that the computer programs and any associated data processors are executed or computer programs. The computer program in the computer-readable storage medium described above can be run in an environment deployed in a computer apparatus, such as a client, a host, a proxy device, a server, and the like, and further, in one example, the computer program and any associated data, data files, and data structures are distributed across a networked computer system such that the computer program and any associated data, data files, and data structures are stored, accessed, and executed in a distributed fashion by one or more processors or computers.
According to an exemplary embodiment of the present disclosure, a computer program product may also be provided, in which instructions are executable by a processor of a computer device to perform a method of video preloading according to an exemplary embodiment of the present disclosure.
According to the video preloading method and device, whether the preloading task is executed or not can be determined based on the network speed of the client when the client downloads the current video, and the preloading can be suspended in time when the network speed of a user is low, so that the problem that the preloading task occupies the bandwidth of the current video playing and downloading task is avoided, the fluency of the current playing works is guaranteed, and the preloading efficiency is improved.
In addition, according to the method and the device for preloading the video, whether the preloading task is executed or not can be determined based on the network speed of the client and the state of the player cache when the client downloads the current video, when the network speed of a user is enough and the state of the player cache is healthy enough, the preloading task is allowed to be continuously submitted, and the preloading efficiency and the starting experience of subsequent works are improved while the fluency of the current played works is ensured more fully and reliably.
Other embodiments of the disclosure will be apparent to those skilled in the art from consideration of the specification and practice of the disclosure disclosed herein. This application is intended to cover any variations, uses, or adaptations of the disclosure following, in general, the principles of the disclosure and including such departures from the present disclosure as come within known or customary practice in the art to which the disclosure pertains. It is intended that the specification and examples be considered as exemplary only, with a true scope and spirit of the disclosure being indicated by the following claims.
It will be understood that the present disclosure is not limited to the precise arrangements described above and shown in the drawings and that various modifications and changes may be made without departing from the scope thereof. The scope of the present disclosure is limited only by the appended claims.

Claims (22)

1. A method for preloading video, comprising:
when a current video is played and downloaded at a client, determining a bandwidth threshold value based on the playing code rate of the current video, and acquiring the video cache duration loaded by the current video in the client in real time;
predicting the download bandwidth of the client in a future preset time period, and executing a pre-loading task of the video to be played in the future preset time period under the condition that the predicted download bandwidth is larger than the bandwidth threshold and the video cache time length is larger than or equal to a preset cache time length threshold,
and executing the downloading bandwidth of the prediction client in the future predetermined time period every other predetermined time period, and executing the operation of preloading tasks of the video to be played in the future predetermined time period under the condition that the predicted downloading bandwidth is greater than the bandwidth threshold and the video caching time length is greater than or equal to the predetermined caching time length threshold.
2. The method of claim 1, further comprising:
in the case that the predicted download bandwidth is less than or equal to the bandwidth threshold, suspending the pre-loading task of the video to be played for the predetermined period of time in the future, or,
and under the condition that the video cache time length is smaller than a preset cache time length threshold value, pausing the preloading task of the video to be played in the preset time period in the future.
3. The method of claim 1, wherein determining the bandwidth threshold based on the playback bitrate of the current video comprises:
multiplying the playing code rate of the current video by a preset coefficient to obtain the bandwidth threshold;
wherein the predetermined coefficient is a constant greater than 1.
4. The method of claim 1, wherein predicting the download bandwidth of the client within the predetermined time period in the future comprises:
acquiring actual downloading bandwidth in each historical preset time period;
predicting a download bandwidth in the predetermined time period in the future using exponential filtering based on historical actual download bandwidths in each of the predetermined time periods.
5. The method of claim 4, wherein obtaining the actual download bandwidth for each of the predetermined time periods of the history comprises:
for each of the predetermined time periods of the history:
acquiring the total download data volume in the current preset time period;
and dividing the total download data quantity by the duration of the preset time period to obtain the actual download bandwidth in the preset time period.
6. The method of claim 2, wherein the predetermined buffer duration threshold comprises a first buffer duration threshold,
under the condition that the video cache time length is smaller than a preset cache time length threshold, suspending the pre-loading task of the video to be played in the future preset time period, wherein the method comprises the following steps:
when a client side starts playing and downloads a current video, under the condition that the video cache time length does not reach the first cache time length threshold value, the pre-loading task of the video to be played is suspended, and the pre-loading task of the video to be played is resumed and executed until the video cache time length reaches the first cache time length threshold value.
7. The method of claim 6, wherein the predetermined buffer duration threshold comprises a second buffer duration threshold,
under the condition that the video cache time length is smaller than a preset cache time length threshold, suspending the pre-loading task of the video to be played in the future preset time period, wherein the method comprises the following steps:
when the current video continues to be played and downloaded at the client after the cache duration of the current video reaches the first cache duration threshold, the preloading task of the video to be played is suspended under the condition that the video cache duration is smaller than the second cache duration threshold, and the preloading task of the video to be played is executed under the condition that the video cache duration is larger than or equal to the second cache duration threshold.
8. The method of claim 7, wherein the first buffer duration threshold is greater than the second buffer duration threshold.
9. The method of claim 8, wherein suspending the pre-loading task of the video to be played if the video buffering duration is less than the second buffering duration threshold, and performing the pre-loading task of the video to be played if the video buffering duration is greater than or equal to the second buffering duration threshold comprises:
and under the condition that the video cache time length is reduced to be less than the second cache time length threshold, suspending the pre-loading task of the video to be played until the video cache time length is increased to reach the second cache time length threshold, and resuming the execution of the pre-loading task of the video to be played.
10. The method of any one of claims 2, 6, 7, and 9, further comprising:
and under the condition of suspending the preloading task of the video to be played, when the downloading of the current video at the client is finished, resuming to execute the preloading task of the video to be played.
11. An apparatus for video preloading, comprising:
a bandwidth control unit configured to: when a current video is played and downloaded at a client, determining a bandwidth threshold value based on the playing code rate of the current video;
a cache retrieval unit configured to: when a current video is played and downloaded at a client, acquiring the video cache duration loaded by the current video in the client in real time;
a preload unit configured to: predicting the download bandwidth of the client in a future preset time period, and executing a pre-loading task of the video to be played in the future preset time period under the condition that the predicted download bandwidth is larger than the bandwidth threshold and the video cache time length is larger than or equal to a preset cache time length threshold,
wherein the preload unit is configured to: and executing the downloading bandwidth of the prediction client in a future predetermined time period every other predetermined time period, and executing the operation of preloading tasks of the video to be played in the future predetermined time period under the condition that the predicted downloading bandwidth is greater than the bandwidth threshold and the video caching time length is greater than or equal to a predetermined caching time length threshold.
12. The apparatus of claim 11, wherein the preload unit is further configured to: in the case that the predicted download bandwidth is less than or equal to the bandwidth threshold, suspending the pre-loading task of the video to be played for the predetermined period of time in the future, or,
and under the condition that the video cache time length is smaller than a preset cache time length threshold value, pausing the preloading task of the video to be played in the preset time period in the future.
13. The apparatus of claim 11, wherein the bandwidth control unit is configured to:
multiplying the playing code rate of the current video by a preset coefficient to obtain the bandwidth threshold;
wherein the predetermined coefficient is a constant greater than 1.
14. The apparatus of claim 11, wherein the preload unit is configured to:
acquiring actual downloading bandwidth in each historical preset time period;
predicting a predicted download bandwidth in the predetermined time period in the future using exponential filtering based on historical actual download bandwidths in each of the predetermined time periods.
15. The apparatus of claim 14, wherein the preload unit is configured to:
performing the following for each of the predetermined time periods of the history:
acquiring the total download data volume in the current preset time period;
and dividing the total download data quantity by the duration of the preset time period to obtain the current actual download bandwidth in the preset time period.
16. The apparatus of claim 12, wherein the predetermined buffer duration threshold comprises a first buffer duration threshold,
wherein the preload unit is configured to:
when a client side starts playing and downloads a current video, under the condition that the video cache time length does not reach the first cache time length threshold value, the pre-loading task of the video to be played is suspended, and the pre-loading task of the video to be played is resumed and executed until the video cache time length reaches the first cache time length threshold value.
17. The apparatus of claim 16, wherein the predetermined buffer duration threshold comprises a second buffer duration threshold,
wherein the preload unit is configured to:
when the current video continues to be played and downloaded at the client after the cache duration of the current video reaches the first cache duration threshold, the preloading task of the video to be played is suspended under the condition that the video cache duration is smaller than the second cache duration threshold, and the preloading task of the video to be played is executed under the condition that the video cache duration is larger than or equal to the second cache duration threshold.
18. The apparatus of claim 17, wherein the first buffer duration threshold is greater than the second buffer duration threshold.
19. The apparatus of claim 18, wherein the preloading unit is configured to:
and under the condition that the video cache time length is reduced to be less than the second cache time length threshold, suspending the pre-loading task of the video to be played until the video cache time length is increased to reach the second cache time length threshold, and resuming the execution of the pre-loading task of the video to be played.
20. The apparatus of any of claims 12, 16, 17, 19, wherein the preload unit is further configured to:
and under the condition of suspending the preloading task of the video to be played, when the downloading of the current video at the client is finished, resuming to execute the preloading task of the video to be played.
21. An electronic device, comprising:
at least one processor;
at least one memory storing computer-executable instructions,
wherein the computer-executable instructions, when executed by the at least one processor, cause the at least one processor to perform a method of video preloading as defined in any one of claims 1 to 10.
22. A computer-readable storage medium storing instructions that, when executed by at least one processor, cause the at least one processor to perform a method of video preloading as claimed in any one of claims 1 to 10.
CN202011449107.6A 2020-12-09 2020-12-09 Video preloading method and device Active CN112672186B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011449107.6A CN112672186B (en) 2020-12-09 2020-12-09 Video preloading method and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011449107.6A CN112672186B (en) 2020-12-09 2020-12-09 Video preloading method and device

Publications (2)

Publication Number Publication Date
CN112672186A CN112672186A (en) 2021-04-16
CN112672186B true CN112672186B (en) 2023-03-24

Family

ID=75402297

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011449107.6A Active CN112672186B (en) 2020-12-09 2020-12-09 Video preloading method and device

Country Status (1)

Country Link
CN (1) CN112672186B (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115348460A (en) * 2021-05-13 2022-11-15 北京字节跳动网络技术有限公司 Video preloading method, device, equipment and storage medium
CN113271478B (en) * 2021-05-17 2023-01-10 北京大米科技有限公司 Learning video recommendation method, information interaction method and device
CN113784211A (en) * 2021-09-17 2021-12-10 北京快来文化传播集团有限公司 Short video playing method and device
CN114827646B (en) * 2022-03-23 2023-12-12 百果园技术(新加坡)有限公司 Method, device, equipment and storage medium for preloading live broadcasting room in video stream
CN114900732B (en) * 2022-04-25 2024-01-12 北京奇艺世纪科技有限公司 Video caching method and device, electronic equipment and storage medium
CN115190338B (en) * 2022-07-05 2024-04-26 上海哔哩哔哩科技有限公司 Video preloading method and system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105163137A (en) * 2015-08-20 2015-12-16 小米科技有限责任公司 Network bandwidth adjusting method and system, router and video playing device
CN106937163A (en) * 2017-03-21 2017-07-07 微鲸科技有限公司 Multimedia preloads method and apparatus
CN109218781A (en) * 2017-07-07 2019-01-15 华为软件技术有限公司 Video code rate control method and device
CN111277867A (en) * 2020-03-03 2020-06-12 广州市百果园信息技术有限公司 Video downloading method, device, server and storage medium

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014527730A (en) * 2011-06-29 2014-10-16 ロックスター コンソーティアム ユーエス エルピー Method and apparatus for preloading information over a communication network
US9071798B2 (en) * 2013-06-17 2015-06-30 Spotify Ab System and method for switching between media streams for non-adjacent channels while providing a seamless user experience
US9374626B2 (en) * 2013-07-17 2016-06-21 Intel Corporation Use of digital TV bandwidth for web cache pre-loading
FR3013548B1 (en) * 2013-11-18 2017-05-12 Softathome METHOD AND SYSTEM FOR PRE-DOWNLOADING VIDEO ON DEMAND
US10313472B2 (en) * 2014-03-19 2019-06-04 Telefonaktiebolaget Lm Ericsson (Publ) Enabling efficient pre-loading of data for a network client
CN105338409B (en) * 2014-06-30 2020-07-03 小米科技有限责任公司 Network video preloading method and device
CN105657523B (en) * 2016-01-28 2019-11-08 腾讯科技(深圳)有限公司 The method and apparatus that video preloads
CN109982159B (en) * 2017-12-27 2021-10-22 华为技术有限公司 Method and terminal for playing streaming media on line
CN108259975B (en) * 2018-02-01 2020-11-06 广州市百果园信息技术有限公司 Video playing method, storage medium and terminal
CN110545479B (en) * 2018-05-29 2021-07-06 北京字节跳动网络技术有限公司 Loading control method and device for media playing and storage medium
CN112019916B (en) * 2020-08-26 2022-05-03 广州市百果园信息技术有限公司 Video downloading method, device, server and storage medium

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105163137A (en) * 2015-08-20 2015-12-16 小米科技有限责任公司 Network bandwidth adjusting method and system, router and video playing device
CN106937163A (en) * 2017-03-21 2017-07-07 微鲸科技有限公司 Multimedia preloads method and apparatus
CN109218781A (en) * 2017-07-07 2019-01-15 华为软件技术有限公司 Video code rate control method and device
CN111277867A (en) * 2020-03-03 2020-06-12 广州市百果园信息技术有限公司 Video downloading method, device, server and storage medium

Also Published As

Publication number Publication date
CN112672186A (en) 2021-04-16

Similar Documents

Publication Publication Date Title
CN112672186B (en) Video preloading method and device
Spiteri et al. From theory to practice: Improving bitrate adaptation in the DASH reference player
US10389838B2 (en) Client-side predictive caching for content
US10110694B1 (en) Adaptive transfer rate for retrieving content from a server
US8782276B2 (en) Method and system for selecting a delivery method for media on demand
US7949775B2 (en) Stream selection for enhanced media streaming
US20170026713A1 (en) System and Method for Dynamic Adaptive Video Streaming Using Model Predictive Control
CA2793450C (en) Media content improved playback quality
US8886765B2 (en) System and method for predicitive trick play using adaptive video streaming
US20150243329A1 (en) Playback of content pre-delivered to a user device
KR20090130082A (en) Method and system for previewing media over a network
CN110198495A (en) A kind of method, apparatus, equipment and the storage medium of video download and broadcasting
CN110022498B (en) Method and device for realizing code rate switching
US10178143B2 (en) Selecting bitrate to stream encoded media based on tagging of important media segments
US20160072864A1 (en) Method and client terminal for receiving a multimedia content split into at least two successive segments, and corresponding computer program product and computer readable mediium
CN102918594A (en) Cache control for adaptive stream player
US20150268808A1 (en) Method, Device and System for Multi-Speed Playing
US20160029050A1 (en) Hybrid Stream Delivery
US20210112292A1 (en) Partial loading of media based on context
CN114040245B (en) Video playing method and device, computer storage medium and electronic equipment
JP6181291B2 (en) Information transmission based on reading speed
CN116848505A (en) System and method for optimizing hard disk drive throughput
Pleşca et al. Multimedia prefetching with optimal Markovian policies
US11070607B2 (en) Dynamic behavior modification for content download and playback
US9525641B1 (en) Facilitating buffer wait time determination based on device- or entity-related conditions

Legal Events

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