WO2022237461A1 - 视频的预加载方法、装置、设备及存储介质 - Google Patents
视频的预加载方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- WO2022237461A1 WO2022237461A1 PCT/CN2022/087441 CN2022087441W WO2022237461A1 WO 2022237461 A1 WO2022237461 A1 WO 2022237461A1 CN 2022087441 W CN2022087441 W CN 2022087441W WO 2022237461 A1 WO2022237461 A1 WO 2022237461A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- candidate
- duration
- video
- candidate video
- sequence
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/482—End-user interface for programme selection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
Definitions
- the present disclosure relates to the technical field of video processing, for example, to a video preloading method, device, device, and storage medium.
- the user will play the videos in the video queue in sequence. Each of these videos will have a different bitrate resolution available for download.
- the video is usually downloaded in pieces. When the downloaded segments are continuous, the user can play the video smoothly.
- the user will receive a video stream composed of multiple videos recommended based on the user's historical viewing records, and each video is of different lengths. Since the videos are delivered based on the recommendation algorithm, compared with long videos, users have a high probability of not watching all the videos in the recommendation list in turn. Users are likely to skip some disliked videos and watch them directly backwards.
- the viewing behavior of the above users has brought new challenges to the user's playback experience: how to use limited bandwidth resources to maximize the download of videos that meet the user's needs.
- the present disclosure provides a video preloading method, device, equipment, and storage medium, which can maximize the preloading of videos that meet user needs and improve the utilization rate of bandwidth resources.
- the present disclosure provides a video preloading method, including:
- the candidate segment sequence with the highest playback performance is determined as the target segment sequence, and the candidate video segment in the first time window in the target segment sequence is preloaded.
- the present disclosure also provides a video preloading device, including:
- Candidate video fragment determination module is configured to determine multiple candidate video fragments according to the current video to be downloaded and bit rate type
- the time window division module is configured to divide the set duration after the current moment into a set number of time windows
- the candidate slice sequence determination module is configured to determine a plurality of candidate slice sequences according to the plurality of candidate video slices and the set number of time windows; wherein, the candidate slice sequence includes the set number of candidate video segments;
- a playback performance determination module configured to determine the playback performance of each candidate segment sequence within the set duration
- the target segment sequence determination module is configured to determine the candidate segment sequence with the highest playback performance as the target segment sequence, and preload the candidate video segments in the first time window in the target segment sequence.
- the present disclosure also provides an electronic device, the electronic device comprising:
- a storage device configured to store one or more programs
- the one or more processing devices are made to implement the above video preloading method.
- the present disclosure discloses a computer-readable medium on which a computer program is stored, and when the program is executed by a processing device, the above-mentioned video preloading method is realized.
- FIG. 1 is a flow chart of a video preloading method provided by an embodiment of the present disclosure
- FIG. 2 is a schematic structural diagram of a video preloading device provided by an embodiment of the present disclosure
- Fig. 3 is a schematic structural diagram of an electronic device provided by an embodiment of the present disclosure.
- the term “comprise” and its variations are open-ended, ie “including but not limited to”.
- the term “based on” is “based at least in part on”.
- the term “one embodiment” means “at least one embodiment”; the term “another embodiment” means “at least one further embodiment”; the term “some embodiments” means “at least some embodiments.” Relevant definitions of other terms will be given in the description below.
- the preloading behavior adopted in the industry can be summarized as an idle time preloading task: that is, when the currently playing video has been completely downloaded, the current network is considered to be idle, and the current video is downloaded serially during the idle time of the network. Play the task of the video following the video.
- the business end can uniformly set a preload size, such as 800KB, and the number N of videos to be downloaded. After the current video download is completed, the service end will sequentially preload the 800KB bytes of the next N videos to ensure that the data stream of the first few seconds has been cached locally when the broadcast starts, and it can be started without spending extra time for network requests. broadcast.
- Fig. 1 is a flow chart of a video preloading method provided by an embodiment of the present disclosure. This embodiment is applicable to the situation of pre-downloading a video to be played, and the method can be executed by a video preloading device.
- the device can be composed of hardware and/or software, and can generally be integrated into a device with a video preloading function, which can be an electronic device such as a server, a mobile terminal, or a server cluster.
- the method includes:
- the videos to be downloaded may include currently playing videos and unplayed videos pushed into the video queue.
- the type of bit rate can be understood as the bit rate available for each video to be downloaded.
- a video segment can be understood as a video segment with a fixed duration S t , for example, a video segment with a duration of 5 seconds.
- V represents the total number of videos to be downloaded
- L represents the available bit rate types
- the total number of candidate video fragments is V*L.
- X represents video fragments
- X vl represents the vth video to be downloaded
- the sequence of candidate slices includes a set number of candidate video slices.
- the way to determine multiple candidate slice sequences according to multiple candidate video slices and a set number of time windows may be: for each time window, select a candidate video slice from multiple candidate video slices to obtain the set A number of candidate video slices; a set number of candidate video slices are formed into a sequence of candidate slices in time order.
- the sequence of candidate slices contains K candidate video slices.
- Playback performance is determined by terminal revenue and system revenue.
- the process of determining the playback performance of each candidate segment sequence within the set duration may be: for each candidate segment sequence, determine the terminal revenue and playback probability of each candidate video segment in the candidate segment sequence; The terminal revenue and playback probability of the candidate video fragments determine the total terminal revenue of the candidate fragment sequence; determine the system revenue of the candidate fragment sequence; sum the total terminal revenue and the system revenue to obtain the candidate fragment sequence within the set duration playback performance.
- the playback probability can be counted according to the user's historical viewing behavior, and updated according to the transition equation of the Markov probability model.
- the method of determining the total terminal revenue of the candidate segment sequence according to the terminal revenue and playback probability of each candidate video segment may be: respectively multiply the terminal revenue and playback probability of multiple candidate video segments and accumulate , to obtain the total terminal revenue.
- p kv is the probability of playing video v in the kth time window, Indicates the terminal revenue of playing video v in the kth time window.
- the playback probability satisfies the following conditions:
- System benefits can be derived from Indicates that the calculation formula for the playback performance of the candidate segment sequence within the set duration is:
- the method of determining the terminal revenue of each candidate video segment in the candidate segment sequence may be: for each candidate video segment in the candidate segment sequence, determine the image quality, freeze loss and first frame estimation of the candidate video segment Time-consuming; determine the terminal revenue of candidate video segments based on image quality, freeze loss, and estimated time-consuming for the first frame.
- Image quality can be characterized by setting quality evaluation indicators, such as Peak Signal-to-Noise Ratio (PSNR) or Structural SIMilarity (SSIM).
- PSNR Peak Signal-to-Noise Ratio
- SSIM Structural SIMilarity
- Caton loss can be understood as the Caton effect on the currently playing video.
- the time-consuming estimation of the first frame can be understood as the loss of start-up time.
- the calculation formula for determining the terminal revenue of candidate video segments based on image quality, freeze loss, and first frame estimation time consumption is: Among them, Q kv is the image quality on the video v in the kth time window, R kv is the freeze loss on the video v in the kth time window, ST kv is the video quality in the kth time window It takes time to estimate the first frame of video v, ⁇ , ⁇ are the weight coefficients of different parts, which can be adjusted.
- the process of determining the freeze loss of the candidate video segment may be: obtaining the first time length required for downloading the candidate video segment, the second time length required for receiving the set data amount of the candidate video segment, and the time length of the candidate video segment Cache playback duration; determine the stuttering loss based on the first duration, the second duration, and the cache playback duration.
- the first duration is determined by the data volume and predicted bandwidth of the candidate video segments.
- the set data amount may be 1 byte, and the second duration may represent the duration required from sending the download request to receiving the first byte of data.
- the buffer playback duration can be understood as the duration corresponding to the amount of remaining playable data of the candidate video segment in the buffer.
- the way to obtain the first duration required to download the candidate video fragments may be: obtain the data volume and predicted bandwidth of the candidate video fragments; divide the data volume of the candidate video fragments by the predicted bandwidth to obtain the download candidate The first duration required for video fragmentation.
- the predicted bandwidth may be to predict an average bandwidth within a certain period of time in the future.
- the formula for calculating the first duration is: Wherein, S kv is the data volume of the video slice corresponding to the video v in the kth time window, and C represents the prediction bandwidth.
- the way to obtain the cached playback duration of the candidate video segment may be: obtain the buffered playback duration of the previous time window of the candidate video segment and the buffer increase duration from the previous time window to the current time window; according to the above
- the buffered playback duration, first duration, buffer increase duration and second duration of a time window determine the buffered playback duration of the candidate video segment at the current moment.
- the calculation formula for determining the cached playback duration of the candidate video segment at the current moment according to the cached playback duration, first duration, cache increase duration, and second duration of the previous time window is: Wherein, D (k-1)v is the buffer increase time length from the previous time window to the current time window, and ⁇ t is the second time length.
- the calculation formula for determining the freeze loss according to the first duration, the second duration, and the buffer playback duration is:
- B l is the warning value of Buffer, which is a set constant.
- the method for determining the estimated time-consuming of the first frame of the candidate video segment may be as follows: if the cached playback duration of the candidate video segment is greater than or equal to the duration required for starting the broadcast, then the estimated time-consuming of the first frame is 0; If the cached playback duration of the video segment is less than the duration required for the start of playback, the estimated time spent on the first frame is the set value.
- the calculation formula for determining the time-consuming estimation of the first frame of the candidate video segment is: Among them, r is the time required for broadcasting, which is a constant, is the set value.
- the way to determine the system revenue of the candidate slice sequence may be: sum the data volumes corresponding to multiple candidate video slices in the candidate slice sequence to obtain the total data volume; The expected value of multiple candidate video fragments; determine the system benefit according to the total data volume and the expected value.
- the calculation formula for determining the system benefit based on the total data volume and expected value is: Among them, E v is the expectation value of the user watching candidate video segments in multiple time windows, and ⁇ is a weight parameter, which can be adjusted.
- S150 Determine the candidate segment sequence with the highest playback performance as the target segment sequence, and preload the candidate video segments in the first time window in the target segment sequence.
- the candidate segment sequence with the highest playback performance is determined as the target segment sequence, and the candidate video segment in the first time window in the target segment sequence is preloaded.
- the process of S110-S150 is repeated to calculate the candidate video segment that needs to be preloaded at the next moment.
- a plurality of candidate video segments are determined according to the current video to be downloaded and the code rate type; the set duration after the current moment is divided into a set number of time windows; according to the multiple candidate video segments and Set the number of time windows to determine multiple candidate fragment sequences; determine the playback performance of each candidate fragment sequence within a set duration; determine the candidate fragment sequence with the highest playback performance as the target fragment sequence, and preload the target The candidate video slice in the first time window in the slice sequence.
- the video preloading method provided by the embodiment of the present disclosure determines the candidate segment sequence with the highest playback performance as the target segment sequence, and preloads the candidate video segment in the first time window in the target segment sequence, which can maximize Videos that meet user needs can be pre-downloaded efficiently, improving the utilization of bandwidth resources.
- Fig. 2 is a schematic structural diagram of a video preloading device provided by an embodiment of the present disclosure. As shown in Figure 2, the device includes:
- the candidate video segment determination module 210 is configured to determine a plurality of candidate video segments according to the current video to be downloaded and the code rate type; the time window division module 220 is configured to divide the set duration after the current moment into a set amount of time Window; the candidate slice sequence determination module 230 is configured to determine a plurality of candidate slice sequences according to a plurality of candidate video slices and a set number of time windows; wherein, the candidate slice sequence includes a set number of candidate video slices;
- the playback performance determination module 240 is configured to determine the playback performance of each candidate segment sequence within the set duration; the target segment sequence determination module 250 is configured to determine the candidate segment sequence with the highest playback performance as the target segment sequence, And preload the candidate video segments in the first time window in the target segment sequence.
- the candidate slice sequence determination module 230 is set to:
- a candidate video slice is selected from multiple candidate video slices to obtain a set number of candidate video slices; and a set number of candidate video slices are formed into a sequence of candidate slices in time order.
- the playback performance determination module 240 is set to:
- For each candidate segment sequence determine the terminal revenue and playback probability of each candidate video segment in the candidate segment sequence; determine the total terminal revenue of the candidate segment sequence according to the terminal revenue and playback probability of each candidate video segment; Determine the system revenue of the candidate slice sequence; sum the total terminal revenue and the system revenue to obtain the playback performance of the candidate slice sequence within the set duration.
- the playback performance determination module 240 is configured to determine the terminal revenue of each candidate video segment in the candidate segment sequence in the following manner:
- the playback performance determination module 240 is configured to determine the freeze loss of the candidate video fragments in the following manner:
- the playback duration determines the stutter loss.
- the playback performance determination module 240 is configured to determine the time-consuming estimation of the first frame of the candidate video segment in the following manner:
- the estimated time-consuming of the first frame is 0; if the buffered playback duration of the candidate video segment is less than the duration required for playback, the estimated duration of the first frame is set value.
- the playback performance determination module 240 is configured to obtain the first duration required for downloading the candidate video segments in the following manner:
- the playback performance determination module 240 is configured to obtain the cached playback duration of the candidate video fragments in the following manner:
- the playback performance determination module 240 is configured to determine the system revenue of the candidate fragment sequence in the following manner:
- the above-mentioned device can execute the methods provided by all the foregoing embodiments of the present disclosure, and has corresponding functional modules and effects for executing the above-mentioned methods.
- the above-mentioned device can execute the methods provided by all the foregoing embodiments of the present disclosure, and has corresponding functional modules and effects for executing the above-mentioned methods.
- FIG. 3 it shows a schematic structural diagram of an electronic device 300 suitable for implementing an embodiment of the present disclosure.
- the electronic device 300 in the embodiment of the present disclosure may include but not limited to mobile phones, notebook computers, digital broadcast receivers, personal digital assistants (Personal Digital Assistant, PDA), tablet computers (PAD), portable multimedia players (Portable Media Player, PMP), mobile terminals such as vehicle terminals (such as vehicle navigation terminals), fixed terminals such as digital TV (Television, TV), desktop computers, etc., or various forms of servers, such as independent servers or server clusters.
- PDA Personal Digital Assistant
- PMP portable multimedia players
- mobile terminals such as vehicle terminals (such as vehicle navigation terminals), fixed terminals such as digital TV (Television, TV), desktop computers, etc.
- servers such as independent servers or server clusters.
- the electronic device shown in FIG. 3 is only an example, and should not limit the functions and scope of use of the embodiments of the present disclosure.
- an electronic device 300 may include a processing device (such as a central processing unit, a graphics processing unit, etc.)
- the device 308 loads programs in the random access storage device (Random Access Memory, RAM) 303 to perform various appropriate actions and processes.
- RAM Random Access Memory
- various programs and data necessary for the operation of the electronic device 300 are also stored.
- the processing device 301, ROM 302, and RAM 303 are connected to each other through a bus 304.
- An input/output (Input/Output, I/O) interface 305 is also connected to the bus 304 .
- an input device 306 including, for example, a touch screen, a touchpad, a keyboard, a mouse, a camera, a microphone, an accelerometer, a gyroscope, etc.; including, for example, a liquid crystal display (Liquid Crystal Display, LCD) , an output device 307 such as a speaker, a vibrator, etc.; a storage device 308 including, for example, a magnetic tape, a hard disk, etc.; and a communication device 309.
- the communication means 309 may allow the electronic device 300 to perform wireless or wired communication with other devices to exchange data.
- FIG. 3 shows electronic device 300 having various means, it is not a requirement to implement or possess all of the means shown. More or fewer means may alternatively be implemented or provided.
- embodiments of the present disclosure include a computer program product comprising a computer program carried on a computer readable medium, the computer program comprising program code for performing a word recommendation method.
- the computer program may be downloaded and installed from a network via communication means 309, or from storage means 308, or from ROM 302.
- the processing device 301 When the computer program is executed by the processing device 301, the above-mentioned functions defined in the methods of the embodiments of the present disclosure are performed.
- the computer-readable medium mentioned above in the present disclosure may be a computer-readable signal medium or a computer-readable storage medium, or any combination of the above two.
- a computer readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination thereof.
- Examples of computer readable storage media may include, but are not limited to: electrical connections with one or more wires, portable computer disks, hard disks, RAM, ROM, Erasable Programmable Read-Only Memory (EPROM) or flash memory), optical fiber, portable compact disk read-only memory (Compact Disc Read-Only Memory, CD-ROM), optical storage device, magnetic storage device, or any suitable combination of the above.
- a computer-readable storage medium may be any tangible medium that contains or stores a program that can be used by or in conjunction with an instruction execution system, apparatus, or device.
- a computer-readable signal medium may include a data signal in baseband or propagated as part of a carrier wave carrying computer-readable program code therein. Such propagated data signals may take many forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the foregoing.
- a computer-readable signal medium may also be any computer-readable medium other than a computer-readable storage medium, which can transmit, propagate, or transmit a program for use by or in conjunction with an instruction execution system, apparatus, or device .
- the program code contained on the computer readable medium can be transmitted by any appropriate medium, including but not limited to: electric wire, optical cable, radio frequency (Radio Frequency, RF), etc., or any suitable combination of the above.
- the client and the server can communicate using any currently known or future network protocols such as Hypertext Transfer Protocol (HyperText Transfer Protocol, HTTP), and can communicate with digital data in any form or medium
- the communication eg, communication network
- Examples of communication networks include local area networks (Local Area Network, LAN), wide area networks (Wide Area Network, WAN), internetworks (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks), as well as any currently existing networks that are known or developed in the future.
- the above-mentioned computer-readable medium may be included in the above-mentioned electronic device, or may exist independently without being incorporated into the electronic device.
- the above-mentioned computer-readable medium carries one or more programs, and when the above-mentioned one or more programs are executed by the electronic device, the electronic device: determines a plurality of candidate video segments according to the current video to be downloaded and the type of code rate; The set duration after the current moment is divided into a set number of time windows; multiple candidate slice sequences are determined according to the multiple candidate video slices and the set number of time windows; wherein, the candidate slice sequences Including the set number of candidate video fragments; determining the playback performance of each candidate fragment sequence within the set duration; determining the candidate fragment sequence with the highest playback performance as the target fragment sequence, and preloading all Candidate video slices in the first time window in the target slice sequence.
- Computer program code for carrying out operations of the present disclosure may be written in one or more programming languages, or combinations thereof, including but not limited to object-oriented programming languages—such as Java, Smalltalk, C++, and Includes conventional procedural programming languages - such as the "C" language or similar programming languages.
- the program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server.
- the remote computer can be connected to the user computer through any kind of network, including a LAN or WAN, or it can be connected to an external computer (eg via the Internet using an Internet Service Provider).
- each block in a flowchart or block diagram may represent a module, program segment, or portion of code that contains one or more logical functions for implementing specified executable instructions.
- the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or they may sometimes be executed in the reverse order, depending upon the functionality involved.
- each block of the block diagrams and/or flowchart illustrations, and combinations of blocks in the block diagrams and/or flowchart illustrations can be implemented by a dedicated hardware-based system that performs the specified functions or operations , or may be implemented by a combination of dedicated hardware and computer instructions.
- the units involved in the embodiments described in the present disclosure may be implemented by software or by hardware. Wherein, the name of the unit does not constitute a limitation of the unit itself in one case.
- exemplary types of hardware logic components include: Field Programmable Gate Arrays (Field Programmable Gate Arrays, FPGAs), Application Specific Integrated Circuits (ASICs), Application Specific Standard Products (Application Specific Standard Parts, ASSP), System on Chip (System on Chip, SOC), Complex Programmable Logic Device (Complex Programmable Logic Device, CPLD) and so on.
- a machine-readable medium may be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, apparatus, or device.
- a machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium.
- a machine-readable medium may include, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination of the foregoing. Examples of machine-readable storage media would include one or more wire-based electrical connections, portable computer disks, hard disks, RAM, ROM, EPROM or flash memory, optical fiber, CD-ROM, optical storage devices, magnetic storage devices, or Any suitable combination of the above.
- the embodiments of the present disclosure disclose a video preloading method, including:
- the candidate segment sequence with the highest playback performance is determined as the target segment sequence, and the candidate video segment in the first time window in the target segment sequence is preloaded.
- the determining multiple candidate slice sequences according to the multiple candidate video slices and the set number of time windows includes:
- For each time window select a candidate video slice from the plurality of candidate video slices to obtain a set number of candidate video slices;
- the determination of the playback performance of each candidate segment sequence within the set duration includes:
- For each candidate segment sequence determine the terminal revenue and playback probability of each candidate video segment in the candidate segment sequence
- the determining the terminal revenue of each candidate video segment in the candidate segment sequence includes:
- For each candidate video slice in the candidate slice sequence determine the image quality, freeze loss, and first frame estimation time-consuming of the candidate video slice;
- the determination of the freezing loss of the candidate video fragments includes:
- the stuttering loss is determined according to the first duration, the second duration, and the cache playback duration.
- the time-consuming determination of the first frame of the candidate video segment includes:
- the estimated time-consuming of the first frame is 0;
- the estimated time-consuming of the first frame is a set value.
- the acquisition of the first duration required for downloading the candidate video segments includes:
- the acquisition of the cached playback duration of the candidate video fragments includes:
- the buffered playback duration of the candidate video segment at the current moment is determined according to the cached playback duration of the previous time window, the first duration, the cache increase duration, and the second duration.
- the determining the system income of the candidate fragmentation sequence includes:
- the system benefit is determined according to the total data volume and the expected value.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本文公开了一种视频的预加载方法、装置、设备及存储介质。视频的预加载方法包括:根据当前待下载视频和码率种类确定多个候选视频分片(S110);将当前时刻之后的设定时长划分为设定数量的时间窗口(S120);根据多个候选视频分片和设定数量的时间窗口确定多个候选分片序列(S130);确定每个候选分片序列在设定时长内的播放性能(S140);将播放性能最高的候选分片序列确定为目标分片序列,并预加载目标分片序列中处于第一个时间窗口的候选视频分片(S150)。
Description
本申请要求在2021年05月13日提交中国专利局、申请号为202110523764.9的中国专利申请的优先权,该申请的全部内容通过引用结合在本申请中。
本公开涉及视频处理技术领域,例如涉及一种视频的预加载方法、装置、设备及存储介质。
在短视频下载的场景中,用户会依次播放在视频队列内的视频。其中每个视频会有不同的码率清晰度可供下载。此外,为了避免下载资源的浪费通常会把视频进行分片下载。当下载的分片是连续的,那么用户就可以流畅的播放视频。
不同于传统的长视频播放,在短视频播放中,用户会收到一个基于用户历史观看记录推荐的多个视频组成的视频流,每个视频长短不一。由于是基于推荐算法下发的视频,相比于长视频来说,用户就有很大的概率并不依次观看所有在推荐列表中的视频。用户很有可能会直接跳过一些不喜欢的视频,直接向后观看。
以上用户的观看行为,就对用户的播放体验带来了新的挑战:如何利用有限的带宽资源,最大化的下载到符合用户需求的视频。
发明内容
本公提供一种视频的预加载方法、装置、设备及存储介质,可以最大化地预先下载到符合用户需求的视频,提高带宽资源的利用率。
本公开提供了一种视频的预加载方法,包括:
根据当前待下载视频和码率种类确定多个候选视频分片;
将当前时刻之后的设定时长划分为设定数量的时间窗口;
根据所述多个候选视频分片和所述设定数量的时间窗口确定多个候选分片序列;其中,所述候选分片序列包括所述设定数量的候选视频分片;
确定每个候选分片序列在所述设定时长内的播放性能;
将播放性能最高的候选分片序列确定为目标分片序列,并预加载所述目标 分片序列中处于第一个时间窗口的候选视频分片。
本公开还提供了一种视频的预加载装置,包括:
候选视频分片确定模块,设置为根据当前待下载视频和码率种类确定多个候选视频分片;
时间窗口划分模块,设置为将当前时刻之后的设定时长划分为设定数量的时间窗口;
候选分片序列确定模块,设置为根据所述多个候选视频分片和所述设定数量的时间窗口确定多个候选分片序列;其中,所述候选分片序列包括所述设定数量的候选视频分片;
播放性能确定模块,设置为确定每个候选分片序列在所述设定时长内的播放性能;
目标分片序列确定模块,设置为将播放性能最高的候选分片序列确定为目标分片序列,并预加载所述目标分片序列中处于第一个时间窗口的候选视频分片。
本公开还提供了一种电子设备,所述电子设备包括:
一个或多个处理装置;
存储装置,设置为存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理装置执行,使得所述一个或多个处理装置实现上述的视频的预加载方法。
本公开公开了一种计算机可读介质,其上存储有计算机程序,该程序被处理装置执行时实现上述的视频的预加载方法。
图1是本公开实施例提供的一种视频的预加载方法的流程图;
图2是本公开实施例提供的一种视频的预加载装置的结构示意图;
图3是本公开实施例提供的一种电子设备的结构示意图。
下面将参照附图描述本公开的实施例。虽然附图中显示了本公开的一些实施例,本公开可以通过多种形式来实现,提供这些实施例是为了理解本公开。本公开的附图及实施例仅用于示例性作用。
本公开的方法实施方式中记载的多个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
为了能够让用户有较低的起播延迟,在客户端,用户除了可以下载当前播放的视频以外,也会提前进行下一个视频的下载。该下载行为称之为视频的预加载。业内采用的预加载行为可以归纳为闲时预加载任务:即当当前正在播放的视频已经完全下载完成之后,就认为当前的网络为空闲的,利用此网络空闲的时间,串行地下载当前正在播放的视频后面的视频的任务。通常情况下,业务端可以统一设置一个预加载的大小,例如800KB,以及需要下载的视频数量N。当前视频下载完成后,业务端则会顺序预加载后面N个视频的800KB的字节,保证起播的时候前几秒的数据流已经缓存在本地,不用花费额外的时间进行网络请求就可以起播。
图1是本公开实施例提供的一种视频的预加载方法的流程图,本实施例可适用于对即将播放的视频进行预先下载的情况,该方法可以由视频的预加载装置来执行,该装置可由硬件和/或软件组成,并一般可集成在具有视频的预加载功能的设备中,该设备可以是服务器、移动终端或服务器集群等电子设备。如图1所示,该方法包括:
S110,根据当前待下载视频和码率种类确定多个候选视频分片。
待下载视频可以包括当前正在播放的视频以及推送至视频队列中且未播放的视频。码率种类可以理解为每个待下载视频可供选择的码率。视频分片可以理解为固定时长S
t的视频片段,例如:可以是时长为5秒的视频片段。假设V表示当前待下载视频的总数,L表示可供选择的码率种类,则候选视频分片的总 数为V*L,假设由X表示视频分片,则X
vl表示第v个待下载视频中码率为l的视频分片。
S120,将当前时刻之后的设定时长划分为设定数量的时间窗口。
设定时长T可以设置为15-25秒之间,时间窗口所占的时长可以由视频分片的时长确定,例如5秒。则T=K*S
t,其中,K为时间窗口的数量,为3-5个。
S130,根据多个候选视频分片和设定数量的时间窗口确定多个候选分片序列。
候选分片序列包括设定数量的候选视频分片。本实施例中,在每个时间窗口中候选视频分片有V*L个选择,则在K的时间窗口中,候选分片序列共有(V*L)^K个。因此要从(V*L)^K个候选分片序列中确定出目标分片序列。
根据多个候选视频分片和设定数量的时间窗口确定多个候选分片序列的方式可以是:针对每个时间窗口,从多个候选视频分片中选择一个候选视频分片,获得设定数量的候选视频分片;将设定数量的候选视频分片按照时间顺序组成一候选分片序列。
假设设定数量为K,则候选分片序列中包含有K个候选视频分片。示例性的,假设K=3,V=5,L=3,则一个候选分片序列可以是[X
01,X
11,X
42],该候选分片序列表示在第一个时间窗口选择了视频序号为0且码率序号为1的候选视频分片,在第二个时间窗口选择了视频序号为1且码率序号为1的候选视频分片,在第三个时间窗口选择了视频序号为4且码率序号为2的候选视频分片。
S140,确定每个候选分片序列在设定时长内的播放性能。
播放性能由终端收益和系统收益来确定。
确定每个候选分片序列在设定时长内的播放性能的过程可以是:对于每个候选分片序列,确定候选分片序列中每个候选视频分片的终端收益和播放概率;根据每个候选视频分片的终端收益和播放概率确定候选分片序列的总终端收益;确定候选分片序列的系统收益;将总终端收益和系统收益进行求和,获得候选分片序列在设定时长内的播放性能。
播放概率可以根据用户的历史观看行为进行统计,并根据马尔科夫概率模型的转移方程进行更新。
本实施例中,根据每个候选视频分片的终端收益和播放概率确定候选分片序列的总终端收益的方式可以是:分别将多个候选视频分片的终端收益和播放概率相乘后累加,获得总终端收益。计算公式如下:
其中,p
kv为在第k个时间窗口播放视频v的概率,
表示第k个时间窗口播放视频v的终端收益。
确定候选分片序列中每个候选视频分片的终端收益的方式可以是:对于候选分片序列中的每个候选视频分片,确定候选视频分片的图像质量、卡顿损失及首帧估计耗时;基于图像质量、卡顿损失及首帧估计耗时确定候选视频分片的终端收益。
图像质量可以采用设定质量评价指标来表征,例如峰值信噪比(Peak Signal-to-Noise Ratio,PSNR)或者结构相似性(Structural SIMilarity,SSIM)。卡顿损失可以理解为对当前播放视频的卡顿影响。首帧估计耗时可以理解为起播时间损失。
本实施例中,基于图像质量、卡顿损失及首帧估计耗时确定候选视频分片的终端收益的计算公式为:
其中,Q
kv为在第k个时间窗口中在视频v上的图像质量,R
kv为在第k个时间窗口中在视频v上的卡顿损失,ST
kv为在第k个时间窗口中在视频v上的首帧估计耗时,α,β,μ为不同部分的权重系数,可调节。
确定候选视频分片的卡顿损失的过程可以是:获取下载候选视频分片所需的第一时长、接收到候选视频分片的设定数据量所需的第二时长以及候选视频分片的缓存播放时长;根据第一时长、第二时长和缓存播放时长确定卡顿损失。
第一时长由候选视频分片的数据量及预测带宽确定。设定数据量可以是1个字节,第二时长可以表示从发送下载请求到接收到第一字节的数据所需的时长。缓存播放时长可以理解为在缓存(buffer)中候选视频分片剩余的可播放数据量对应的时长。
本实施例中,获取下载候选视频分片所需的第一时长的方式可以是:获取候选视频分片的数据量以及预测带宽;将候选视频分片的数据量除以预测带宽,获得下载候选视频分片所需的第一时长。
本实施例中,获取候选视频分片的缓存播放时长的方式可以是:获取候选视频分片的上一时间窗口的缓存播放时长及从上一时间窗口到当前时间窗口的缓存增加时长;根据上一时间窗口的缓存播放时长、第一时长、缓存增加时长和第二时长确定当前时刻候选视频分片的缓存播放时长。
根据上一时间窗口的缓存播放时长、第一时长、缓存增加时长和第二时长确定当前时刻候选视频分片的缓存播放时长的计算公式为:
其中,D
(k-1)v为从上一时间窗口到当前时间窗口的缓存增加时长,Δt为第二时长。
本实施例中,确定候选视频分片的首帧估计耗时的方式可以是:若候选视频分片的缓存播放时长大于或者等于起播所需时长,则首帧估计耗时为0;若候选视频分片的缓存播放时长小于起播所需时长,则首帧估计耗时为设定值。
本实施例中,确定候选分片序列的系统收益的方式可以是:将候选分片序列中多个候选视频分片对应的数据量求和,获得总数据量;确定用户观看候选分片序列中多个候选视频分片的期望值;根据总数据量和期望值确定系统收益。
S150,将播放性能最高的候选分片序列确定为目标分片序列,并预加载目标分片序列中处于第一个时间窗口的候选视频分片。
在获得每个候选分片序列的播放性能之后,将播放性能最高的候选分片序列确定为目标分片序列,并预加载目标分片序列中处于第一个时间窗口的候选视频分片。本实施例中,在下载完成目标分片序列中处于第一个时间窗口的候选视频分片之后,会重复S110-S150的过程,以计算下一个时刻需要预加载的 候选视频分片。
本公开实施例的技术方案,根据当前待下载视频和码率种类确定多个候选视频分片;将当前时刻之后的设定时长划分为设定数量的时间窗口;根据多个候选视频分片和设定数量的时间窗口确定多个候选分片序列;确定每个候选分片序列在设定时长内的播放性能;将播放性能最高的候选分片序列确定为目标分片序列,并预加载目标分片序列中处于第一个时间窗口的候选视频分片。本公开实施例提供的视频的预加载方法,将播放性能最高的候选分片序列确定为目标分片序列,并预加载目标分片序列中处于第一个时间窗口的候选视频分片,可以最大化地预先下载到符合用户需求的视频,提高带宽资源的利用率。
图2是本公开实施例提供的一种视频的预加载装置的结构示意图。如图2所示,该装置包括:
候选视频分片确定模块210,设置为根据当前待下载视频和码率种类确定多个候选视频分片;时间窗口划分模块220,设置为将当前时刻之后的设定时长划分为设定数量的时间窗口;候选分片序列确定模块230,设置为根据多个候选视频分片和设定数量的时间窗口确定多个候选分片序列;其中,候选分片序列包括设定数量的候选视频分片;播放性能确定模块240,设置为确定每个候选分片序列在设定时长内的播放性能;目标分片序列确定模块250,设置为将播放性能最高的候选分片序列确定为目标分片序列,并预加载目标分片序列中处于第一个时间窗口的候选视频分片。
可选的,候选分片序列确定模块230,设置为:
针对每个时间窗口,从多个候选视频分片中选择一个候选视频分片,获得设定数量的候选视频分片;将设定数量的候选视频分片按照时间顺序组成一候选分片序列。
可选的,播放性能确定模块240,设置为:
对于每个候选分片序列,确定候选分片序列中每个候选视频分片的终端收益和播放概率;根据每个候选视频分片的终端收益和播放概率确定候选分片序列的总终端收益;确定候选分片序列的系统收益;将总终端收益和系统收益进行求和,获得候选分片序列在设定时长内的播放性能。
可选的,播放性能确定模块240,设置为通过如下方式确定候选分片序列中每个候选视频分片的终端收益:
对于候选分片序列中的每个候选视频分片,确定候选视频分片的图像质量、卡顿损失及首帧估计耗时;基于图像质量、卡顿损失及首帧估计耗时确定候选视频分片的终端收益。
可选的,播放性能确定模块240,设置为通过如下方式确定候选视频分片的卡顿损失:
获取下载候选视频分片所需的第一时长、接收到候选视频分片的设定数据量所需的第二时长以及候选视频分片的缓存播放时长;根据第一时长、第二时长和缓存播放时长确定卡顿损失。
可选的,播放性能确定模块240,设置为通过如下方式确定所述候选视频分片的首帧估计耗时:
若候选视频分片的缓存播放时长大于或者等于起播所需时长,则首帧估计耗时为0;若候选视频分片的缓存播放时长小于起播所需时长,则首帧估计耗时为设定值。
可选的,播放性能确定模块240,设置为通过如下方式获取下载所述候选视频分片所需的第一时长:
获取候选视频分片的数据量以及预测带宽;将候选视频分片的数据量除以预测带宽,获得下载候选视频分片所需的第一时长。
可选的,播放性能确定模块240,设置为通过如下方式获取所述候选视频分片的缓存播放时长:
获取候选视频分片的上一时间窗口的缓存播放时长及从上一时间窗口到当前时间窗口的缓存增加时长;根据上一时间窗口的缓存播放时长、第一时长、缓存增加时长和第二时长确定当前时刻候选视频分片的缓存播放时长。
可选的,播放性能确定模块240,设置为通过如下方式确定所述候选分片序列的系统收益:
将候选分片序列中多个候选视频分片对应的数据量求和,获得总数据量;确定用户观看候选分片序列中多个候选视频分片的期望值;根据总数据量和期望值确定系统收益。
上述装置可执行本公开前述所有实施例所提供的方法,具备执行上述方法相应的功能模块和效果。未在本实施例中详尽描述的技术细节,可参见本公开前述所有实施例所提供的方法。
下面参考图3,其示出了适于用来实现本公开实施例的电子设备300的结构示意图。本公开实施例中的电子设备300可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、个人数字助理(Personal Digital Assistant,PDA)、平板电脑(PAD)、便携式多媒体播放器(Portable Media Player,PMP)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字电视(Television,TV)、 台式计算机等等的固定终端,或者多种形式的服务器,如独立服务器或者服务器集群。图3示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图3所示,电子设备300可以包括处理装置(例如中央处理器、图形处理器等)301,其可以根据存储在只读存储装置(Read-Only Memory,ROM)302中的程序或者从存储装置308加载到随机访问存储装置(Random Access Memory,RAM)303中的程序而执行多种适当的动作和处理。在RAM 303中,还存储有电子设备300操作所需的多种程序和数据。处理装置301、ROM 302以及RAM 303通过总线304彼此相连。输入/输出(Input/Output,I/O)接口305也连接至总线304。
通常,以下装置可以连接至I/O接口305:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置306;包括例如液晶显示器(Liquid Crystal Display,LCD)、扬声器、振动器等的输出装置307;包括例如磁带、硬盘等的存储装置308;以及通信装置309。通信装置309可以允许电子设备300与其他设备进行无线或有线通信以交换数据。虽然图3示出了具有多种装置的电子设备300,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行词语的推荐方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置309从网络上被下载和安装,或者从存储装置308被安装,或者从ROM 302被安装。在该计算机程序被处理装置301执行时,执行本公开实施例的方法中限定的上述功能。
本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、RAM、ROM、可擦式可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算 机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、射频(Radio Frequency,RF)等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、服务器可以利用诸如超文本传输协议(HyperText Transfer Protocol,HTTP)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(Local Area Network,LAN),广域网(Wide Area Network,WAN),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:根据当前待下载视频和码率种类确定多个候选视频分片;将当前时刻之后的设定时长划分为设定数量的时间窗口;根据所述多个候选视频分片和所述设定数量的时间窗口确定多个候选分片序列;其中,所述候选分片序列包括所述设定数量的候选视频分片;确定每个候选分片序列在所述设定时长内的播放性能;将播放性能最高的候选分片序列确定为目标分片序列,并预加载所述目标分片序列中处于第一个时间窗口的候选视频分片。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括LAN或WAN—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开多种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图 中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在一种情况下并不构成对该单元本身的限定。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(Field Programmable Gate Array,FPGA)、专用集成电路(Application Specific Integrated Circuit,ASIC)、专用标准产品(Application Specific Standard Parts,ASSP)、片上系统(System on Chip,SOC)、复杂可编程逻辑设备(Complex Programmable Logic Device,CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、RAM、ROM、EPROM或快闪存储器、光纤、CD-ROM、光学储存设备、磁储存设备、或上述内容的任何合适组合。
根据本公开实施例的一个或多个实施例,本公开实施例公开了一种视频的预加载方法,包括:
根据当前待下载视频和码率种类确定多个候选视频分片;
将当前时刻之后的设定时长划分为设定数量的时间窗口;
根据所述多个候选视频分片和所述设定数量的时间窗口确定多个候选分片序列;其中,所述候选分片序列包括所述设定数量的候选视频分片;
确定每个候选分片序列在所述设定时长内的播放性能;
将播放性能最高的候选分片序列确定为目标分片序列,并预加载所述目标 分片序列中处于第一个时间窗口的候选视频分片。
所述根据所述多个候选视频分片和所述设定数量的时间窗口确定多个候选分片序列,包括:
针对每个时间窗口,从所述多个候选视频分片中选择一个候选视频分片,获得设定数量的候选视频分片;
将所述设定数量的候选视频分片按照时间顺序组成一候选分片序列。
所述确定每个候选分片序列在所述设定时长内的播放性能,包括:
对于每个候选分片序列,确定所述候选分片序列中每个候选视频分片的终端收益和播放概率;
根据每个候选视频分片的终端收益和播放概率确定所述候选分片序列的总终端收益;
确定所述候选分片序列的系统收益;
将所述总终端收益和所述系统收益进行求和,获得所述候选分片序列在所述设定时长内的播放性能。
所述确定所述候选分片序列中每个候选视频分片的终端收益,包括:
对于所述候选分片序列中的每个候选视频分片,确定所述候选视频分片的图像质量、卡顿损失及首帧估计耗时;
基于所述图像质量、所述卡顿损失及所述首帧估计耗时确定所述候选视频分片的终端收益。
所述确定所述候选视频分片的卡顿损失,包括:
获取下载所述候选视频分片所需的第一时长、接收到所述候选视频分片的设定数据量所需的第二时长以及所述候选视频分片的缓存播放时长;
根据所述第一时长、所述第二时长和所述缓存播放时长确定所述卡顿损失。
所述确定所述候选视频分片的首帧估计耗时,包括:
若所述候选视频分片的缓存播放时长大于或者等于起播所需时长,则所述首帧估计耗时为0;
所述若所述候选视频分片的缓存播放时长小于起播所需时长,则所述首帧估计耗时为设定值。
所述获取下载所述候选视频分片所需的第一时长,包括:
获取所述候选视频分片的数据量以及预测带宽;
将所述候选视频分片的数据量除以所述预测带宽,获得下载所述候选视频分片所需的第一时长。
所述获取所述候选视频分片的缓存播放时长,包括:
获取所述候选视频分片的上一时间窗口的缓存播放时长及从所述上一时间窗口到当前时间窗口的缓存增加时长;
根据所述上一时间窗口的缓存播放时长、所述第一时长、所述缓存增加时长和所述第二时长确定当前时刻所述候选视频分片的缓存播放时长。
所述确定所述候选分片序列的系统收益,包括:
将所述候选分片序列中多个候选视频分片对应的数据量求和,获得总数据量;
确定用户观看所述候选分片序列中多个候选视频分片的期望值;
根据所述总数据量和所述期望值确定所述系统收益。
Claims (12)
- 一种视频的预加载方法,包括:根据当前待下载视频和码率种类确定多个候选视频分片;将当前时刻之后的设定时长划分为设定数量的时间窗口;根据所述多个候选视频分片和所述设定数量的时间窗口确定多个候选分片序列;其中,所述候选分片序列包括所述设定数量的候选视频分片;确定每个候选分片序列在所述设定时长内的播放性能;将播放性能最高的候选分片序列确定为目标分片序列,并预加载所述目标分片序列中处于第一个时间窗口的候选视频分片。
- 根据权利要求1所述的方法,其中,所述根据所述多个候选视频分片和所述设定数量的时间窗口确定多个候选分片序列,包括:针对每个时间窗口,从所述多个候选视频分片中选择一个候选视频分片,获得设定数量的候选视频分片;将所述设定数量的候选视频分片按照时间顺序组成一候选分片序列。
- 根据权利要求1所述的方法,其中,所述确定每个候选分片序列在所述设定时长内的播放性能,包括:对于每个候选分片序列,确定所述候选分片序列中每个候选视频分片的终端收益和播放概率;根据每个候选视频分片的终端收益和播放概率确定所述候选分片序列的总终端收益;确定所述候选分片序列的系统收益;将所述总终端收益和所述系统收益进行求和,获得所述候选分片序列在所述设定时长内的播放性能。
- 根据权利要求3所述的方法,其中,所述确定所述候选分片序列中每个候选视频分片的终端收益,包括:对于所述候选分片序列中的每个候选视频分片,确定所述候选视频分片的图像质量、卡顿损失及首帧估计耗时;基于所述图像质量、所述卡顿损失及所述首帧估计耗时确定所述候选视频分片的终端收益。
- 根据权利要求4所述的方法,其中,所述确定所述候选视频分片的卡顿损失,包括:获取下载所述候选视频分片所需的第一时长、接收到所述候选视频分片的设定数据量所需的第二时长以及所述候选视频分片的缓存播放时长;根据所述第一时长、所述第二时长和所述缓存播放时长确定所述卡顿损失。
- 根据权利要求5所述的方法,其中,所述确定所述候选视频分片的首帧估计耗时,包括:在所述候选视频分片的缓存播放时长大于或者等于起播所需时长的情况下,所述首帧估计耗时为0;在所述候选视频分片的缓存播放时长小于起播所需时长的情况下,所述首帧估计耗时为设定值。
- 根据权利要求5所述的方法,其中,所述获取下载所述候选视频分片所需的第一时长,包括:获取所述候选视频分片的数据量以及预测带宽;将所述候选视频分片的数据量除以所述预测带宽,获得下载所述候选视频分片所需的第一时长。
- 根据权利要求5所述的方法,其中,所述获取所述候选视频分片的缓存播放时长,包括:获取所述候选视频分片的上一时间窗口的缓存播放时长及从所述上一时间窗口到当前时间窗口的缓存增加时长;根据所述上一时间窗口的缓存播放时长、所述第一时长、所述缓存增加时长和所述第二时长确定当前时刻所述候选视频分片的缓存播放时长。
- 根据权利要求3所述的方法,其中,所述确定所述候选分片序列的系统收益,包括:将所述候选分片序列中多个候选视频分片对应的数据量求和,获得总数据量;确定用户观看所述候选分片序列中多个候选视频分片的期望值;根据所述总数据量和所述期望值确定所述系统收益。
- 一种视频的预加载装置,包括:候选视频分片确定模块,设置为根据当前待下载视频和码率种类确定多个候选视频分片;时间窗口划分模块,设置为将当前时刻之后的设定时长划分为设定数量的 时间窗口;候选分片序列确定模块,设置为根据所述多个候选视频分片和所述设定数量的时间窗口确定多个候选分片序列;其中,所述候选分片序列包括所述设定数量的候选视频分片;播放性能确定模块,设置为确定每个候选分片序列在所述设定时长内的播放性能;目标分片序列确定模块,设置为将播放性能最高的候选分片序列确定为目标分片序列,并预加载所述目标分片序列中处于第一个时间窗口的候选视频分片。
- 一种电子设备,包括:至少一个处理装置;存储装置,设置为存储至少一个程序;当所述至少一个程序被所述至少一个处理装置执行,使得所述至少一个处理装置实现如权利要求1-9中任一项所述的视频的预加载方法。
- 一种计算机可读介质,存储有计算机程序,其中,所述程序被处理装置执行时实现如权利要求1-9中任一项所述的视频的预加载方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202110523764.9 | 2021-05-13 | ||
| CN202110523764.9A CN115348460B (zh) | 2021-05-13 | 2021-05-13 | 视频的预加载方法、装置、设备及存储介质 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2022237461A1 true WO2022237461A1 (zh) | 2022-11-17 |
Family
ID=83977858
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2022/087441 Ceased WO2022237461A1 (zh) | 2021-05-13 | 2022-04-18 | 视频的预加载方法、装置、设备及存储介质 |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN115348460B (zh) |
| WO (1) | WO2022237461A1 (zh) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN116347117A (zh) * | 2023-03-06 | 2023-06-27 | 武汉市烽视威科技有限公司 | 视频数据缓存方法、装置、设备及可读存储介质 |
| CN116708880A (zh) * | 2023-06-05 | 2023-09-05 | 清华大学深圳国际研究生院 | 视频数据轮播方法、装置、设备和存储介质 |
| CN119094820A (zh) * | 2024-08-06 | 2024-12-06 | 北京百度网讯科技有限公司 | 一种视频预加载方法、装置、电子设备及存储介质 |
| CN121644809A (zh) * | 2026-02-05 | 2026-03-10 | 上海正项信息科技有限公司 | 基于自适应码率的高清无线视频流数据压缩方法 |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN116248766B (zh) * | 2023-01-29 | 2025-09-30 | 北京达佳互联信息技术有限公司 | 缓存控制方法、装置、电子设备及存储介质 |
| CN119583854A (zh) * | 2024-12-04 | 2025-03-07 | 杭州海康威视系统技术有限公司 | 预热点位确定方法、装置及设备 |
Citations (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2012160796A (ja) * | 2011-01-31 | 2012-08-23 | Mitsubishi Electric Corp | プレイリスト作成装置、プレイリスト編集装置 |
| US20160308994A1 (en) * | 2015-04-19 | 2016-10-20 | Carlos Manuel Gonzalez | Pre-Load of Video Content to Optimize Internet Usage |
| CN106550284A (zh) * | 2015-09-21 | 2017-03-29 | 北京国双科技有限公司 | 一种播放分片视频的方法及装置 |
| US20180035151A1 (en) * | 2016-08-01 | 2018-02-01 | Microsoft Technology Licensing, Llc | Video segment playlist generation in a video management system |
| WO2018201746A1 (zh) * | 2017-05-05 | 2018-11-08 | 广州优视网络科技有限公司 | 预加载视频的方法、设备、视频播放器、电子设备 |
| CN110072145A (zh) * | 2019-04-03 | 2019-07-30 | 北京字节跳动网络技术有限公司 | 用于终端设备的信息播放方法、装置和终端设备 |
| US20200351564A1 (en) * | 2017-10-30 | 2020-11-05 | Guangzhou Huya Information Technology Co., Ltd. | Video Playback Control Method, Apparatus, and Terminal |
| CN112423127A (zh) * | 2020-11-20 | 2021-02-26 | 上海哔哩哔哩科技有限公司 | 视频加载方法及装置 |
Family Cites Families (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TW201615022A (en) * | 2014-10-14 | 2016-04-16 | Hon Hai Prec Ind Co Ltd | Video preloading system and method of video preloading |
| CN104683857B (zh) * | 2015-01-23 | 2018-05-29 | 华为技术有限公司 | 用于数据预加载的可视化呈现的方法和设备 |
| CN105657523B (zh) * | 2016-01-28 | 2019-11-08 | 腾讯科技(深圳)有限公司 | 视频预加载的方法和装置 |
| US20180109827A1 (en) * | 2016-10-13 | 2018-04-19 | International Business Machines Corporation | User affinity for video content and video content recommendations |
| CN106791898B (zh) * | 2016-12-12 | 2020-02-14 | 广州华多网络科技有限公司 | 一种直播视频加载方法和装置 |
| CN108024145B (zh) * | 2017-12-07 | 2020-12-11 | 北京百度网讯科技有限公司 | 视频推荐方法、装置、计算机设备和存储介质 |
| US20190200051A1 (en) * | 2017-12-27 | 2019-06-27 | Facebook, Inc. | Live Media-Item Transitions |
| CN109040801B (zh) * | 2018-07-19 | 2019-07-09 | 北京达佳互联信息技术有限公司 | 媒体码率自适应方法、装置、计算机设备及存储介质 |
| CN111385660B (zh) * | 2018-12-28 | 2022-07-12 | 广州市百果园信息技术有限公司 | 视频的点播方法、装置、设备及存储介质 |
| CN111866549B (zh) * | 2019-04-29 | 2023-03-24 | 腾讯科技(深圳)有限公司 | 一种视频处理方法及装置、终端、存储介质 |
| CN110868626B (zh) * | 2019-11-06 | 2021-06-11 | 北京达佳互联信息技术有限公司 | 一种内容数据预加载的方法及装置 |
| CN112423125A (zh) * | 2020-11-20 | 2021-02-26 | 上海哔哩哔哩科技有限公司 | 视频加载方法及装置 |
| CN112672186B (zh) * | 2020-12-09 | 2023-03-24 | 北京达佳互联信息技术有限公司 | 视频预加载的方法和装置 |
-
2021
- 2021-05-13 CN CN202110523764.9A patent/CN115348460B/zh active Active
-
2022
- 2022-04-18 WO PCT/CN2022/087441 patent/WO2022237461A1/zh not_active Ceased
Patent Citations (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2012160796A (ja) * | 2011-01-31 | 2012-08-23 | Mitsubishi Electric Corp | プレイリスト作成装置、プレイリスト編集装置 |
| US20160308994A1 (en) * | 2015-04-19 | 2016-10-20 | Carlos Manuel Gonzalez | Pre-Load of Video Content to Optimize Internet Usage |
| CN106550284A (zh) * | 2015-09-21 | 2017-03-29 | 北京国双科技有限公司 | 一种播放分片视频的方法及装置 |
| US20180035151A1 (en) * | 2016-08-01 | 2018-02-01 | Microsoft Technology Licensing, Llc | Video segment playlist generation in a video management system |
| WO2018201746A1 (zh) * | 2017-05-05 | 2018-11-08 | 广州优视网络科技有限公司 | 预加载视频的方法、设备、视频播放器、电子设备 |
| US20200351564A1 (en) * | 2017-10-30 | 2020-11-05 | Guangzhou Huya Information Technology Co., Ltd. | Video Playback Control Method, Apparatus, and Terminal |
| CN110072145A (zh) * | 2019-04-03 | 2019-07-30 | 北京字节跳动网络技术有限公司 | 用于终端设备的信息播放方法、装置和终端设备 |
| CN112423127A (zh) * | 2020-11-20 | 2021-02-26 | 上海哔哩哔哩科技有限公司 | 视频加载方法及装置 |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN116347117A (zh) * | 2023-03-06 | 2023-06-27 | 武汉市烽视威科技有限公司 | 视频数据缓存方法、装置、设备及可读存储介质 |
| CN116708880A (zh) * | 2023-06-05 | 2023-09-05 | 清华大学深圳国际研究生院 | 视频数据轮播方法、装置、设备和存储介质 |
| CN119094820A (zh) * | 2024-08-06 | 2024-12-06 | 北京百度网讯科技有限公司 | 一种视频预加载方法、装置、电子设备及存储介质 |
| CN121644809A (zh) * | 2026-02-05 | 2026-03-10 | 上海正项信息科技有限公司 | 基于自适应码率的高清无线视频流数据压缩方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN115348460A (zh) | 2022-11-15 |
| CN115348460B (zh) | 2024-06-07 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2022237461A1 (zh) | 视频的预加载方法、装置、设备及存储介质 | |
| US10110694B1 (en) | Adaptive transfer rate for retrieving content from a server | |
| CN112135169B (zh) | 一种媒体内容加载方法、装置、设备和介质 | |
| CN114401447A (zh) | 一种视频卡顿预测方法、装置、设备和介质 | |
| CN115250295B (zh) | 一种媒体内容处理方法、装置、设备和存储介质 | |
| CN112887795B (zh) | 视频播放方法、装置、设备和介质 | |
| CN114786055B (zh) | 一种预加载方法、装置、电子设备及介质 | |
| CN111147606B (zh) | 数据传输的方法、装置、终端及存储介质 | |
| WO2023051243A1 (zh) | 视频码率切换方法、装置、电子设备及存储介质 | |
| CN106998485B (zh) | 视频直播方法及装置 | |
| CN114567812B (zh) | 音频播放方法、装置、系统、电子设备及存储介质 | |
| CN107690093B (zh) | 一种视频播放方法及装置 | |
| CN114979762A (zh) | 视频下载、传输方法、装置、终端设备、服务器及介质 | |
| WO2023226742A1 (zh) | 视频转码方法、装置、设备和存储介质 | |
| CN113242446A (zh) | 视频帧的缓存方法、转发方法、通信服务器及程序产品 | |
| CN114630157A (zh) | 直播启播方法、设备及程序产品 | |
| CN110674400B (zh) | 排序方法、装置、电子设备及计算机可读存储介质 | |
| WO2022188618A1 (zh) | 资源预加载方法、装置、设备和存储介质 | |
| CN116304427A (zh) | 一种预加载方法、装置、存储介质及电子设备 | |
| CN111741335A (zh) | 数据处理方法及装置、移动终端和计算机可读存储介质 | |
| CN114257870A (zh) | 短视频播放方法、装置、设备及存储介质 | |
| WO2025213922A1 (zh) | 视频处理方法、装置、存储介质及电子设备 | |
| CN112153322B (zh) | 数据分发方法、装置、设备及存储介质 | |
| CN114915849B (zh) | 视频的预加载方法、装置、设备和介质 | |
| CN114979712B (zh) | 视频起播方法、装置、设备及存储介质 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 22806431 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 32PN | Ep: public notification in the ep bulletin as address of the adressee cannot be established |
Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 23.02.2024) |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 22806431 Country of ref document: EP Kind code of ref document: A1 |




