A panoramic video caching method, device, apparatus and storage medium
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-02-14
- Publication Date
- 2026-08-11
AI Technical Summary
然而,这样缓存方式会大大增加边缘服务器的缓存成本
Smart Images

Figure CN116347115B_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to computer technology, and more particularly to a panoramic video caching method, apparatus, device, and storage medium. Background Technology
[0002] With the rapid development of computer technology, it is now possible to capture 360-degree panoramic videos. When playing panoramic videos, users can switch perspectives to view different viewpoints within the video.
[0003] Currently, clients only need to acquire the viewpoint stream to be viewed in order to reduce transmission bandwidth. To improve the speed of viewpoint stream acquisition, all viewpoint streams in the panoramic video are typically cached on the edge server, allowing clients to directly acquire the viewpoint stream from the edge server. However, this caching method significantly increases the caching cost of the edge server. Summary of the Invention
[0004] This disclosure provides a panoramic video caching method, apparatus, device, and storage medium to reduce caching costs on edge servers while improving streaming hit rate.
[0005] In a first aspect, embodiments of this disclosure provide a panoramic video caching method applied to an edge server, the edge server being connected to multiple clients, the method comprising:
[0006] Determine the current playback delay information of each client playing the target panoramic video, and based on the current playback delay information, determine the target client that meets the preset low latency condition;
[0007] Obtain the first-viewpoint stream played by the target client within a historical time period and the viewing angle offset corresponding to the first-viewpoint stream, wherein the first-viewpoint stream is the video stream under the target viewpoint in the target panoramic video;
[0008] Based on the viewing angle offset, determine the cache priority corresponding to each first viewpoint stream;
[0009] Based on the cache priority corresponding to the first perspective stream, a second perspective stream to be cached is determined, and the second perspective stream is cached in the edge server.
[0010] Secondly, embodiments of this disclosure also provide a panoramic video caching device integrated into an edge server, the edge server being connected to multiple clients, the device comprising:
[0011] The target client determination module is used to determine the current playback delay information of each client playing the target panoramic video, and based on the current playback delay information, determine the target client that meets the preset low latency condition;
[0012] The viewing angle offset acquisition module is used to acquire the first view stream played by the target client within a historical time period and the viewing angle offset corresponding to the first view stream, wherein the first view stream is the video stream under the target view in the target panoramic video;
[0013] The cache priority determination module is used to determine the cache priority corresponding to each first view stream based on the viewing angle offset.
[0014] The second-view stream caching module is used to determine the second-view stream to be cached based on the cache priority corresponding to the first-view stream, and cache the second-view stream in the edge server.
[0015] Thirdly, embodiments of this disclosure also provide an electronic device, the electronic device comprising:
[0016] One or more processors;
[0017] Storage device for storing one or more programs.
[0018] When the one or more programs are executed by the one or more processors, the one or more processors implement the panoramic video caching method as described in any embodiment of this disclosure.
[0019] Fourthly, embodiments of this disclosure also provide a storage medium containing computer-executable instructions, which, when executed by a computer processor, are used to perform the panoramic video caching method as described in any of the embodiments of this disclosure.
[0020] In this embodiment, the current playback latency information of each client playing the target panoramic video is determined by an edge server, and a target client that meets the preset low latency condition is determined based on the current playback latency information. Based on the viewing angle offset corresponding to the first-view stream played by the target client in the historical time period, the cache priority corresponding to each first-view stream is determined, and the second-view stream most likely to be pulled by the client is determined based on the cache priority corresponding to the first-view stream. The second-view stream is then cached in the edge server, thereby improving the hit rate of pulling view streams from the edge server. Moreover, only the view stream most likely to be pulled by the client needs to be cached in the edge server, without caching all view streams in the panoramic video, thereby improving the pull hit rate while reducing the caching cost of the edge server. Attached Figure Description
[0021] The above and other features, advantages, and aspects of the embodiments of this disclosure will become more apparent from the accompanying drawings and the following detailed description. Throughout the drawings, the same or similar reference numerals denote the same or similar elements. It should be understood that the drawings are schematic, and the originals and elements are not necessarily drawn to scale.
[0022] Figure 1 This is a schematic flowchart of a panoramic video caching method provided in an embodiment of this disclosure;
[0023] Figure 2 This is a schematic flowchart of another panoramic video caching method provided in this embodiment of the disclosure;
[0024] Figure 3 This is a schematic flowchart of another panoramic video caching method provided in this embodiment;
[0025] Figure 4 This is an example diagram of a panoramic video caching process involved in an embodiment of this disclosure;
[0026] Figure 5 This is a schematic diagram of the structure of a panoramic video caching device provided in an embodiment of this disclosure;
[0027] Figure 6 This is a schematic diagram of the structure of an electronic device provided in an embodiment of this disclosure. Detailed Implementation
[0028] Embodiments of this disclosure will now be described in more detail with reference to the accompanying drawings. While some embodiments of this disclosure are shown in the drawings, it should be understood that this disclosure can be implemented in various forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided to provide a more thorough and complete understanding of this disclosure. It should be understood that the accompanying drawings and embodiments of this disclosure are for illustrative purposes only and are not intended to limit the scope of protection of this disclosure.
[0029] It should be understood that the steps described in the method embodiments of this disclosure may be performed in different orders and / or in parallel. Furthermore, the method embodiments may include additional steps and / or omit the steps shown. The scope of this disclosure is not limited in this respect.
[0030] The term "comprising" and its variations as used herein are open-ended inclusions, meaning "including but not limited to". The term "based on" means "at least partially based on". The term "one embodiment" means "at least one embodiment"; the term "another embodiment" means "at least one additional embodiment"; the term "some embodiments" means "at least some embodiments". Definitions of other terms will be given in the description below.
[0031] It should be noted that the concepts of "first" and "second" mentioned in this disclosure are used only to distinguish different devices, modules or units, and are not used to limit the order of functions performed by these devices, modules or units or their interdependencies.
[0032] It should be noted that the terms "a" and "a plurality of" used in this disclosure are illustrative rather than restrictive, and those skilled in the art should understand that, unless otherwise expressly indicated in the context, they should be understood as "one or more".
[0033] The names of messages or information exchanged between multiple devices in the embodiments of this disclosure are for illustrative purposes only and are not intended to limit the scope of such messages or information.
[0034] It is understood that before using the technical solutions disclosed in the various embodiments of this disclosure, users should be informed of the types, scope of use, and usage scenarios of the personal information involved in this disclosure in an appropriate manner in accordance with relevant laws and regulations, and user authorization should be obtained.
[0035] For example, upon receiving a user's active request, a prompt message is sent to the user to explicitly inform them that the requested operation will require the acquisition and use of the user's personal information. This allows the user to independently choose whether to provide personal information to the software or hardware, such as the electronic device, application, server, or storage medium performing the operations of this disclosed technical solution, based on the prompt message.
[0036] As an optional but non-limiting implementation, in response to a user's active request, sending a prompt message to the user can be done via a pop-up window, where the prompt message can be presented in text format. Furthermore, the pop-up window can also include a selection control allowing the user to choose "agree" or "disagree" to provide personal information to the electronic device.
[0037] It is understood that the above notification and user authorization process are merely illustrative and do not constitute a limitation on the implementation of this disclosure. Other methods that comply with relevant laws and regulations may also be applied to the implementation of this disclosure.
[0038] It is understood that the data involved in this technical solution (including but not limited to the data itself, the acquisition or use of the data) shall comply with the requirements of relevant laws, regulations and related provisions.
[0039] Figure 1This is a flowchart illustrating a panoramic video caching method provided in an embodiment of the present disclosure. This embodiment is applicable to caching viewpoint streams in panoramic videos, especially to caching viewpoint streams in live panoramic videos, thereby improving streaming speed and reducing the risk of live streaming stuttering. The method can be executed by a panoramic video caching device, which can be implemented in software and / or hardware, optionally through electronic devices such as edge servers.
[0040] Edge servers can refer to CDN (Content Delivery Network) nodes, which are used to cache the view streams that clients need to obtain, so that clients can obtain view streams from edge servers without having to pull them from media servers, thereby saving transmission bandwidth.
[0041] Panoramic video can be transcoded into video streams from different perspectives, resulting in multiple viewpoint streams. Each viewpoint stream corresponds to a specific field of view. Different viewpoint streams may have partial overlap in their perspectives. Each viewpoint stream can use high definition only in certain areas within its field of view, while using low definition in other areas. Different viewpoint streams can be switched based on changes in the user's viewing angle, ensuring that the user always sees high-definition panoramic video, thus improving the user viewing experience.
[0042] like Figure 1 As shown, the panoramic video caching method specifically includes the following steps:
[0043] S110. Determine the current playback delay information of each client playing the target panoramic video, and based on the current playback delay information, determine the target client that meets the preset low latency conditions.
[0044] The target panoramic video can refer to the panoramic video currently being played on the client. The panoramic video can be a live-streamed panoramic video in a live streaming scenario. The edge server can connect to multiple clients, allowing multiple clients to pull streams from the edge server. The playback format of the panoramic video can be diverse. For example, the panoramic video can refer to a VR (Virtual Reality) panoramic video. When the panoramic video is a VR panoramic video, the client can be a VR headset used to play the VR panoramic video. Users can wear VR headsets to watch the panoramic video and switch between different viewpoints by turning their heads.
[0045] The current playback latency information refers to the delay between the current playback progress of the target panoramic video played by the client and the expected playback progress. The expected playback progress can refer to the playback progress without any playback latency. For example, in a live streaming scenario, the current playback latency information can refer to the delay between the current playback progress of the target panoramic video played by the client and the live recording progress. The current playback latency information can be, but is not limited to, the current playback latency duration. It should be noted that the current playback latency information can change dynamically with factors such as changes in the network environment. For example, in a better network environment, the current playback latency is shorter. The preset low latency condition can be a pre-set condition that a low-latency client needs to meet. For example, the preset low latency condition can refer to the current playback latency information being less than or equal to a preset latency threshold. The preset latency threshold can be the maximum playback latency that a low-latency client can have, pre-set based on the business scenario. The target client can refer to the low-latency client with the lowest playback latency among all clients connected to the edge server at the current moment. The number of target clients can be one or more. Based on the historical playback information of multiple target clients, the viewpoint stream can be cached more accurately.
[0046] Specifically, the edge server can obtain the current playback progress of each client currently connected to the edge server, and determine the current playback latency information for each client to play the target panoramic video based on the current playback progress and the expected playback progress. For example, the difference between the expected playback progress and the current playback progress can be used as the client's current playback latency information. Based on the current playback latency information of each client, it checks whether each client meets the preset low latency conditions, and selects clients that meet the preset low latency conditions as target clients, thereby filtering out target clients with low latency from all clients currently connected to the edge server. In live streaming scenarios, low-latency clients play panoramic video faster than high-latency clients; that is, low-latency clients can play the view stream that high-latency clients have not yet played.
[0047] It should be noted that as the current playback latency information of each client changes dynamically, the target client selected each time may also be different, thereby realizing dynamic caching of the edge server, which improves the accuracy of caching and increases the hit rate of the client pulling the stream from the edge server.
[0048] S120. Obtain the first-viewpoint stream played by the target client within a historical time period and the viewing angle offset corresponding to the first-viewpoint stream, wherein the first-viewpoint stream is the video stream from the target's perspective in the target panoramic video.
[0049] Here, "historical time period" refers to the most recent historical time segment. For example, the historical time period could be the most recent t minutes. "First-person perspective stream" refers to the perspective stream played by the target client within the historical time period. Each target client can play one or more first-person perspective streams within the historical time period. "Viewing angle offset" refers to the degree of perspective shift when a user watches the first-person perspective stream played by the target client. The smaller the viewing angle offset, the better the viewing experience of the first-person perspective stream and the more accurate the perspective playback.
[0050] Specifically, the edge server can dynamically obtain all first-person perspective streams played by each target client in the most recent historical time period and the viewing angle offset of each first-person perspective stream, thereby dynamically understanding the viewing angle offset of the most recently played first-person perspective stream for each target client.
[0051] For example, S120 may include: receiving a first-viewpoint stream played within a historical time period and a viewing angle offset corresponding to the first-viewpoint stream sent by the target client; wherein the viewing angle offset is determined by the target client based on the center viewpoint of the first-viewpoint stream and the actual viewing angle.
[0052] In this context, the center viewpoint of a first-person perspective stream refers to the central viewpoint within the corresponding field of view range. The actual viewing angle refers to the user's actual viewpoint when watching the first-person perspective stream on the target client. For example, when a user watches panoramic video using a head-mounted device, the actual viewing angle can be determined based on the user's head position while watching the first-person perspective stream. If the actual viewing angle is the center viewpoint, the user can view a higher-resolution video image.
[0053] Specifically, each target client can obtain the actual viewing angle of the user watching each first-person perspective stream, and determine the viewing angle offset corresponding to each first-person perspective stream based on the center view of the first-person perspective stream and the actual viewing angle. For example, for each first-person perspective stream, sampling can be performed while watching the stream to obtain the actual viewing angle corresponding to each sampling point, and the view difference between the actual viewing angle corresponding to each sampling point and the center view of the first-person perspective stream can be determined. The view difference of all sampling points is averaged, and the average view difference is used as the viewing angle offset corresponding to the first-person perspective stream. Each target client can send all first-person perspective streams played within a historical time period and the viewing angle offset corresponding to each first-person perspective stream to the edge server, so that the edge server can receive the first-person perspective streams and corresponding viewing angle offsets sent by each target client. For example, each target client can send the first-person perspective streams and corresponding viewing angle offsets in the form of key-value pairs (maps) to ensure sending accuracy and improve sending efficiency. Where map = {a3:c1, a1:c2, ... ak:c k}, where ak refers to the k-th first-person stream played by the target client within a historical time period. k It refers to the degree of viewing angle offset corresponding to the kth first-person perspective stream.
[0054] S130. Determine the cache priority for each first-person view stream based on the viewing angle offset.
[0055] Cache priority is used to characterize the order in which first-person perspective streams are cached on edge servers. A higher cache priority indicates a higher likelihood that the first-person perspective stream will be accessed by other clients, thus requiring it to be cached earlier. Viewpoint offset is inversely correlated with cache priority; that is, a smaller viewpoint offset corresponds to a higher cache priority.
[0056] Specifically, different target clients can play the same first-person perspective stream, and / or the same target client can play the same first-person perspective stream multiple times, thus obtaining multiple identical first-person perspective streams. For each obtained first-person perspective stream, the average viewing angle offsets of all views corresponding to that first-person perspective stream can be averaged, and the cache priority of the first-person perspective stream can be determined based on the obtained average viewing angle offset. For example, the average viewing angle offset can be multiplied by an offset weight, and the result can be used as the cache priority of that first-person perspective stream. Here, the offset weight is a negative value less than zero.
[0057] S140. Based on the cache priority corresponding to the first-view stream, determine the second-view stream to be cached, and cache the second-view stream in the edge server.
[0058] Specifically, based on cache priority, all first-person perspective streams played by all target clients within a historical time period can be filtered out, and the first-person perspective streams that most need to be cached can be identified as the second-person perspective streams to be cached. The second-person perspective streams that the client may obtain can be cached in the edge server, without having to cache all perspective streams. This can improve the streaming hit rate while reducing the caching cost of the edge server.
[0059] It should be noted that the panoramic video caching process in steps S110-S140 of this embodiment can be executed periodically to achieve dynamic caching of the viewpoint streams, further ensuring the accuracy of caching and the hit rate of stream retrieval. When caching all second-viewpoint streams in the edge server, it can check whether each second-viewpoint stream exists in the currently cached viewpoint streams. If a cached second-viewpoint stream exists, it can continue to be cached. If an uncached second-viewpoint stream exists, the edge server obtains the second-viewpoint stream from the media server and caches it, thereby ensuring that all second-viewpoint streams are cached in the edge server, realizing dynamic acquisition and deployment of viewpoint streams in the edge server, and ensuring the accuracy of caching. Here, the media server can refer to the client's source server, used to store all viewpoint streams in the panoramic video.
[0060] For example, after caching the second-view stream, the edge server can respond to the current client's request to obtain the current view stream based on the cached second-view stream. Here, the current client refers to the client that needs to obtain the view stream at the current moment. The current view stream acquisition request can include the identifier information of the view stream to be acquired. After receiving the current view stream acquisition request, if the edge server has cached the current view stream to be acquired in the request, it will return the cached current view stream. This improves the request response speed, allowing the current client to obtain the view stream more quickly, thereby avoiding stuttering caused by view stream switching.
[0061] It should be noted that each client sends a view stream acquisition request to the edge server. If the edge server does not currently cache the view stream to be acquired in the view stream acquisition request, it can acquire the view stream from the media server, ensuring that the client can obtain the view stream and guaranteeing the normal playback of the panoramic video.
[0062] The technical solution of this disclosure embodiment determines the current playback latency information of each client playing the target panoramic video through an edge server, and determines the target client that meets the preset low latency conditions based on the current playback latency information; determines the cache priority corresponding to each first-view stream based on the viewing angle offset corresponding to the first-view stream played by the target client in the historical time period, and determines the second-view stream that the client is most likely to pull based on the cache priority corresponding to the first-view stream, and caches the second-view stream in the edge server, thereby improving the hit rate of pulling view streams from the edge server, and only needs to cache the view stream that the client is most likely to pull in the edge server, without caching all view streams in the panoramic video, thereby improving the pull hit rate while reducing the caching cost of the edge server.
[0063] Based on the above technical solutions, "determining the current playback delay information of each client playing the target panoramic video" in S110 may include: obtaining the current playback timestamp of each client playing the target panoramic video; and determining the current playback delay information of each client playing the target panoramic video based on the current recording timestamp and the current playback timestamp of the target panoramic video.
[0064] The current playback timestamp can refer to the timestamp corresponding to the target panoramic video frame currently being played on the client. The current recording timestamp can refer to the timestamp corresponding to the latest video frame in the recorded target panoramic video. For example, the timestamp corresponding to the latest video frame in the cached view stream on the edge server can be used as the current recording timestamp. The current recording timestamp can be used to characterize the expected playback progress under conditions of no delay.
[0065] Specifically, each client connected to the edge server can send the current playback timestamp of the target panoramic video to the edge server. The edge server can receive the current playback timestamp sent by each client and, for each client, determine the time difference between the current recording timestamp of the target panoramic video and the client's current playback timestamp as the client's current playback delay information, thereby obtaining the current playback delay of each client more accurately.
[0066] Based on the above technical solutions, the "determining the target client that meets the preset low latency condition based on the current playback delay information" in S110 may include: determining the client whose current playback delay information is less than or equal to the preset delay threshold as the target client that meets the preset low latency condition; or, sorting the clients in ascending order based on the current playback delay information, and determining the first preset number of clients in the obtained client sequence as the target clients that meet the preset low latency condition.
[0067] Specifically, the edge server can identify clients whose current playback latency is less than or equal to a preset latency threshold as target clients, thus more effectively ensuring low latency for each target client. Alternatively, the edge server can sort clients in ascending order based on their current playback latency to obtain a sequence of clients with progressively increasing latency, and identify the first preset number of clients in this sequence, such as the first 10 clients, as target clients. This ensures a fixed number of target clients are obtained, thereby improving the caching effect of the edge server.
[0068] Based on the above technical solutions, "determining the second perspective stream to be cached based on the cache priority corresponding to the first perspective stream" in S140 may include: determining the first perspective stream with a cache priority greater than or equal to a preset priority as the second perspective stream to be cached; or, arranging the first perspective streams in descending order based on the cache priority, and determining the first preset number of first perspective streams in the obtained first perspective stream sequence as the second perspective stream to be cached.
[0069] Specifically, the edge server can identify first-view streams with a cache priority greater than or equal to a preset priority as second-view streams to be cached. This can more effectively guarantee the hit rate of each second-view stream. Alternatively, the edge server can sort the first-view streams in descending order based on cache priority information to obtain a sequence of first-view streams with progressively decreasing cache priority. The first preset number of first-view streams in this sequence can then be identified as second-view streams to be cached. This ensures that a fixed number of view streams are cached, thereby improving the caching effect of the edge server.
[0070] Figure 2 This is a flowchart illustrating another panoramic video caching method provided in this embodiment. Based on the above-described embodiments, this embodiment further optimizes the step of "determining the caching priority corresponding to each first-viewpoint stream based on the viewing angle offset." Explanations of terms that are the same as or corresponding to those in the above-described embodiments are not repeated here.
[0071] like Figure 2 As shown, the panoramic video caching method specifically includes the following steps:
[0072] S210. Determine the current playback delay information of each client playing the target panoramic video, and based on the current playback delay information, determine the target client that meets the preset low latency conditions.
[0073] S220. Obtain the first-person perspective stream played by the target client within a historical time period and the corresponding viewing angle offset of the first-person perspective stream.
[0074] S230. Determine the number of times each first-person perspective stream is played.
[0075] The number of plays can refer to the total number of times the first-person perspective stream has been played across all target clients. A higher number of plays indicates a greater probability that the stream will be retrieved.
[0076] Specifically, the number of times each first-person perspective stream appears (i.e., the number of plays) can be determined by counting all first-person perspective streams sent by all target clients. For example, the number of times each first-person perspective stream appears can be counted in all maps sent by all target clients, thus obtaining the number of plays for each first-person perspective stream.
[0077] S240. Based on the number of playbacks and viewing angle offset for each first-person perspective stream, determine the cache priority for each first-person perspective stream.
[0078] The number of plays is positively correlated with cache priority; that is, the more plays, the higher the cache priority. The viewing angle offset is inversely correlated with cache priority; that is, the smaller the viewing angle offset, the higher the cache priority.
[0079] Specifically, for each first-person perspective stream, the cache priority of the first-person perspective stream can be determined jointly based on the number of playbacks and the viewing angle offset, thereby further improving the caching accuracy of the perspective stream and thus increasing the hit rate of obtaining perspective streams from edge servers.
[0080] For example, S240 may include: for each first-viewpoint stream, determining the average viewing angle offset corresponding to the first-viewpoint stream based on the viewing angle offset and the number of times the first-viewpoint stream is played each time; and determining the cache priority corresponding to the first-viewpoint stream based on the average viewing angle offset and the number of times the first-viewpoint stream is played.
[0081] Specifically, for each obtained first-person perspective stream, the viewing angle offset of each target client during each playback of the stream is summed to obtain the total viewing angle offset. The ratio between the total viewing angle offset and the number of playbacks is determined as the average viewing angle offset for that first-person perspective stream. The average viewing angle offset and the number of playbacks for that first-person perspective stream are then weighted and summed, and the weighted sum is used as the cache priority for that first-person perspective stream. The weighting coefficient for the average viewing angle offset is a negative value less than zero. This weighting coefficient balances the proportion of viewing angle offset and playback count, thus allowing the determined cache priority to more accurately measure the caching order.
[0082] S250: Based on the cache priority corresponding to the first-view stream, determine the second-view stream to be cached, and cache the second-view stream in the edge server.
[0083] The technical solution of this disclosure determines the cache priority of each first-view stream based on the number of playbacks and the viewing angle offset of each first-view stream, thereby further improving the caching accuracy of the view stream and further improving the hit rate of obtaining view streams from the edge server.
[0084] Figure 3 This is a flowchart illustrating another panoramic video caching method provided in this disclosure. Based on the above-disclosed embodiments, this disclosure further optimizes the step "caching the second-view stream in the edge server". Explanations of terms that are the same as or corresponding to those in the above-disclosed embodiments are not repeated here.
[0085] like Figure 3 As shown, the panoramic video caching method specifically includes the following steps:
[0086] S310. Determine the current playback delay information of each client playing the target panoramic video, and based on the current playback delay information, determine the target client that meets the preset low latency conditions.
[0087] For example, Figure 4 An example diagram of a panoramic video caching process is provided. Figure 4 As shown, the target panoramic video can be transcoded into M viewpoint streams. During initialization, before the client plays the target panoramic video, the edge server can first randomly obtain N viewpoint streams from the M viewpoint streams stored on the media server, i.e., [a1, a2, ..., aN], where an ∈ [1, 2, ..., M], and N is less than M. Each client connected to the edge server can first obtain a viewpoint stream from the edge server. If the edge server has the viewpoint stream cached, it directly returns the cached viewpoint stream; if the edge server does not have the viewpoint stream cached, it pulls the viewpoint stream from the media server and plays it. During the playback of the viewpoint stream, each client can send its current playback progress to the edge server. The edge server determines the current playback delay for each client playing the target panoramic video based on the current playback progress and the expected playback progress. Based on the current playback delay for each client, it checks whether each client meets a preset low-latency condition and selects clients that meet the preset low-latency condition as target clients, thus filtering out low-latency target clients from all clients currently connected to the edge server. For example, Figure 4In this scenario, client 1 plays the view stream a3 first, which is lower than client 2. At this time, client 1's latency is lower than client 2's latency, so client 1 can be used as the target client with lower latency.
[0088] S320. Obtain the first-person perspective stream played by the target client within a historical time period and the corresponding viewing angle offset of the first-person perspective stream.
[0089] For example, such as Figure 4 As shown, each target client can determine the viewing angle offset corresponding to each view stream during the playback of each view stream, and can send all first-view streams played in the most recent historical time period t and their corresponding viewing angle offsets to the edge server every time period t. This allows the edge server to periodically obtain all first-view streams played by each target client in the most recent historical time period t and their corresponding viewing angle offsets.
[0090] S330. Determine the cache priority for each first-person view stream based on the viewing angle offset.
[0091] S340. Based on the cache priority corresponding to the first-view stream, determine the second-view stream to be cached.
[0092] S350: Based on the second-view stream, update the cache of the current view stream cached in the edge server to cache the second-view stream in the edge server.
[0093] Specifically, after determining all second-view streams that should be cached in the current session, the cache of all currently cached second-view streams on the edge server can be updated, allowing the edge server to cache only all second-view streams. This achieves dynamic updates to the video stream cache, further ensuring cache accuracy and improving the stream pull hit rate. For example, as... Figure 4 As shown, after caching the view stream a3 to the edge server based on the cache priority, client 2 can directly pull the view stream a3 from the edge server after playing the view stream a1, without having to pull it from the media server. This improves the retrieval speed of the view stream, avoids the stuttering caused by client 2 switching view streams, and enhances the user's viewing experience.
[0094] It should be noted that as the target panoramic video is played, the more accurate the cache priority determined by the edge server, the more accurate the cached view stream becomes, thus ensuring the hit rate of obtaining view streams from the cache server.
[0095] For example, S350 may include: if there is an uncached target second-view stream in the edge server, then obtain the target second-view stream from the media server and cache the obtained target second-view stream in the edge server; if there are other view streams besides the second-view stream cached in the edge server, then delete the other view streams.
[0096] Here, the target second-view stream can refer to the second-view stream that is not currently cached on the edge server. Other view streams can refer to the view streams cached on the edge server that are other than the second-view stream.
[0097] Specifically, during each cache update, the edge server compares each second-view stream that needs to be cached with the currently cached video stream to determine the currently uncached target second-view streams and the other cached view streams (i.e., non-second-view streams). All target second-view streams are retrieved from the media server and cached on the edge server so that clients can quickly retrieve them directly from the edge server when requesting them, significantly improving streaming speed. Deleting other cached view streams further saves cache space and improves resource utilization.
[0098] The technical solution of this disclosure updates the cache of the current view stream cached in the edge server based on the second view stream. Only the second view stream can be cached in the edge server, thereby realizing dynamic updates of the video stream cache, further ensuring the accuracy of the cache, improving the stream pull hit rate, and also further saving cache space and improving resource utilization.
[0099] Figure 5 This is a schematic diagram of the structure of a panoramic video caching device provided in an embodiment of the present disclosure, as shown below. Figure 5 As shown, the device is integrated into an edge server, which connects to multiple clients. Specifically, the device includes: a target client determination module 510, a viewing angle offset acquisition module 520, a cache priority determination module 530, and a second-viewpoint stream cache module 540.
[0100] The system includes a target client determination module 510, which determines the current playback delay information of each client playing the target panoramic video, and determines the target client that meets the preset low latency conditions based on the current playback delay information; a viewing angle offset acquisition module 520, which acquires the first viewing angle stream played by the target client within a historical time period and the viewing angle offset corresponding to the first viewing angle stream, wherein the first viewing angle stream is the video stream under the target viewing angle in the target panoramic video; a cache priority determination module 530, which determines the cache priority corresponding to each first viewing angle stream based on the viewing angle offset; and a second viewing angle stream caching module 540, which determines the second viewing angle stream to be cached based on the cache priority corresponding to the first viewing angle stream, and caches the second viewing angle stream in the edge server.
[0101] The technical solution provided in this disclosure determines the current playback latency information of each client playing the target panoramic video through an edge server, and determines the target client that meets the preset low latency conditions based on the current playback latency information; determines the cache priority corresponding to each first-view stream based on the viewing angle offset corresponding to the first-view stream played by the target client in the historical time period, and determines the second-view stream that the client is most likely to pull based on the cache priority corresponding to the first-view stream, and caches the second-view stream in the edge server, thereby improving the hit rate of pulling view streams from the edge server, and only needs to cache the view stream that the client is most likely to pull in the edge server, without caching all view streams in the panoramic video, thereby improving the pull hit rate while reducing the caching cost of the edge server.
[0102] Based on the above technical solution, the target client determination module 510 includes:
[0103] The current playback delay information determination unit is specifically used for: obtaining the current playback timestamp of the target panoramic video played by each client; and determining the current playback delay information of the target panoramic video played by each client based on the current recording timestamp and the current playback timestamp of the target panoramic video.
[0104] Based on the above technical solutions, the target client determination module 510 includes:
[0105] The target client determination unit is specifically used to: determine clients whose current playback delay information is less than or equal to a preset delay threshold as target clients that meet the preset low latency conditions; or, sort the clients in ascending order based on the current playback delay information and determine the first preset number of clients in the obtained client sequence as target clients that meet the preset low latency conditions.
[0106] Based on the above technical solutions, the viewing angle offset acquisition module 520 is specifically used for:
[0107] The system receives a first-viewpoint stream played within a historical time period and a corresponding viewing angle offset from the first-viewpoint stream, sent by the target client. The viewing angle offset is determined by the target client based on the center viewpoint and the actual viewing angle of the first-viewpoint stream.
[0108] Based on the above technical solutions, the cache priority determination module 530 includes:
[0109] The playback count determination unit is used to determine the playback count corresponding to each first viewpoint stream;
[0110] The cache priority determination unit is used to determine the cache priority of each first view stream based on the number of playbacks and the viewing angle offset corresponding to each first view stream.
[0111] Based on the above technical solutions, the cache priority determination unit is specifically used for:
[0112] For each first perspective stream, the average viewing angle offset corresponding to the first perspective stream is determined based on the viewing angle offset and the number of times the first perspective stream is played each time; the cache priority corresponding to the first perspective stream is determined based on the average viewing angle offset and the number of times the first perspective stream is played.
[0113] Based on the above technical solutions, the second-view stream buffer module 540 includes:
[0114] The second perspective stream determination unit is specifically used to: determine the first perspective stream whose cache priority is greater than or equal to a preset priority as the second perspective stream to be cached; or, sort the first perspective streams in descending order based on the cache priority, and determine the first perspective streams in the obtained first perspective stream sequence as the second perspective streams to be cached.
[0115] Based on the above technical solutions, the second-view stream buffer module 540 includes:
[0116] The second perspective stream caching unit is specifically used to: update the cache of the current perspective stream cached in the edge server based on the second perspective stream, so as to cache the second perspective stream in the edge server.
[0117] Based on the above technical solutions, the second-view stream buffer unit is specifically used for:
[0118] If an uncached target second-view stream exists in the edge server, the target second-view stream is obtained from the media server and cached in the edge server; if other view streams besides the second-view stream are cached in the edge server, the other view streams are deleted.
[0119] The panoramic video caching device provided in this disclosure can execute the panoramic video caching method provided in any embodiment of this disclosure, and has the corresponding functional modules and beneficial effects for executing the panoramic video caching method.
[0120] It is worth noting that the various units and modules included in the above-mentioned device are only divided according to functional logic, but are not limited to the above division, as long as the corresponding functions can be realized; in addition, the specific names of each functional unit are only for easy differentiation and are not used to limit the protection scope of the embodiments of this disclosure.
[0121] Figure 6 This is a schematic diagram of the structure of an electronic device provided in an embodiment of this disclosure. Reference is made below. Figure 6 It illustrates an electronic device suitable for implementing embodiments of the present disclosure (e.g., Figure 6 The diagram below shows the structure of the terminal device or server 500. The terminal device in this embodiment may include, but is not limited to, mobile terminals such as mobile phones, laptops, digital broadcast receivers, PDAs (personal digital assistants), PADs (tablet computers), PMPs (portable multimedia players), and vehicle terminals (e.g., vehicle navigation terminals), as well as fixed terminals such as digital TVs and desktop computers. Figure 6 The electronic device shown is merely an example and should not be construed as limiting the functionality and scope of the embodiments disclosed herein.
[0122] like Figure 6 As shown, electronic device 500 may include a processing unit (e.g., central processing unit, graphics processor, etc.) 501, which can perform various appropriate actions and processes according to a program stored in read-only memory (ROM) 502 or a program loaded from storage device 508 into random access memory (RAM) 503. The RAM 503 also stores various programs and data required for the operation of electronic device 500. The processing unit 501, ROM 502, and RAM 503 are interconnected via bus 504. An edit / output (I / O) interface 505 is also connected to bus 504.
[0123] Typically, the following devices can be connected to I / O interface 505: input devices 506 including, for example, touchscreens, touchpads, keyboards, mice, cameras, microphones, accelerometers, gyroscopes, etc.; output devices 507 including, for example, liquid crystal displays (LCDs), speakers, vibrators, etc.; storage devices 508 including, for example, magnetic tapes, hard disks, etc.; and communication devices 509. Communication device 509 allows electronic device 500 to communicate wirelessly or wiredly with other devices to exchange data. Although Figure 6 An electronic device 500 with various devices is shown; however, it should be understood that it is not required to implement or possess all of the devices shown. More or fewer devices may be implemented or possessed alternatively.
[0124] In particular, according to embodiments of this disclosure, the processes described above with reference to the flowcharts can be implemented as computer software programs. For example, embodiments of this disclosure include a computer program product comprising a computer program carried on a non-transitory computer-readable medium, the computer program containing program code for performing the methods shown in the flowcharts. In such embodiments, the computer program can be downloaded and installed from a network via a communication device 509, or installed from a storage device 508, or installed from a ROM 502. When the computer program is executed by the processing device 501, it performs the functions defined in the methods of embodiments of this disclosure.
[0125] The names of messages or information exchanged between multiple devices in the embodiments of this disclosure are for illustrative purposes only and are not intended to limit the scope of such messages or information.
[0126] The electronic device provided in this embodiment and the panoramic video caching method provided in the above embodiments belong to the same inventive concept. Technical details not described in detail in this embodiment can be found in the above embodiments, and this embodiment has the same beneficial effects as the above embodiments.
[0127] This disclosure provides a computer storage medium storing a computer program that, when executed by a processor, implements the panoramic video caching method provided in the above embodiments.
[0128] It should be noted that the computer-readable medium described in this disclosure can be a computer-readable signal medium or a computer-readable storage medium, or any combination thereof. A computer-readable storage medium can be, for example,—but not limited to—an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination thereof. More specific examples of a computer-readable storage medium may include, but are not limited to: an electrical connection having one or more wires, a portable computer disk, a hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage device, magnetic storage device, or any suitable combination thereof. In this disclosure, a computer-readable storage medium can be any tangible medium containing or storing a program that can be used by or in connection with an instruction execution system, apparatus, or device. In this disclosure, a computer-readable signal medium can include a data signal propagated in baseband or as part of a carrier wave, carrying computer-readable program code. Such propagated data signals can take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination thereof. A computer-readable signal medium can be any computer-readable medium other than a computer-readable storage medium, which can send, propagate, or transmit a program for use by or in connection with an instruction execution system, apparatus, or device. The program code contained on the computer-readable medium can be transmitted using any suitable medium, including but not limited to: wires, optical fibers, RF (radio frequency), etc., or any suitable combination thereof.
[0129] In some implementations, clients and servers can communicate using any currently known or future-developed network protocol such as HTTP (Hypertext Transfer Protocol) and can interconnect with digital data communication (e.g., communication networks) of any form or medium. Examples of communication networks include local area networks (“LANs”), wide area networks (“WANs”), the Internet (e.g., the Internet of Things), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks), as well as any currently known or future-developed networks.
[0130] The aforementioned computer-readable medium may be included in the aforementioned electronic device; or it may exist independently and not assembled into the electronic device.
[0131] The aforementioned computer-readable medium carries one or more programs that, when executed by the electronic device, cause the electronic device to: determine the current playback delay information of each client playing the target panoramic video, and based on the current playback delay information, determine the target client that meets the preset low-latency conditions; obtain the first-viewpoint stream played by the target client within a historical time period and the viewing angle offset corresponding to the first-viewpoint stream, wherein the first-viewpoint stream is the video stream under the target viewpoint in the target panoramic video; determine the cache priority corresponding to each first-viewpoint stream based on the viewing angle offset; determine the second-viewpoint stream to be cached based on the cache priority corresponding to the first-viewpoint stream, and cache the second-viewpoint stream in the edge server.
[0132] Computer program code for performing the operations of this disclosure can be written in one or more programming languages or a combination thereof, including but not limited to object-oriented programming languages such as Java, Smalltalk, and C++, as well as conventional procedural programming languages such as the "C" language or similar programming languages. The program code can be executed entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving remote computers, the remote computer can be connected to the user's computer via any type of network—including a local area network (LAN) or a wide area network (WAN)—or can be connected to an external computer (e.g., via the Internet using an Internet service provider).
[0133] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of this disclosure. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of code containing one or more executable instructions for implementing a specified logical function. It should also be noted that in some alternative implementations, the functions indicated in the blocks may occur in a different order than those indicated in the drawings. For example, two consecutively indicated blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, can be implemented using a dedicated hardware-based system that performs the specified function or operation, or using a combination of dedicated hardware and computer instructions.
[0134] The units described in the embodiments of this disclosure can be implemented in software or in hardware. The name of a unit does not necessarily limit the unit itself; for example, the first acquisition unit can also be described as "a unit that acquires at least two Internet Protocol addresses".
[0135] The functions described above in this document can be performed, at least in part, by one or more hardware logic components. For example, exemplary types of hardware logic components that can be used, without limitation, include: Field Programmable Gate Arrays (FPGAs), Application-Specific Integrated Circuits (ASICs), Application Standard Products (ASSPs), System-on-Chip (SoCs), Complex Programmable Logic Devices (CPLDs), and so on.
[0136] In the context of this disclosure, a machine-readable medium can 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 can be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium can be, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination of the foregoing. More specific examples of machine-readable storage media include electrical connections based on one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination of the foregoing.
[0137] According to one or more embodiments of this disclosure, [Example 1] provides a panoramic video caching method applied to an edge server, the edge server being connected to multiple clients, the method comprising:
[0138] Determine the current playback delay information of each client playing the target panoramic video, and based on the current playback delay information, determine the target client that meets the preset low latency condition;
[0139] Obtain the first-viewpoint stream played by the target client within a historical time period and the viewing angle offset corresponding to the first-viewpoint stream, wherein the first-viewpoint stream is the video stream under the target viewpoint in the target panoramic video;
[0140] Based on the viewing angle offset, determine the cache priority corresponding to each first viewpoint stream;
[0141] Based on the cache priority corresponding to the first perspective stream, a second perspective stream to be cached is determined, and the second perspective stream is cached in the edge server.
[0142] According to one or more embodiments of this disclosure, [Example 2] provides a panoramic video caching method, which further includes:
[0143] Optionally, determining the current playback delay information for each client playing the target panoramic video includes:
[0144] Get the current playback timestamp of the target panoramic video for each client;
[0145] Based on the current recording timestamp and the current playback timestamp of the target panoramic video, determine the current playback delay information for each client playing the target panoramic video.
[0146] According to one or more embodiments of this disclosure, [Example 3] provides a panoramic video caching method, which further includes:
[0147] Optionally, determining the target client that meets the preset low-latency condition based on the current playback delay information includes:
[0148] Clients whose current playback delay information is less than or equal to a preset delay threshold are identified as target clients that meet the preset low-latency condition; or...
[0149] Based on the current playback delay information, the clients are sorted in ascending order, and the first preset number of clients in the obtained client sequence are determined as target clients that meet the preset low latency conditions.
[0150] According to one or more embodiments of this disclosure, [Example 4] provides a panoramic video caching method, which further includes:
[0151] Optionally, obtaining the first-viewpoint stream played by the target client within a historical time period and the viewing angle offset corresponding to the first-viewpoint stream includes:
[0152] Receive the first-viewpoint stream played within a historical time period and the viewing angle offset corresponding to the first-viewpoint stream sent by the target client;
[0153] The viewing angle offset is determined by the target client based on the center view of the first view stream and the actual viewing angle.
[0154] According to one or more embodiments of this disclosure, [Example 5] provides a panoramic video caching method, which further includes:
[0155] Optionally, determining the cache priority corresponding to each first viewpoint stream based on the viewing angle offset includes:
[0156] Determine the number of playbacks corresponding to each first perspective stream;
[0157] Based on the number of playbacks and the viewing angle offset for each first perspective stream, the cache priority for each first perspective stream is determined.
[0158] According to one or more embodiments of this disclosure, [Example Six] provides a panoramic video caching method, which further includes:
[0159] Optionally, determining the cache priority for each first viewpoint stream based on the number of playbacks and the viewing angle offset for each first viewpoint stream includes:
[0160] For each first perspective stream, the average viewing angle offset corresponding to the first perspective stream is determined based on the viewing angle offset and the number of times the first perspective stream is played each time.
[0161] Based on the average viewing angle offset corresponding to the first-person perspective stream and the number of playbacks, the cache priority corresponding to the first-person perspective stream is determined.
[0162] According to one or more embodiments of this disclosure, [Example Seven] provides a panoramic video caching method, which further includes:
[0163] Optionally, determining the second view stream to be cached based on the cache priority corresponding to the first view stream includes:
[0164] The first-view stream with a cache priority greater than or equal to a preset priority is determined as the second-view stream to be cached; or...
[0165] The first perspective streams are sorted in descending order based on the cache priority, and the first preset number of first perspective streams in the obtained first perspective stream sequence are determined as the second perspective streams to be cached.
[0166] According to one or more embodiments of this disclosure, [Example Eight] provides a panoramic video caching method, further comprising:
[0167] Optionally, caching the second view stream in the edge server includes:
[0168] Based on the second perspective stream, the cache of the current perspective stream cached in the edge server is updated to cache the second perspective stream in the edge server.
[0169] According to one or more embodiments of this disclosure, [Example Nine] provides a panoramic video caching method, further comprising:
[0170] Optionally, updating the cache of the current view stream cached in the edge server based on the second view stream includes:
[0171] If an uncached target second-view stream exists in the edge server, the target second-view stream is obtained from the media server and cached in the edge server.
[0172] If the edge server caches other view streams besides the second view stream, then the other view streams are deleted.
[0173] According to one or more embodiments of this disclosure, [Example 10] provides a panoramic video caching device integrated into an edge server, the edge server being connected to multiple clients, the device comprising:
[0174] The target client determination module is used to determine the current playback delay information of each client playing the target panoramic video, and based on the current playback delay information, determine the target client that meets the preset low latency condition;
[0175] The viewing angle offset acquisition module is used to acquire the first view stream played by the target client within a historical time period and the viewing angle offset corresponding to the first view stream, wherein the first view stream is the video stream under the target view in the target panoramic video;
[0176] The cache priority determination module is used to determine the cache priority corresponding to each first view stream based on the viewing angle offset.
[0177] The second-view stream caching module is used to determine the second-view stream to be cached based on the cache priority corresponding to the first-view stream, and cache the second-view stream in the edge server.
[0178] The above description is merely a preferred embodiment of this disclosure and an explanation of the technical principles employed. Those skilled in the art should understand that the scope of this disclosure is not limited to technical solutions formed by specific combinations of the above-described technical features, but should also cover other technical solutions formed by arbitrary combinations of the above-described technical features or their equivalents without departing from the above-described concept. For example, technical solutions formed by substituting the above features with (but not limited to) technical features disclosed in this disclosure that have similar functions.
[0179] Furthermore, while the operations are described in a specific order, this should not be construed as requiring these operations to be performed in the specific order shown or in a sequential order. In certain environments, multitasking and parallel processing may be advantageous. Similarly, while several specific implementation details are included in the above discussion, these should not be construed as limiting the scope of this disclosure. Certain features described in the context of individual embodiments may also be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment may also be implemented individually or in any suitable sub-combination in multiple embodiments.
[0180] Although the subject matter has been described using language specific to structural features and / or methodological logic, it should be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or actions described above. Rather, the specific features and actions described above are merely illustrative examples of implementing the claims.
Claims
1. A panoramic video caching method, characterized in that, Applied to an edge server that connects to multiple clients, the method includes: Determine the current playback delay information of each client playing the target panoramic video, and based on the current playback delay information, determine the target client that meets the preset low latency condition; The first-viewpoint stream played by the target client within a historical time period and the viewing angle offset corresponding to the first-viewpoint stream are obtained, wherein the first-viewpoint stream is the video stream under the target viewpoint in the target panoramic video; the viewing angle offset refers to the degree of viewpoint offset when the user watches the first-viewpoint stream played by the target client. Based on the viewing angle offset, the cache priority corresponding to each first view stream is determined, and the viewing angle offset is inversely correlated with the cache priority; Based on the cache priority corresponding to the first perspective stream, a second perspective stream to be cached is determined, and the second perspective stream is cached in the edge server; each of the above steps is executed at regular intervals.
2. The panoramic video caching method according to claim 1, characterized in that, The determination of the current playback delay information for each client playing the target panoramic video includes: Get the current playback timestamp of the target panoramic video for each client; Based on the current recording timestamp and the current playback timestamp of the target panoramic video, determine the current playback delay information for each client playing the target panoramic video.
3. The panoramic video caching method according to claim 1, characterized in that, The step of determining the target client that meets the preset low-latency conditions based on the current playback delay information includes: Clients whose current playback delay information is less than or equal to a preset delay threshold are identified as target clients that meet the preset low-latency condition; or... Based on the current playback delay information, the clients are sorted in ascending order, and the first preset number of clients in the obtained client sequence are determined as target clients that meet the preset low latency conditions.
4. The panoramic video caching method according to claim 1, characterized in that, The step of obtaining the first-viewpoint stream played by the target client within a historical time period and the viewing angle offset corresponding to the first-viewpoint stream includes: Receive the first-viewpoint stream played within a historical time period and the viewing angle offset corresponding to the first-viewpoint stream sent by the target client; The viewing angle offset is determined by the target client based on the center view of the first view stream and the actual viewing angle.
5. The panoramic video caching method according to claim 1, characterized in that, The step of determining the cache priority corresponding to each first viewpoint stream based on the viewing angle offset includes: Determine the number of playbacks corresponding to each first perspective stream; Based on the number of playbacks and the viewing angle offset for each first perspective stream, the cache priority for each first perspective stream is determined.
6. The panoramic video caching method according to claim 5, characterized in that, The step of determining the cache priority for each first-viewpoint stream based on the number of playbacks and the viewing angle offset for each first-viewpoint stream includes: For each first perspective stream, the average viewing angle offset corresponding to the first perspective stream is determined based on the viewing angle offset and the number of times the first perspective stream is played each time. Based on the average viewing angle offset corresponding to the first-person perspective stream and the number of playbacks, the cache priority corresponding to the first-person perspective stream is determined.
7. The panoramic video caching method according to claim 1, characterized in that, The step of determining the second view stream to be cached based on the cache priority corresponding to the first view stream includes: The first-view stream with a cache priority greater than or equal to a preset priority is determined as the second-view stream to be cached; or... Based on the cache priority, all the first perspective streams are sorted in descending order, and the first preset number of first perspective streams in the obtained first perspective stream sequence are determined as the second perspective streams to be cached.
8. The panoramic video caching method according to any one of claims 1-7, characterized in that, The step of caching the second view stream in the edge server includes: Based on the second perspective stream, the cache of the current perspective stream cached in the edge server is updated to cache the second perspective stream in the edge server.
9. The panoramic video caching method according to claim 8, characterized in that, The step of updating the cache of the current view stream cached in the edge server based on the second view stream includes: If an uncached target second-view stream exists in the edge server, the target second-view stream is obtained from the media server and cached in the edge server. If the edge server caches other view streams besides the second view stream, then the other view streams are deleted.
10. A panoramic video buffering device, characterized in that, Integrated into an edge server that connects to multiple clients, the device includes: The target client determination module is used to determine the current playback delay information of each client playing the target panoramic video, and based on the current playback delay information, determine the target client that meets the preset low latency condition; The viewing angle offset acquisition module is used to acquire the first-viewpoint stream played by the target client within a historical time period and the viewing angle offset corresponding to the first-viewpoint stream, wherein the first-viewpoint stream is the video stream under the target viewpoint in the target panoramic video; the viewing angle offset refers to the degree of viewpoint offset when the user watches the first-viewpoint stream played by the target client. The cache priority determination module is used to determine the cache priority corresponding to each first view stream based on the viewing angle offset, wherein the viewing angle offset is inversely correlated with the cache priority; The second-view stream caching module is used to determine the second-view stream to be cached based on the cache priority corresponding to the first-view stream, and cache the second-view stream in the edge server; each of the above modules is executed at regular intervals.
11. An electronic device, characterized in that, The electronic device includes: One or more processors; Storage device for storing one or more programs. When the one or more programs are executed by the one or more processors, the one or more processors implement the panoramic video caching method as described in any one of claims 1-9.
12. A storage medium containing computer-executable instructions, characterized in that, The computer-executable instructions, when executed by a computer processor, are used to perform the panoramic video caching method as described in any one of claims 1-9.
Citation Information
Patent Citations
Video downloading method and user terminal
CN108668138A