Methods, systems, electronic devices, and storage media for video splicing storage

The method of splicing and storing multiple video streams into a single stream addresses the high storage costs and inefficiencies of existing video data storage methods, achieving reduced data volume and equipment costs while maintaining video clarity.

WO2026020745A1PCT designated stage Publication Date: 2026-01-29ZHEJIANG DAHUA TECH CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/144097
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-07-24
Filing Date
2024-12-31
Publication Date
2026-01-29

AI Technical Summary

Technical Problem

The rapid growth of video data volume due to increased video resolution and frame rate leads to high storage costs and inefficiencies in existing data storage methods, particularly for large-scale video data, which are not effectively addressed by current techniques such as RAID setups or cluster storage arrangements.

Method used

A method and system for video splicing storage that involves obtaining channel information, determining splicing schemes, selecting target splicing devices, splicing and storing multiple video streams into a single stream, and utilizing encoding and decoding capabilities to reduce data storage volume and equipment costs.

Benefits of technology

This approach reduces data storage volume and costs by splicing multiple video streams into a single stream, maintaining high video clarity, and minimizing redundant storage, thus lowering equipment costs and operational complexity.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024144097_29012026_PF_FP_ABST
    Figure CN2024144097_29012026_PF_FP_ABST
Patent Text Reader

Abstract

Provided are a method, a system, an electronic device, and a storage medium for video splicing storage. The method is applied to a device cluster including a plurality of splicing devices. Each of the plurality of splicing devices is connected to at least one channel. The at least one channel is used to transmit a source video to a corresponding splicing device. The method comprises: obtaining channel information of channels connected to the plurality of splicing devices; determining at least one splicing scheme based on the channel information of the channels; determining at least one target splicing device corresponding to the at least one splicing scheme; obtaining a source video corresponding to the at least one splicing scheme; splicing the source video using the at least one target splicing device according to the at least one splicing scheme to obtain spliced video data;and storing the spliced video data to the at least one target splicing device.
Need to check novelty before this filing date? Find Prior Art

Description

METHODS, SYSTEMS, ELECTRONIC DEVICES, AND STORAGE MEDIA FOR VIDEO SPLICING STORAGECROSS-REFERENCE TO RELATED APPLICATIONS

[0001] This application claims priority of Chinese Patent Application No. 202410997998.0, filed on July 24, 2024, the entire contents of which are incorporated herein by reference.TECHNICAL FIELD

[0002] The present disclosure relates to the field of data storage technology, and in particular, to methods, systems, electronic devices, and storage media for video splicing storage.BACKGROUND

[0003] With the rapid development of internet technology, various complex application scenarios have higher demands for video resolution and frame rate, leading to an increase in the bitrate and resolution of captured videos, resulting in a dramatic growth in video data volume.

[0004] However, the explosive growth of video data has led to an increasing demand for data storage, especially for large-scale video data such as a high-definition (HD) video, an ultra-high definition (UHD) video, etc., which drives up storage costs.

[0005] In view of this, it is desired to provide methods, systems, electronic devices, and storage media for video splicing storage with low storage cost.SUMMARY

[0006] One or more embodiments of the present disclosure provide a method for video splicing storage. The method is applied to a device cluster comprising a plurality of splicing devices, wherein each of the plurality of splicing devices is connected to at least one channel. Each of the at least one channel is used to transmit a source video to a corresponding splicing device. The method comprises: obtaining channel information of channels connected to the plurality of splicing devices; determining at least one splicing scheme based on the channel information of the channels; determining at least one target splicing device corresponding to the at least one splicing scheme; obtaining source videos corresponding to the at least one splicing scheme; splicing the source videos using the at least one target splicing device according to the at least one splicing scheme to obtain spliced video data; and storing the spliced video data to the target splicing device.

[0007] One or more embodiments of the present disclosure provide a system for video splicing storage. The system comprises a cluster of devices that includes a plurality of splicing devices, each of the plurality of splicing devices being connected to at least one channel. Each of the at least one channel is used to transmit a source video to a corresponding splicing device. The system comprises a first acquisition module, a first determination module, a second determination module, a second acquisition module, a splicing module, and a storage module. The first acquisition module may be configured to obtain channel information of channels connected to the plurality of splicing devices. The first determination module may be configured to determine at least one splicing scheme based on the channel information of the channels. The second determination module may be configured to determine at least one target splicing device corresponding to the at least one splicing scheme. The second acquisition module may be configured to obtain source videos corresponding to the at least one splicing scheme. The splicing module may be configured to splice the source videos using the at least one target splicing device according to the at least one splicing scheme to obtain spliced video data. The storage module may be configured to store the spliced video data to the at least one target splicing device.

[0008] One or more embodiments of the present disclosure provide an apparatus for video splicing storage. The apparatus may be applied to a device cluster comprising a plurality of splicing devices, each of the plurality of splicing devices being connected to at least one channel. Each of the at least one channel is used to transmit a source video to a corresponding splicing device. The apparatus comprises a processing device that may be configured to: obtain channel information of channels connected to the plurality of splicing devices; determine at least one splicing scheme based on the channel information of the channels; determine at least one target splicing device corresponding to the at least one splicing scheme; obtain source videos corresponding to the at least one splicing scheme; splice the source videos using the at least one target splicing device according to the at least one splicing scheme to obtain spliced video data; and store the spliced video data to the target splicing device.

[0009] One or more embodiments of the present disclosure provide another method for video splicing storage. The method is applied to a device cluster comprising a plurality of devices, wherein one of the plurality of devices is designated as a first device. The method splices and stores a plurality of source videos from at least one device in the device cluster, and the method comprises: designating, by the first device in the device cluster, at least one of the plurality of devices in the device cluster as at least one target splicing device; obtaining spliced video data by enabling each of the at least one target splicing device to splice and re-encode at least two of the plurality of source videos, and storing the spliced video data in at least one of the plurality of devices in the device cluster; and obtaining and storing video splicing information of each of the spliced video data, the first device being configured to obtain the each of the spliced video data based on the video splicing information of the each of the spliced video data and extracts a source video from the each of the spliced video data.

[0010] One or more embodiments of the present disclosure provide yet another method for video splicing storage. The method is applied to a device cluster comprising a plurality of devices, wherein one of the plurality of devices is designated as a first device. The method comprises: in response to receiving a video splicing instruction issued by the first device, splicing and re-encoding, through at least one target splicing device in the device cluster, at least two source videos to be spliced indicated by the video splicing instruction to obtain spliced video data, and storing the spliced video data in at least one of the plurality of devices in the device cluster; and storing video splicing information of each of the spliced video data, the first device being configured to obtain the each of the spliced video data based on the video splicing information of the each of the spliced video data and extracts a source video from the each of the spliced video data.

[0011] One or more embodiments of the present disclosure provide a non-transitory computer-readable storage medium comprising executable instructions, the executable instructions, when read by at least one processor, causing the at least one processor to execute a method for video splicing storage, the method comprising: obtaining channel information of channels connected to the plurality of splicing devices; determining at least one splicing scheme based on the channel information of the channels; determining at least one target splicing device corresponding to the at least one splicing scheme; obtaining source videos corresponding to the at least one splicing scheme; splicing the source videos using the at least one target splicing device according to the at least one splicing scheme to obtain spliced video data; and storing the spliced video data to the target splicing device.

[0012] The methods, systems, electronic devices, and storage media for video splicing storage provided in the embodiments of the present disclosure can achieve at least the following beneficial effects: (1) splicing a plurality of video streams into a single video stream to reduce data storage volume, and video splicing storage can effectively reduce the cost of video data storage; (2) Utilizing the apparatus's encoding and decoding capabilities to perform secondary splicing and redundant storage of video data can reduce the increased equipment costs associated with RAID setups or cluster storage arrangements, thereby resulting in lower storage consumption and less data to store. In addition, compared to directly storing video secondary streams, the clarity of the recovered video data is higher.BRIEF DESCRIPTION OF THE DRAWINGS

[0013] The present disclosure is further described in terms of exemplary embodiments. These exemplary embodiments are described in detail with reference to the drawings. The drawings are not to scale. These embodiments are non-limiting exemplary embodiments, in which like reference numerals represent similar structures throughout the several views of the drawings, and wherein:

[0014] FIG. 1 is a schematic diagram of an exemplary application scenario of a system for video splicing storage according to some embodiments of the present disclosure;

[0015] FIG. 2 is a flowchart of an exemplary process for video splicing storage according to some embodiments of the present disclosure;

[0016] FIG. 3 is a flowchart of an exemplary process for determining a splicing scheme according to some embodiments shown in the present disclosure;

[0017] FIG. 4 is a schematic diagram of predetermined splicing layouts of source videos according to some embodiments of the present disclosure;

[0018] FIG. 5 is a flowchart of an exemplary process for determining one or more splicing schemes according to some other embodiments of the present disclosure;

[0019] FIG. 6 is a flowchart of an exemplary process for determining a target splicing device according to some embodiments of the present disclosure;

[0020] FIG. 7 is a flowchart of an exemplary process for obtaining a target source video according to some embodiments of the present disclosure;

[0021] FIG. 8 is an exemplary block diagram of a processor of a system for video splicing storage according to some embodiments of the present disclosure;

[0022] FIG. 9 is a flowchart of a process for video splicing storage according to one embodiment of the present disclosure;

[0023] FIG. 10 is a flowchart of a process for video splicing storage according to another embodiment of the present disclosure;

[0024] FIG. 11 is a flowchart of a process for video splicing storage according to a specific embodiment of the present disclosure;

[0025] FIG. 12 is a flowchart of an exemplary process of a unified scheduling strategy of a management host according to some embodiments of the present disclosure;

[0026] FIG. 13 is a flowchart of an exemplary process for decoding, splicing, and re-encoding multiplexed source videos according to some embodiments of the present disclosure;

[0027] FIG. 14 is a flowchart of an exemplary process for managing a device cluster according to some embodiments of the present disclosure;

[0028] FIG. 15 is a schematic diagram of an exemplary structure of an electronic device according to one embodiment of the present disclosure; and

[0029] FIG. 16 is a schematic diagram of an exemplary structure of a computer-readable storage medium according to one embodiment of the present disclosure.DETAILED DESCRIPTION

[0030] In order to more clearly illustrate the technical solutions of the embodiments of the present disclosure, the accompanying drawings to be used in the description of the embodiments will be briefly described below. Obviously, the accompanying drawings in the following description are only some examples or embodiments of the present disclosure, and that the present disclosure may be applied to other similar scenarios in accordance with these drawings without creative labor for those of ordinary skill in the art. Unless obviously acquired from the context or the context illustrates otherwise, the same numeral in the drawings refers to the same structure or operation.

[0031] It should be understood that “system, ” “device, ” “unit, ” and / or “module” as used herein is a way to distinguish between different components, elements, parts, sections, or assemblies at different levels. However, these words may be replaced by other expressions if they accomplish the same purpose.

[0032] As indicated in the present disclosure and in the claims, the singular forms “a, ” “an, ” and “the” may be intended to include the plural forms as well, unless the context clearly indicates otherwise. In general, the terms “comprise, ” “comprises, ” and / or “comprising, ” “include, ” “includes, ” and / or “including, ” when used in this disclosure, specify the presence of stated features, integers, steps, operations, elements, and / or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof.

[0033] Flowcharts are used in the present disclosure to illustrate the operations performed by the system according to some embodiments of the present disclosure. It should be understood that the operations described herein are not necessarily executed in a specific order. Instead, they may be executed in reverse order or simultaneously. Additionally, one or more other operations may be added to these processes, or one or more operations may be removed from these processes.

[0034] In scenarios such as home monitoring, store and office management, public facility and traffic management, and smart cities, there is a demand for acquiring video data under different angles through multiple video acquisition devices to realize intelligent transportation and public security. However, the amount of video data captured is often very large. Although it is possible to reduce file size through video encoding technology or by utilizing external storage media, with the widespread popularity of application scenarios such as video surveillance, live streaming, social media, online education, etc., the overall storage demand continues to rise.

[0035] For the storage or backup of large amounts of data, a manner such as using a multi-disk redundant array of independent disks (RAID) , a cluster load balancing technique, and a simultaneous multi-device video storage technique, etc., is typically used to achieve data redundancy. However, these manners require a substantial amount of storage capacity and a large number of external storage media, resulting in high costs. Furthermore, storage environments involving multiple devices and nodes require more detailed monitoring, configuration, and troubleshooting, which increases the complexity of operation and maintenance.

[0036] In view of the above issues, commonly used methods in the prior art to reduce the storage and data redundancy backup burden on devices include: (1) implementing dynamic bitrate management for connected cameras and employing an intelligent H. 265 encoding scheme to reduce a keyframe transmission frequency of large data, thereby reducing the data volume and alleviating video lag or storage and backup pressure; (2) performing intelligent analysis on original data to dynamically eliminate non-critical or low-value data, thereby reducing a data compression volume; (3) distributing and forwarding data across multiple devices, i.e., storing and transmitting data from different sources across different devices, to address the issue of insufficient performance in a single device.

[0037] However, with respect to method (1) which involves increasing a key frame interval using the dynamic bitrate and intelligent H. 265 encoding, for large video frame bitstreams, the effect on network transmission and decoding acceleration is limited. Additionally, in cases of excessively long video key frames, if one or more frames of a video are lost, large segments of the video become unplayable. Regarding method (2) , which utilizes the device's analytical capabilities to intelligently analyze a source video and remove non-essential data frames to highlight key frames, the integrity of the data may be compromised due to constraints of the analysis algorithm or other anomalies, potentially causing video data loss. Moreover, for a high-resolution video stream, such as 4K or 8K, video analysis consumes significant device performance, making it impossible to address the various defects in video data storage and backup in high-resolution scenarios, such as large data volumes, extensive redundant backups, and the potential for data loss if a splicing device malfunctions. With respect to method (3) , distributing and storing data requires multi-server scheduling, leading to high configuration costs. Even with distributed storage, redundant backup of data requires repeating data storage, essentially not reducing the total backup volume and thereby failing to alleviate the pressure on data storage.

[0038] In view of the above, some embodiments of the present disclosure provide methods of video splicing storage to reduce the pressure of storing multi-channel videos. The technical solutions disclosed herein are described in detail below in connection with the accompanying drawings.

[0039] FIG. 1 is a schematic diagram of an exemplary application scenario of a system for video splicing storage according to some embodiments of the present disclosure.

[0040] As shown in FIG. 1, an application scenario of a system 100 for video splicing storage (hereinafter referred to as the video splicing storage system 100) may include one or more video acquisition devices 110, a network 120, a terminal 130, a processing device 140 and a splicing device 150, or the like.

[0041] The one or more video acquisition devices 110 are configured to acquire video data. For example, the one or more video acquisition devices 110 may acquire source videos that need to be spliced for storage, etc. In some embodiments, the one or more video acquisition devices 110 may be a variety of image acquisition devices with data transmission capabilities. For example, the one or more video acquisition devices 110 may include a network camera (IP Camera) , an unmanned aerial vehicle (UAV) with image capture and data transmission capabilities, or the like. As another example, the one or more video acquisition devices 110 may include a video surveillance device under a home, an office, a shopping mall, a station, a subway station, or the like. In some embodiments, the one or more video acquisition devices 110 may include a plurality of video acquisition devices. The plurality of video acquisition devices 110 may acquire a plurality of different source videos, and a processor (e.g., the processing device 140) may splice the plurality of source videos and store the source videos in a splicing device (e.g., the splicing device 150) .

[0042] The network 120 may include any suitable network that facilitates the exchange of information and / or data for the video splicing storage system. In some embodiments, one or more components (e.g., the video acquisition device 110, the network 120, the terminal 130, the processing device 140 the splicing device 150, or the like) of the video splicing storage system may communicate information and / or data with one or more other components within the system via the network 120. For example, the video acquisition device 110 may send acquired source video to the processing device 140 or the like via the network 120.

[0043] The terminal 130 may provide a functional component related to user interaction and realize user interaction functions (e.g., providing or displaying information and data to a user) . The user may be a manager of the video splicing storage system, a viewer of a spliced video, a requestor of a target source video, etc. In some embodiments, the terminal 130 may display spliced video data for the user. Merely by way of example, the terminal 130 may include a mobile device, a tablet computer, a laptop computer, a desktop computer, etc., or other devices with input and / or output capabilities, or any combination thereof.

[0044] The processing device 140 is configured to process information and / or data related to video splicing storage to perform one or more of the functions described in the present disclosure. In some embodiments, the processing device 140 may be configured to: obtain channel information of channels connected to the plurality of splicing devices; determine at least one splicing scheme based on the channel information of the channels; determine at least one target splicing device corresponding to the at least one splicing scheme; obtain a source video corresponding to the at least one splicing scheme; splice the source video using the at least one target splicing device according to the at least one splicing scheme to obtain spliced video data; and store the spliced video data to the target splicing device. . A detailed description of the above operations performed by the processing device 140 may be found in FIGs. 2 and 3 and their associated descriptions.

[0045] In some embodiments, the processing device 140 may include a central processing unit (CPU) , a digital signal processor (DSP) , a system on a chip (SoC) , a microcontroller unit (MCU) , a computer, a user console, or the like, or any combination thereof. In some embodiments, the processing device 140 may include a single server or a group of servers. The group of servers may be centralized or distributed. In some embodiments, the processing device 140 may be local or remote. In some embodiments, the processing device 140 may be implemented on a cloud platform. Merely by way of example, the cloud platform may include a private cloud, a public cloud, a hybrid cloud, a community cloud, a distributed cloud, an on-premises cloud, a multi-tier cloud, or the like, or any combination thereof. In some embodiments, the processing device 140 may be integrated or included in one or more other components of the video splicing storage system 100.

[0046] The splicing device 150 is configured to store data, instructions, and / or any other information. In some embodiments, the splicing device 150 may store data obtained from the video acquisition device 110 and / or the processing device 140. For example, the splicing device 150 may store source videos obtained by the one or more video acquisition devices 110. As another example, the splicing device 150 may store spliced video data after splicing the source videos, or the like. In some embodiments, the splicing device 150 may include mass storage, removable memory, volatile read-write memory, read-only memory (ROM) , or the like, or any combination thereof. In some embodiments, the splicing device 150 may be implemented on a cloud platform. In some embodiments, the splicing device 150 may be connected to the network 120 to communicate with one or more other components (e.g., the video acquisition device 110, the processing device 140, or the like) of the video splicing storage system. In some embodiments, the splicing device 150 may be a splicing device cluster including a plurality of splicing devices. In some embodiments, the splicing device 150 may be integrated into the video acquisition device 110.

[0047] For example, in a device cluster including a plurality of splicing devices, each of the plurality of splicing devices may be integrated into a network video recorder (NVR) . More descriptions of the splicing device 150 may be found in the related sections, e.g., descriptions of FIG. 2, FIG. 3, etc.

[0048] It should be noted that, the video splicing storage system 100 and its application scenarios are provided for illustrative purposes only and are not intended to limit the scope of the present disclosure. For those of ordinary skill in the art, a wide variety of variations and modifications may be made in accordance with the description of the present disclosure. For example, the video splicing storage system 100 may also include databases, information sources, or the like. As another example, the video splicing storage system 100 may be implemented on other devices to achieve similar or different functionalities. However, these changes and modifications do not depart from the scope of the present disclosure.

[0049] FIG. 2 is a flowchart of an exemplary process for video splicing storage according to some embodiments of the present disclosure. In some embodiments, process 200 may be executed by a processing device (e.g., the processing device 140processing device 140 a management host, a backup host, etc. ) . As shown in FIG. 2, process 200 includes the following operations.

[0050] In 210, channel information of channels connected to a plurality of splicing devices may be obtained.

[0051] In some embodiments, the plurality of splicing devices may be described in FIG. 1. For example, the video splicing storage system 100 may be applied to a device cluster that includes a plurality of splicing devices, and the plurality of splicing devices collectively constitute the splicing device 150. In some embodiments, each of the plurality of splicing devices is connected to at least one of the channels, and the at least one of the channels is used to transmit a source video to a corresponding splicing device.

[0052] A source video refers to an original video that is collected directly by a video acquisition device.

[0053] A channel refers to a path through which the video acquisition device transmits information and / or data to the splicing device connected with the channel. In some embodiments, the channel may connect the video acquisition device and the splicing device, and the video acquisition device transmits the source video to the splicing device via the channel. The channel may include a wired channel and a wireless channel.

[0054] In some embodiments, one channel may correspond to one video acquisition device. In some embodiments, one splicing device may correspond to more than one channel. For example, one splicing device may receive and manage source videos acquired by multiple video acquisition devices corresponding to of the more than one channel through the more than one channel. In some embodiments, each of the channels may correspond to a different video signal, i.e., one channel may transmit a source video acquired by one video acquisition device (e.g., an IP camera) . Typically, one splicing device (e.g., an NVR device) may have more than one channel, and a count of the more than one channel corresponds to a count of video acquisition devices that the splicing device may access and manage.

[0055] Channel information of a channel refers to information associated with a source video transmitted by the channel. For example, the channel information of a channel may include video parameters of a source video transmitted by the channel, such as a source video ID, a source video encoding format (e.g., H. 264, H. 265, MJPEG, etc. ) , a resolution, a frame rate, a bit rate, etc., a data transmission path, a streaming address, or the like.

[0056] In some embodiments, the channel information of a channel may be stored in a splicing device connected with the channel, and the processing device 140 may read from the splicing device to obtain the channel information of the channel.

[0057] In some embodiments, for the corresponding to the plurality of splicing devices, the processing device 140 may obtain the channel information of each of the channels. For example, for five splicing devices, each of the five splicing devices may correspond to four channels, the processing device 140 may read channel information of the twenty channels from the five splicing devices.

[0058] In 220, at least one splicing scheme may be determined based on the channel information of the channels.

[0059] A splicing scheme refers to a specific way to splice a plurality of source videos into a single video. Splicing refers to combining the plurality of source videos acquired by a plurality of video acquisition devices 110 following a splicing rule. For example, the splicing rule may include splicing the plurality of source videos into a single video following a chronological order of video acquisition (e.g., video B immediately after the end of video A) . As another example, the splicing rule may include splicing the plurality of source videos into a single video following a splicing layout (e.g., combining frames of a plurality of source videos into a single video according to the splicing layout shown in FIG. 4) . The splice layout refers to a spatial arrangement of the plurality of source videos when the plurality of source videos are spliced into a single video. Splicing the plurality of source videos can optimize storage, save network bandwidth, and backup data redundancy.

[0060] In some embodiments, the splicing scheme may include a target splicing device ID, a source video list, a splicing parameter, a target encoding format, a storage location indication, or the like, or a combination thereof. The target splicing device ID indicates a splicing device for performing splicing of the plurality of source videos. The source video list lists IDs and encoding formats of the plurality of source videos to be spliced. The splicing parameter includes the splicing layout (e.g., a splicing order, a temporal and spatial alignment) , the resolution, the bit rate, or the like. The target encoding format indicates an encoding format of a spliced video, which is usually the same as the encoding format of the source videos. Optionally, the encoding format of the spliced video may also be different from the encoding format of the source videos. The storage location indication points out at least one device in the device cluster in which the spliced video is stored. Typically, the spliced video is stored in the splicing device for performing splicing of the plurality of source videos (also referred to as a target splicing device or a current splicing device) . Optionally, the spliced video data may also be stored in at least one device in the device cluster other than the target splicing device. In some embodiments, the processing device 140 may issue the splicing scheme to the splicing device in a form of an instruction. Therefore, the splicing scheme may also be referred to as a video splicing instruction for instructing the target splicing device to perform a corresponding splicing scheme.

[0061] In some embodiments, the source video list, the splicing parameter (e.g., the resolution and the bit rate) , the target encoding format, the storage location indication, or the like, in the splicing scheme may be set as required, and the present disclosure does not limit the specific setting manner.

[0062] In some embodiments, the processing device 140 may divide channels based on the channel information (e.g., resolution, etc. ) of the channels into at least one first channel group, and determine a splicing layout in the splicing scheme based on the at least one first channel group. More descriptions may be found in FIG. 3 and the related descriptions thereof.

[0063] In some embodiments, the target splicing device ID may be determined based on a target splicing device. More descriptions of the target splicing device may be found in the description of operation 230 below.

[0064] In 230, at least one target splicing device corresponding to the at least one splicing scheme may be determined from the plurality of splicing devices.

[0065] A target splicing device refers to a splicing device used to perform splicing operations based on a splicing scheme corresponding to the target splicing device. In some embodiments, the target splicing device may also be referred to as a target splicing device.

[0066] In some embodiments, the count of the at least one target splicing device may exceed 1. Each of the at least one target splicing device may perform a splicing scheme corresponding to the target splicing device. For example, each splicing scheme may correspond to one target splicing device. Alternatively, multiple splicing schemes may also correspond to one target splicing device. As another example, if the count of target splicing devices capable of performing splicing is insufficient, one target splicing device may perform multiple splicing schemes. However, to ensure the efficiency of video splicing, preferably, each of the at least one splicing scheme corresponds to one target splicing device. In other words, one target splicing device only performs one splicing scheme.

[0067] In some embodiments, the processing device 140 may determine the at least one target splicing device based on splicing device grouping. More descriptions may be found in FIG. 6 and the related descriptions thereof.

[0068] In 240, source videos corresponding to each of the at least one splicing scheme may be obtained.

[0069] In some embodiments, the processing device 140 may obtain the source videos corresponding to each of the at least one splicing scheme based on the each of the at least one splicing scheme. For example, the processing device 140 may read the source videos corresponding to a splicing scheme from one or more splicing devices or an external source via source video IDs in the source video list of the splicing scheme. In some embodiments, the processing device 140 may obtain the source videos from the video acquisition device 110.

[0070] In some embodiments, the resolutions of the source videos corresponding to different splicing schemes may be the same or different. For example, for two splicing schemes A1 and A2, and four source videos B1, B2, B3, and B4, a correspondence between the splicing schemes and the source videos may include: the splicing scheme A1 corresponds to the source videos B1 and B2, the source videos B1 and B2have a video resolution of 1080P; and splicing scheme A2 corresponds to the source videos B3 and B4, the resolution of the source video B3 is 2K, and the resolution of the source video B4 is 4K.

[0071] In 250, spliced video data of the source videos corresponding to each of the at least one splicing scheme may be obtained by the target splicing device splicing the source videos according to the each of the at least one splicing scheme.

[0072] The spliced video data of the source videos refers to video data obtained by splicing the source videos. For example, the spliced video data may be a video obtained after splicing.

[0073] In some embodiments, the target splicing device may decode each of the source videos to obtain decoded source videos, splice the decoded source videos based on the splicing parameter of one of the at least one splicing scheme to generate a spliced video frame sequence, and encode the spliced video frame sequence in accordance with the target encoding format and parameters in the splicing scheme to generate the spliced video data. More descriptions may be found in FIG. 12 and the related descriptions thereof.

[0074] In 260, the spliced video data may be stored to the target splicing device.

[0075] In some embodiments, after generating the spliced video data, the processing device 140 may store the spliced video data to the target splicing device.

[0076] In some embodiments, the processing device 140 may store the spliced video data to at least one splicing device in the device cluster other than the target splicing device. For example, the target splicing device may transmit the spliced video data via a network to a splicing storage location specified by the splicing scheme.

[0077] The method for video splicing storage described in the present disclosure can splice multiple video streams into a single video stream, thereby reducing the amount of data storage required, and effectively reducing the storage costs of video data. In addition, by using splicing devices, video data can be grouped, spliced, and stored, resulting in lower storage consumption and reduced storage volume. Moreover, video data recovered from the spliced video exhibits a relatively high clarity, making it easier for users to view.

[0078] FIG. 3 is a flowchart of an exemplary process for determining a splicing scheme according to some embodiments in the present disclosure. In some embodiments, process 300 may be executed by a processing device (e.g., the processing device 140, a management host, a backup host, etc. ) . As shown in FIG. 3, process 300 includes the following operations.

[0079] In 310, channels may be divided based on channel information of the channels to obtain at least one first channel group.

[0080] A first channel group is a set of channels obtained by dividing the channels based on channel information of the channels.

[0081] In some embodiments, the processing device 140 may group the channels based on an encoding format of each of the channels. For example, channels with the same encoding format are grouped into the same first channel group. In some embodiments, the processing device 140 may group the channels based on the resolution of each of the channels. For example, channels having the same encoding format or same resolution are grouped into the same first channel group. Taking grouping based on resolution as an example, referring to FIG. 11, the processing device 140 may designate one or more channels with a resolution of 1080P as first channel group 1, one or more channels with a resolution of 4K as first channel group 2, and channels of other resolutions as first channel group N. In some embodiments, the processing device 140 may group the plurality of channels based on the resolution and the encoding format of each of the channels. For example, channels with the same encoding format and the same resolution are grouped into the same first channel group.

[0082] In 320, for channels within each of the at least one first channel group, at least one second channel group may be determined by grouping channels within the each of the at least one first channel group according to splicing devices connected with the channels within each of the at least one first channel group.

[0083] In some embodiments, for channels within a first channel group, channels that are connected with the same splicing device are grouped into a same second channel group. For example, a first portion of the channels in the first channel group are connected to a first splicing device and a second portion of the channels in the first channel group are connected to a second splicing device, then the first portion of the channels are grouped into a second channel group and the second portion of the channels in the first channel group are grouped into another second channel group. In some embodiments, the first portion of the channels in the first channel group may be connected with the same splicing device, then the first portion of the channels in the first channel group may be grouped into a second channel group, and each of the second portion of the channels in the first channel group may be connected to a different splicing device, then the second portion of the channels may be grouped into another second channel group. In other words, channels each of which is connected to different splicing devices may be grouped into the same second channel group.

[0084] In some embodiments, the processing device 140 may determine the at least one second channel group based on the splicing devices to which channels of each of the at least one first channel group are connected. For example, a first channel group corresponding to a 1080P resolution includes ten channels, three channels are connected to a first splicing device, three channels are connected to a second splicing device, and four channels are connected to a third splicing device. In this case, the three channels connected to the first splicing device may be assigned to a second channel group 1, the three channels connected to the second splicing device may be assigned to a second channel group 2, and the four channels connected to the third splicing device may be assigned to a second channel group 3.

[0085] In some embodiments, when the at least one first channel group includes a plurality of first channel groups, for each of the plurality of first channel groups, the processing device 140 may determine one or more second channel groups based on the splicing devices connected to channels within the first channel group. For example, when the at least one first channel group includes three first channel groups, the processing device 140 may group the channels within each of the three first channel groups based on the splicing devices connected with the channels within the each of the three first channel groups to obtain second channel groups.

[0086] In 330, for one of the at least one second channel group, one or more splicing schemes corresponding to the one of the at least one second channel group may be determined based on change information of channels within the one of the at least one second channel group.

[0087] Change information of a channel refers to data / information related to a change of a source video collected by a video acquisition device corresponding to the channel. In some embodiments, the change information of the channel includes a trigger event, video frame change data, or the like.

[0088] The trigger event refers to an event triggering a change of a source videos. For example, the trigger event includes the appearance, disappearance, movement, etc., of a person and / or an object. Data related to the trigger event includes the frequency of trigger events, the count of the trigger events, the trigger time of a most recent trigger event, etc.

[0089] The video frame change data refers to data that reflects a change of a data volume of each frame of the source video. The video frame change data includes a mean of data volumes of multiple frames, a variance of the data volumes of the multiple frames, or the like. In some embodiments, the video frame change data may represent data such as the mean and the variance of the data volumes of the multiple frames of the source video in a form of a vector, a matrix, or the like.

[0090] In some embodiments, the processing device 140 may capture a full-frame data (i.e., a complete image, also referred to as an I-frame) of a frame in the source video. Subsequent frames (P-frames) only record change data compared to a preceding frame. If a frame has not changed relative to a preceding frame, the recorded data volume of the frame is minimal. By recording change data volume between a succeeding frame and a preceding frame, a change of a source video may be detected. For example, if the data volume of a succeeding frame is large, it indicates a significant change in the image of the succeeding frame, possibly triggered by a trigger event. Further, the processor may record the video frame change data.

[0091] As described in operation 220, parameters such as the source video list, the splicing parameter (e.g., the resolution and the bit rate) , the target encoding format, the storage location indication, and the target splicing device ID in the splicing scheme may be preset as needed or determined based on the target splicing device. The determination of the splicing scheme further includes a determination of a splicing layout.

[0092] FIG. 4 is a schematic diagram of predetermined splicing layouts of source videos according to some embodiments of the present disclosure. As shown in FIG. 4, the processing device 140 may be set up a variety of predetermined splicing layouts, such as a first layout 410, a second layout 420, and a third layout 430. Referring to FIG. 4, in the first layout 410 and the third layout 430, two or more source videos may be spliced at the same scaling ratio. In the second splice layout 420, source videos with a relatively high resolution may be spliced at a relatively high scaling ratio.

[0093] In some embodiments, the splicing layout may be determined based on a count of the source videos and the spatial distribution of the source videos. The spatial distribution of the source videos may be determined based on priorities of the source videos, i.e., source videos having a higher priority occupies a larger proportion of an image area of a spliced video, and are positioned more towards a front or a center of the spliced video.

[0094] In some embodiments, source videos and channels have a corresponding relationship, i.e., each source video corresponds to one channel. The processing device 140 may determine the number and the priorities of the source videos based on a number and priorities of the channels.

[0095] FIG. 5 is a flowchart of an exemplary process for determining one or more splicing schemes according to some other embodiments of the present disclosure. In some embodiments, process 500 may be executed by a processing device (e.g., the processing device 140, a management host, a backup host, etc. ) . As shown in FIG. 5, process 500 includes the following operations.

[0096] In 510, a channel priority of each of channels within a second channel group may be determined based on change information of the channels s within the second channel group.

[0097] The channel priority of a channel reflects an importance level of the channel in performing video splicing. The higher the channel priority of a channel is, the greater a proportion of a source video corresponding to the channel occupies in a spliced video. For example, in the second layout 420 shown in FIG. 4, if the channel priority of Source video 1 is higher than the channel priority of Source video 2 and the channel priority of source video 3, then Source video 1 occupies a larger proportion in the spliced video.

[0098] In some embodiments, the channel priority of a channel may be determined based on change information of the channel. For example, the greater the change information of a channel is, the higher the channel priority of the channel is. As another example, the higher a frequency of trigger events, the greater a count of the trigger events, the later a trigger time of a most recent trigger event, the larger a mean of data volumes of multiple frames, and the greater a variance of the data volumes of the multiple frames, the higher the channel priority is or the larger a weighted sum of the above data is, the higher the channel priority is.

[0099] In some embodiments of the present disclosure, the channel priority of a channel also correlates to an average spatial redundancy level of the channel.

[0100] Spatial redundancy refers to redundancy caused by a strong correlation between adjacent pixels within a single frame. For example, the spatial redundancy may be caused by adjacent pixels having a same color. The spatial redundancy level may be determined based on a ratio of a redundant area within a frame to a total area of the frame. The average spatial redundancy level of a channel refers to an average of spatial redundancy levels of multiple frames in the source video corresponding to the channel.

[0101] The greater the average spatial redundancy level of a channel is, the smaller an amount of information in the frames is, and the lower the channel priority of the channel is. In some embodiments, the processing device 140 may designate the average spatial redundancy level of a channel as one type of change information of the channel to determine the channel priority of the channel. For example, the processing device 140 may normalize data such as the average spatial redundancy, the frequency of trigger events, the count of trigger events, the trigger time of the most recent trigger time, the mean of data volumes of multiple frames, and the variance of the data volumes of the multiple frames to determine normalized data. After normalization, the processor determines the weighted sum of the normalized data. The larger the weighted sum is, the higher the channel priority is. Exemplary techniques of data normalization include data cleaning, data formatting and unit conversion, range standardization, Z-score standardization, decimal scaling standardization, normalization, logarithmic transformation, or the like.

[0102] In some embodiments of the present disclosure, by correlating the channel priority of channels with the average spatial redundancy levels of the channels, data loss during compression can be reduced.

[0103] In 520, a count of the one or more splicing schemes may be determined based on device information of a splicing device connected with the channels within the second channel group and a count of the channels in the second channel group.

[0104] If the volume of source video data is relatively large, it may be necessary to splice a large number of source videos into a plurality of spliced videos, and the plurality of spliced videos correspond to a plurality of splicing schemes. For example, the splicing layouts in the plurality of splicing schemes may be the first layout 410, the second layout 420, and the third layout 430 shown in FIG. 4. In such cases, one spliced video may correspond to one splicing scheme. In other words, after the processing device 140 controls a target splicing device to execute a splicing scheme, a corresponding spliced video may be obtained.

[0105] If the count of the splicing schemes is too large, resulting in too many spliced videos, the compressed video stream after splicing (e.g., all video streams are spliced following the first layout 410) may occupy a too large proportion in the spliced video, which may lead to poor compression, thus consuming too much storage space and residual decoding capacity, making it difficult to reduce hard disk and device cluster consumption. On the other hand, if the count of the splicing schemes is too small, resulting in too few spliced videos, the compressed video stream may occupy a too small proportion in the spliced video after splicing (e.g., all video streams are spliced following the first layout 430) . While using a large compression ratio drastically reduces storage data, it may lead to significant information loss, making it inconvenient for practical video retrieval and viewing. Therefore, it is necessary to determine a reasonable count of splicing schemes to balance information loss and data compression.

[0106] In some embodiments, the processing device 140 may determine the count of the one or more splicing schemes based on the device information of the splicing device connected with channels within the second channel group and the count of the channels within the second channel group.

[0107] Device information of a splicing device includes a residual decoding capacity and a residual storage space of the splicing device. The residual decoding capacity refers to data such as the count of available remaining decoding paths, the maximum concurrent decoding capacity, etc., of the splicing device when splicing source videos.

[0108] In some embodiments, the processing device 140 may determine the count of the one or more splicing schemes based on a preset rule. For example, a comparison table illustrating a correspondence between the count of splicing schemes, remaining decoding capacities, and residual storage spaces of splicing devices may be preset. The comparison table may include a reference count of splicing schemes corresponding to each of a remaining decoding capacity and a residual storage space. The processing device 140 may determine the count of the one or more splicing schemes by querying the comparison table based on the remaining decoding capacity and the residual storage space of the splicing device.

[0109] In 530, the one or more splicing schemes may be determined according to a predetermined splicing layout based on the channel priority, the count of the one or more splicing schemes, and the count of the channels within the second channel group.

[0110] For example, the processing device 140 may determine a count of channels in each of the one or more splicing schemes based on the count of the one or more splicing schemes and the count of the channels within the second channel group by way of average allocation, random allocation, or the like. The processing device 140 may determine, based on the channel priority, the splicing layout of the source videos corresponding to each channel in accordance with the predetermined splicing layout. Finally, the processing device 140 may determine one or more splicing schemes based on parameters such as the source video list, the splicing parameter (e.g., the resolution and the bit rate) , the target encoding format, the storage location indication, and the target splicing device ID. Determining the splicing layout of the source videos corresponding to each channel in accordance with the predetermined splicing layout includes: the higher the channel priority of a channel is, the larger the compression ratio of the source video corresponding to the channel is (i.e., the larger the proportion of the source video is in the spliced video) . For example, the source video corresponding to a channel with a high priority is prioritized to adopt the layout of Source video 1 and Source video 2 as shown in the first layout 410, or the layout of Source video 1 in the second layout 420 in FIG. 4. Source videos corresponding to channels with low priorities are spliced in sequence following other layouts (e.g., the third layout 430, etc. ) .

[0111] The one or more splicing schemes determined in some embodiments of the present disclosure can effectively balance information loss and data compression, resulting in improved video splicing performance.

[0112] In some embodiments, the predetermined splicing layout may not be sufficient for splicing the source videos. For example, for source videos corresponding to channels having a large amount of change information, more data volume needs to be retained, and the source videos may have a larger portion in the spliced video.

[0113] In some embodiments, the processing device 140 may determine a candidate splicing scheme by inputting the change information of the channels in the second channel group into a splicing scheme prediction model; and update at least one of the one or more splicing schemes based on the candidate splicing scheme.

[0114] The splicing scheme prediction model may be a machine learning model. For example, the splicing scheme prediction model may be a neural network (NN) model, a deep neural network (DNN) model, a convolutional neural network (CNN) model, or a combination thereof.

[0115] In some embodiments, the processing device 140 may input one or more of the change information of the channels, the device information of the splicing device connected with the channels in the second channel group, the count of the channels in the second channel group, historical call information of the channels in the second channel group, or the like, into the splicing scheme prediction model, and the splicing scheme prediction model outputs the one or more splicing schemes. In some embodiments, the input of the splicing scheme prediction model may further include the average spatial redundancy level of the channels in the second channel group.

[0116] In some embodiments, the splicing scheme prediction model may be obtained by training. Training samples for the splicing scheme prediction model include a plurality of sets of sample source videos (including change information of corresponding sample channels, sample splicing device information, and a count of the sample channels) . The processing device 140 may splice each set of the plurality of sets of source videos based on a plurality preset splicing schemes, and designate a splicing scheme achieving an optimal balance between information loss and data compression as a label for the set of sample source videos.

[0117] In some embodiments of the present disclosure, the processing device 140 may evaluate the balance between information loss and data compression based on a splicing score. The higher the splicing score is, the better the balance between information loss and data compression.

[0118] Determining the splicing score includes: setting a reasonable range for data compression (the range may be determined based on the residual storage space in the splicing device information) , where the larger the residual storage space of the splicing device, the broader the reasonable range; for multiple splicing schemes within the reasonable data compression range, determining a matching degree between channel priority and compression ratio, where a high priority corresponds to a high compression ratio and a low priority corresponds to a low compression ratio. The matching degree between channel priority and compression ratio is designated as the splicing score. In some embodiments, the matching degree may be determined based on a ratio of a count of matched channels to a count of total channels. A matched channel is a channel whose channel priority corresponds to the compression ratio of the corresponding source video. In other words, the higher the channel priority of a channel is, the higher the compression ratio of the source video corresponding to the channel is; the lower the channel priority of a channel is, the lower the compression ratio of the source video corresponding to the channel is. The correspondence between the channel priority and the compression ratio may be preset.

[0119] In some embodiments of the present disclosure, the input of the splicing scheme prediction model may further include historical call information of the channels in the second channel group.

[0120] Historical call information of a channel in the second channel group refers to the count of times and the total duration of video data corresponding to the channel that has been accessed by a user. The historical call information of a channel reflects the importance level of video data of the channel from a user management perspective. Channels with more viewings and longer total viewing durations may be more important to the user.

[0121] In some embodiments described in the present disclosure, inputting the historical call information of the channels to the splicing scheme prediction model can facilitate user management and reduce the likelihood of excessive compression of key data, making the spliced video more aligned with user needs.

[0122] The candidate splicing scheme refers to a splicing scheme for updating the predetermined splicing layout.

[0123] A splice layout in the candidate splice scheme may be customized, i.e., the proportion of each source video in the candidate splicing scheme may be varied within a preset range. For example, a spliced video is composed of three source videos (Source video 1, Source video 2, and Source video 3) , if the data volume of the change information of the channel corresponding to Source video 1 is the largest, the user may pay more attention to Source video 1, more data of Source video 1 may be retained, and the proportion of Source video 1 in the spliced video may be 60%. The data volume of the change information of the channel corresponding to Source video 2 is less than the data volume of the change information of the channel corresponding to Source video 1, so the proportion of Source video 2 in the spliced video may be 30%. The data volume of the change information of the channel corresponding to source video 3 is the smallest, indicating that the frames of Source video 3 is nearly unchanged, and the user has the least interest in Source video 3. Thus, the proportion of Source video 3 in the spliced video may be 10%.

[0124] In some embodiments, the customized splicing layout may vary during a cycle of the change information of channels.

[0125] A cycle refers to an interval during which the change information of a channel repeats. In some embodiments, the cycle may be determined based on an analysis of historical data. For example, for surveillance videos at a subway entrance, the cycle of the change information of the channel may be one day.

[0126] In some embodiments, source videos at different time points in a cycle correspond to different priorities, and proportions of the source videos in a video spliced following the customized splicing layout is changeable. For example, in the case of surveillance videos at a subway entrance, during commuting hours, there is a peak in data change, while after the subway stops operating at night, there is a low period. Therefore, priorities of channels corresponding to surveillance videos collected during peak hours are relatively high, while priorities of channels corresponding to surveillance videos collected during the low period are relatively low. In some embodiments, the processing device 140 may determine multiple candidate splicing layouts corresponding to different time periods based on the change information of the channels corresponding to source videos in different time periods within the cycle, and adjust the splicing layout accordingly in real-time.

[0127] In some embodiments of the present disclosure, the splicing layout is adaptively adjusted based on the cycle of the change information of the channels, making it better suited to the practical needs of video splicing.

[0128] In some embodiments, the processing device 140 may update at least one of the one or more splicing schemes based on the candidate splicing scheme. For example, the processing device 140 may replace a splicing scheme of the predetermined layout using the candidate splicing scheme of a customized splicing layout.

[0129] In some embodiments of the present disclosure, the one or more splicing schemes are determined using a machine learning model, eliminating the need to rely on manual expertise. This approach is more intelligent and automated, enhancing data processing capabilities and efficiency. Moreover, compared to the predetermined splicing layout, the candidate splicing layout achieves better balance between information loss and data compression, allowing for reduced storage pressure while retaining more video data that the user is likely to prioritize.

[0130] In some embodiments, the processing device 140 may monitor the change information of the channels connected with the splicing devices within the each of the at least one second channel group, and update the candidate splicing scheme for the each of the at least one second channel group in response to determining that a change value of the change information of a channel among the channels connected with the splicing devices within the each of the at least one exceeds a first predetermined threshold.

[0131] In some embodiments, the processing device 140 may monitor the change information of the channels in real-time.

[0132] In some embodiments, to reduce the data processing load on the processing device 140 the processing device 140 may monitor the change information of a channel at a preset time interval (e.g., every 30 minutes, every 1 hour, etc. ) .

[0133] In some embodiments, the preset time interval may be related to the residual storage space of the splicing device corresponding to the channel. For example, the smaller the residual storage space of the splicing device is, the shorter the preset time interval is.

[0134] In some embodiments of the present disclosure, the processing device 140 may construct feature vectors based on the change information of a channel. The change value of the change information of the channel may be determined based on a similarity between a feature vector at a current monitoring and a feature vector at a previous monitoring. For example, during each monitoring of the change information of the channel, the processing device 140 may determine the similarity between the feature vector at the current monitoring and the corresponding feature vector at the previous monitoring and use a standardized result of the similarity as the change value of the change information of the channel. An exemplary standardization process includes: p=1-α, wherein p denotes the change value of the change information of the channel; and α denotes the similarity between feature vectors, such as a cosine similarity, or the like.

[0135] In some embodiments, if the change value of the change information of the channel exceeds a preset threshold (e.g., 50%, 60%, etc. ) , it indicates a significant change of the source videos corresponding to the channel. For example, if previous source videos were fluctuating and current source videos are relatively stable, then it is necessary to lower the priority of the channel corresponding to the source videos and reduce the compression ratio of the source videos. As another example, if the previous source videos were relatively stable and current source videos are fluctuating, then it is necessary to increase the priority of the channel corresponding to the source videos and increase the compression ratio of the source videos.

[0136] In some embodiments, the processing device 140 may update the candidate splicing scheme based on the most recently monitored channel change information. For example, the processing device 140 may input the latest channel change information into the splicing scheme prediction model to obtain an updated candidate splicing scheme and replace the candidate splicing scheme based on the updated candidate splicing scheme.

[0137] In some embodiments of the present disclosure, updating the candidate splicing scheme based on the change information of the channels can timely adjust the splicing layout, making it more adapted to actual splicing needs.

[0138] In some embodiments, the processing device 140 may input the change information of the channels within the second channel group into the splicing scheme prediction model to determine the one or more splicing schemes. For example, the processing device 140 may input the change information of the channels within the second channel group into the splicing scheme prediction model and determine the output of the splicing scheme prediction model as the one or more splicing schemes.

[0139] In some embodiments of the present disclosure, determining the one or more splicing schemes using the splicing scheme prediction model allows for more concise and efficient processing of a large amount of video data to be spliced.

[0140] FIG. 6 is a flowchart of an exemplary process for determining a target splicing device according to some embodiments of the present disclosure. In some embodiments, process 600 may be executed by a processing device (e.g., the processing device 140, a management host, a backup host, etc. ) . In some embodiments, when there are a plurality of second channel groups, for each of the plurality of second channel groups, the processing device may perform process 600 to determine a target splicing device corresponding to each of the second channel groups. As shown in FIG. 6, process 600 includes the following operations.

[0141] In 610, if channels within the device group are connected to a same splicing device, the same splicing device connected to channels within a second channel group may be designated as a target splicing device for one or more splicing schemes corresponding to the second channel group.

[0142] For example, if a second channel group has ten channels, the processing device 140 may designate the splicing device connected to the ten channels as the target splicing device. Further, the processing device 140 may control the target splicing device to splice the source videos corresponding to the ten channels using the one or more splicing schemes. More descriptions of the splicing schemes may be found in FIGs. 2 and 3 and the related descriptions thereof.

[0143] In 620, if the channels within the second channel group are connected to multiple splicing devices, a splicing device with a strongest residual decoding capability among the multiple splicing devices may be designated as the target splicing device for the one or more splicing scheme corresponding to the second channel group.

[0144] For example, if the second channel group has ten channels, three channels within the second channel group are connected to splicing device 1, three channels are connected to splicing device 2, and four channels are connected to splicing device 3, then the processing device 140 may designate a splicing device with the strongest residual decoding capability from the splicing devices 1, 2, and 3 as the target splicing device.

[0145] In some embodiments, the processing device 140 may determine the target splicing device based on the residual storage space and the residual decoding capacity of the splicing devices.

[0146] In some embodiments, the processing device 140 may select one or more splicing devices with the strongest residual decoding capability as one or more target splicing devices. Each of the one or more target splicing devices performs at least one target splicing scheme.

[0147] In some embodiments, the processing device 140 may monitor the residual decoding capacity of each splicing device. In response to determining that a residual decoding capability of a splicing device is greater than a second predetermined threshold, the processing device 140 may designate the splicing device as a candidate splicing device, and transfer a portion of splicing schemes of a target splicing device with a weakest residual decoding capability to the candidate splicing device.

[0148] In some embodiments, the processing device 140 may monitor the residual decoding capacity of each splicing devices at intervals or in real time.

[0149] In some embodiments of the present disclosure, by transferring a portion of the splicing schemes to the candidate splicing device, the splicing load on the target splicing device can be distributed, thereby improving data processing efficiency.

[0150] The process for determining the target splicing device shown in some embodiments of the present disclosure achieves higher splicing efficiency, enabling the efficient processing of multiple video streams without affecting the normal device functionality.

[0151] FIG. 7 is a flowchart of an exemplary process for obtaining a target source video according to some embodiments of the present disclosure. In some embodiments, process 700 may be executed by a processing device (e.g., the processing device 140, a management host, a backup host, etc. ) . As shown in FIG. 7, process 700 includes the following operations.

[0152] In 710, video splicing information for spliced video data may be generated via at least one target splicing device.

[0153] The video splicing information for spliced video data refers to data related to the spliced video data. For example, the video splicing information includes channel numbers (each of the channel numbers is used to record identification of each source video involved in the splicing, such as a source video ID or channel number) , a bitstream type (used to record a video encoding format and possible additional information for each channel) , resolution (used to record the resolution of a source video for each channel, including width, height, and possibly pixel formats such as RGB, YUV, etc. ) , region information (used to record a position and a size of each source video corresponding to the each channel in a spliced frame) , etc.

[0154] In some embodiments, the target splicing device, while splicing multiple source videos to generate the spliced video data, may generate and record the video splicing information.

[0155] In 720, the video splicing information may be uploaded to a management host to enable the management host to obtain a target source video based on the video splicing information of the spliced video data.

[0156] The management host refers to a device in a device cluster that manages the entire device cluster. In some embodiments, the management host may be a processing device with data processing capabilities set up separately in the device cluster. For example, the management host may include the processing device 140.

[0157] In some embodiments, the management host may be selected from multiple splicing devices in the device cluster. For example, the management host may be randomly selected from the device cluster. As another example, the management host may be a high-performance device selected from the device cluster with sufficient network interfaces and storage capacity.

[0158] In some embodiments, a backup device may be selected as a backup host for the management host.

[0159] The backup host refers to a standby device that takes over the functions of the management host. The backup host may be used to ensure the high availability and fault tolerance of the video splicing storage system.

[0160] In some embodiments, network throughput data may be collected for all devices other than the management host in the device cluster, and a device with a lowest network throughput may be selected as the backup device.

[0161] In some embodiments, the management host may be referred to as a first device, and the backup host may be referred to as the backup device.

[0162] In some embodiments, the at least one target splicing device may upload the video splicing information to the management host for storage after the video splicing is completed.

[0163] The target source video refers to a source video requested by a user, or a source video corresponding to a video request of the user.

[0164] In some embodiments, the management host may obtain a video request; obtain the spliced video data associated with the video request from a corresponding splicing device based on the video request and the video splicing information; and decode and cut the spliced video data to obtain the target source video. In some embodiments, the video request includes request information.

[0165] The request information refers to information of the video requested by the user. For example, the request information includes a video file name, a time period, a channel number, or the like.

[0166] In some embodiments, the management host may display splicing video information stored in the management host. Users may click or input a video they want to replay on the display interface, such as requesting the video from channel 25 at 14: 00 on October 1st.

[0167] In some embodiments, after obtaining the request information, the management host may query a storage location (i.e., a corresponding target splicing device) of the source video to be provided from the splicing video information stored in the management host. The management host then sends a request for the relevant video to the corresponding target splicing device, and the corresponding target splicing device returns the splicing video data of the requested video to the management host.

[0168] In some embodiments of the present disclosure, after receiving the spliced video data of the requested video, the management host may decode the spliced video data into a video, cut the spliced video information based on coordinate information (e.g., pixel coordinates, relative position, screen area, or the like) recorded in the splicing video information into multiple videos, obtain a video requested by a user from the multiple videos, and display the requested video to the user (i.e., only displaying the source video requested by the user, without showing videos from other channels that are spliced together) .

[0169] In some embodiments of the present disclosure, by using the management host to display the requested source video, all device data backups are uniformly managed and displayed, eliminating the need to search through multiple splicing devices, thereby improving query efficiency. At the same time, it ensures that only the video content of the selected channel is presented to the user, rather than the entire spliced video, thus achieving efficient utilization and precise recovery of redundant data.

[0170] It should be noted that the foregoing descriptions with respect to processes 200, 300, 500, 600, and 700 are intended to be exemplary and illustrative only, and do not limit the scope of application of the present disclosure. For a person skilled in the art, various corrections and changes may be made to processes 200, 300, 500, 600, and 700 under the guidance of the present disclosure. However, these corrections and changes remain within the scope of the present disclosure. For example, a storage operation may be added between operations of the processes.

[0171] FIG. 8 is an exemplary block diagram of a processing device of a system for video splicing storage according to some embodiments of the present disclosure. As shown in FIG. 8, the processing device of the system for video splicing storage may include a first acquisition module 810, a first determination module 820, a second determination module 830, a second acquisition module 840, a splicing module 850, and a storage module 760, or the like.

[0172] The first acquisition module 810 is configured to obtain channel information of channels connected to the plurality of splicing devices.

[0173] The first determination module 820 is configured to determine at least one splicing scheme based on the channel information of the channels.

[0174] In some embodiments of the present disclosure, the first determination module 820 is further configured to divide the channels based on the channel information of the channels into at least one first channel group; for channels within each of the at least one first channel group, determining at least one second channel group by grouping the channels within the each of the at least one first channel group; for each of the at least one second channel group, determining one or more splicing schemes corresponding to the each of the at least one second channel group based on change information of channels within the each of the at least one second channel group.

[0175] In some embodiments of the present disclosure, the first determination module 820 is further configured to determine a channel priority of channels within a second channel group based on the change information of the channels within the second channel group; determine a count of the one or more splicing schemes based on device information of a splicing device connected with the channels within the second channel group and a count of the channels in the second channel group; and determine the one or more splicing schemes according to a predetermined splicing layout based on the channel priority, the count of the one or more splicing schemes, and the count of the channels within the each of the at least one second channel group.

[0176] In some embodiments of the present disclosure, the first determination module 820 is further configured to determine a candidate splicing scheme by inputting the change information of the channels within the each of the at least one second channel group into a splicing scheme prediction model; and update at least one of the one or more splicing schemes based on the candidate splicing scheme.

[0177] In some embodiments of the present disclosure, the first determination module 820 is further configured to monitor the change information of the channels within the each of the at least one second channel group; and update the candidate splicing scheme for the each of the at least one second channel group in response to determining that a change value of the change information of a channel among the channels within the each of the at least one second channel group exceeds a first predetermined threshold.

[0178] The second determination module 830 is configured to determine at least one target splicing device corresponding to the at least one splicing scheme.

[0179] In some embodiments of the present disclosure, the second determination module 830 is further configured to: designate a splicing device connected to channels within a second channel group as a target splicing device for the one or more splicing schemes corresponding to the second channel group. If the channels within the second channel are connected to multiple splicing devices, the second determination module 830 is configured to designate a splicing device with a strongest residual decoding capability among the multiple splicing devices as the target splicing device for the one or more splicing scheme corresponding to the second channel group.

[0180] The second acquisition module 840 is configured to obtain source videos corresponding to the at least one splicing scheme.

[0181] The splicing module 850 is configured to splice the source videos using the at least one target splicing device according to the at least one splicing scheme to obtain spliced video data.

[0182] The storage module 860 is configured to store the spliced video data to the target splicing device.

[0183] In some embodiments of the present disclosure, the processing device of the system for video splicing storage may further include a source video request module 870.

[0184] The source video request module 870 is configured to generate video splicing information for the spliced video data via the at least one target splicing device; and upload the video splicing information to the management host to enable the management host to obtain a target source video based on the video splicing information of the spliced video data.

[0185] In some embodiments of the present disclosure, the source video request module 870 is further configured to obtain a video request; obtain the spliced video data associated with the video request from a corresponding splicing device based on the video request and the video splicing information; and decode and cut the spliced video data to obtain the target source video. The target source video is a source video corresponding to the video request.

[0186] It should be noted that the above descriptions of the processor of the system for video splicing storage and its modules are provided only for descriptive convenience, and do not limit the present disclosure to the scope of the cited embodiments. It is to be understood that for a person skilled in the art, after understanding the principle of the system, it may be possible to arbitrarily combine the modules or form a sub-system to be connected to the other modules without departing from this principle. In some embodiments of the present disclosure, the first acquisition module 810, the first determination module 820, the second determination module 830, the second acquisition module 840, the splicing module 850, and the storage module 860, source video request module 870, or the like may be different modules in a single system, or a single module realizing the functions of two or more of the above-described modules. For example, the individual modules may share a storage module, and the individual modules may each have a respective storage module. Morphisms such as these are within the scope of protection of the present disclosure.

[0187] Based on the same inventive concept, some embodiments of the present disclosure provides a method for video splicing storage. Through the management of a device cluster, the method manages the splicing and storage of multiple source video data from at least one device. A target splicing device within the device cluster is determined based on a first device (aprocessor, a management host, etc. ) set in the device cluster. In response to receiving a video splicing instruction issued by the first device, the target splicing device splices and re-encodes at least two source videos indicated by the video splicing instruction, then acquires and stores video splicing data. The first device acquires and stores video splicing information of each spliced video data, so that the first device can access each spliced video data based on the splicing information of the spliced video data and extract a source video from the spliced video data. In this way, video data management efficiency is further improved through cluster management. In addition, the method for video splicing storage can effectively reduce the storage cost of video data. The approach of decentralized storage through cluster management can also enhance the security and integrity of data storage.

[0188] The device cluster refers to a combination of multiple devices (e.g., computers, servers, splicing devices, etc. ) into a single, collaborative system, thereby improving overall performance, reliability, scalability, and fault tolerance. Each device in the device cluster is connected via a network, and may operate independently or share tasks. The devices communicate and collaborate via a high-speed network, exchanging data, transmitting tasks, synchronizing statuses, etc., to achieve resource sharing and load balancing.

[0189] Embodiments of the present disclosure may apply the method for video splicing storage in a scenario of device cluster management. The device cluster includes multiple devices, and the method identifies and manages these devices, clarifies an identity, a location, and functions of each device. One of the devices in the device cluster is designated as the first device. The first device is responsible for tasks such as coordinating the entire video splicing process, allocating tasks, aggregating results, or the like.

[0190] The above method for video splicing storage provided in the present disclosure is a method for storing a plurality of source videos from at least one device in the device cluster. Referring to FIG. 9, FIG. 9 is a flowchart of a process for video splicing storage according to one embodiment of the present disclosure. It should be noted that the order of the operations in the process shown in FIG. 9 is not limiting, and equivalent results may be obtained with different sequences of operations. As shown in FIG. 9, process 900 includes the following operations:

[0191] S110, the first device in the device cluster may designate at least one of a plurality of devices in the device cluster as at least one target splicing device.

[0192] In a typical local area network (LAN) environment, a plurality devices are configured for video storage, and a cluster management approach is applied to the plurality devices in the LAN. One device in the device cluster is selected as a management host, which acts as the first device responsible for managing other devices in the device cluster. The management host may be a device chosen randomly from the device cluster, or a device with moderate performance, sufficient network interfaces, and enough storage capacity.

[0193] The first device within the LAN environment may be configured. For example, network parameters such as IP address, subnet mask, and default gateway may be configured correctly to ensure that the first device is properly connected to the LAN and is able to communicate with other devices in the device cluster on the LAN. After the configuration is complete, the first device starts a device discovery process by broadcasting or multicasting packets to search for other devices in the device cluster within the current LAN. After collecting response information of other devices, the management host adds the other devices to a management queue.

[0194] In some embodiments, to ensure high availability and fault tolerance of the video splicing storage system, a backup device may be set as a functional backup for the first device. After the first device obtains management queue information, the backup device is determined based on device information in the management queue. When the first device fails or cannot function normally, the backup device may quickly take over its responsibilities, automatically becoming the first device.

[0195] In some embodiments, the backup device is determined based on network throughputs of all devices in the device cluster except for the first device. In some embodiments, network throughput data from all devices except the first device is collected. Optionally, a device with a lowest network throughput is chosen as the backup device. Network throughput refers to a total amount of data successfully transmitted by a network system or a device over a time period, reflecting an ability of devices to transfer data. Selecting a device with the lowest network throughput as the backup device is primarily based on considerations like resource utilization efficiency, meeting basic redundancy needs, avoiding failover bottlenecks, simplifying fault diagnosis, and improving energy efficiency. In some embodiments, in addition to the network throughput, factors such as computational power, storage space, and stability of the device may also be considered to ensure that the backup device can fully take over the functions of the first device. Therefore, optionally, if the network throughputs of all candidate devices are similar, the candidate devices may be scored based on a business requirement, and a device satisfying the business requirement may be selected as the backup device.

[0196] In scenarios where the backup device is configured, the first device and the backup device may establish a keep-alive connection to ensure that the backup device automatically assumes the role of the first device if the first device goes offline.

[0197] The first device and the backup device establish a keep-alive connection. For example, the first device and the backup device may establish a bidirectional heartbeat mechanism, where periodic heartbeat packets are exchanged between the first device and the backup device to monitor each other's online status. If no heartbeat response is received within a preset time frame, the first device and the backup device may quickly identify a potential fault in each other. If the first device goes offline or fails to respond to heartbeats, the backup device automatically upgrades to become the first device and begins to perform the responsibilities of the first device. The current first device (i.e., the previous backup device) then re-execute the operation of determining a new backup device based on the network throughput of all devices in the cluster, excluding the current first device. Similarly, if the backup device goes offline or fails to respond to heartbeats, the first device identifies the backup device's failure and re-executes the operation of determining a new backup device based on the network throughput of all devices in the cluster, excluding the first device.

[0198] In some embodiments, the first device periodically synchronizes video splicing information with the backup device. Furthermore, the first device may periodically synchronize current video splicing data information (e.g., status of ongoing tasks, metadata of completed tasks, pending task lists, device resource status, or the like) with the backup device. In some embodiments, to reduce data transfer volume and improve synchronization efficiency, only data that has changed since the last synchronization may be synchronized. In other words, an incremental synchronization approach may be used to ensure consistency and integrity of the data during the synchronization process. After receiving synchronized data, the backup device sends a confirmation message to the first device to confirm that the data has been correctly received and stored. If the first device does not receive the confirmation message, the first device may retry the synchronization or trigger an alert.

[0199] The first device in the device cluster designates at least one device within the cluster as a target splicing device to perform splicing and re-encoding of at least two source videos, thereby generating spliced video data. In some embodiments, an encoding format of each source video and / or surplus codec resources of at least a portion of the devices in the device cluster may be determined. Surplus codec resources refer to computational, storage, or hardware resources dedicated to encoding and decoding that exceed current actual demand, resulting in underutilized or idle codec capacity. Based on the encoding formats of source videos and / or surplus codec resources of at least a portion of the devices in the device cluster, at least one target splicing device is determined.

[0200] In some embodiments, the first device sends a request to other devices in the management queue through the established communication mechanism to collect video channel information accessed by the devices and codec resource information of at least a portion of the devices in the device cluster. The video channel information includes: source video ID, video coding format (e.g., H. 264, H. 265, MJPEG, etc. ) , video parameters (e.g., resolution, frame rate, bit rate, etc. ) , data transmission path, streaming address, or the like. The codec resource information of at least a portion of the devices in the device cluster includes: device ID (used for identifying an originating device of the source video) , codec resources that are currently in use (e.g., a count of video channels that are being decoded) , redundant codec resources (e.g., a count of remaining available decoding channels, a maximum concurrent decoding capacity, etc. ) , and codec capabilities such as supported encoding formats and maximum resolution.

[0201] Based on the collected source video encoding format and the codec resource information of the device, the first device determines at least one video target splicing device in accordance with the following principles: (1) Encoding format compatibility: Priority is given to devices capable of supporting all source video encoding  formats to minimize unnecessary transcoding operations. (2) Resource sufficiency: The surplus codec resources of the devices are assessed to ensure they can handle the  splicing and re-encoding tasks. Factors considered include a required count of decoding channels (determined by the count of source videos) , a count of encoding channels (corresponding to output spliced videos) , expected encoding parameters (set based on application scenarios and storage requirements) , and actual processing capabilities of the devices. (3) Load Balancing: If multiple devices meet task requirements, preference is given to a device with a relatively  low current load to maintain the overall performance and stability of the device cluster.

[0202] The first device sends a video splicing instruction to the determined target splicing device, directing the target splicing device to execute the video splicing instruction. The video splicing instruction includes source video information, a target encoding format, an output parameter, or the like.

[0203] In some embodiments, based on the collected video channel information, the first device groups source videos with a same encoding format into a same group to obtain at least one group of source videos. The video splicing instruction is then sent to source devices of at least two source videos from a same origin within each group of source videos, so that the source device acts as a target splicing device to splice and re-encode all source videos within the group, thereby generating spliced video data. It should be understood that “grouping source videos with the same encoding format” does not imply that the source videos are located within the first device. The logical grouping of source videos (by encoding format) and their physical location (on splicing devices) are two separate concepts. Even if source videos belong to a same logical group, they may be physically stored across multiple devices, server clusters, or cloud storage services.

[0204] For example, based on the collected video channel information, a data structure such as a dictionary (where the key is an encoding format and the value is a list of source video channels corresponding to the encoding format) may be used to group all source video channels with a same video encoding format into one group. In other words, all source videos with the same video encoding format are grouped together. For groups formed based on video encoding format, sorting is performed according to a preset rule. In some embodiments, the preset rule may include sorting source videos from a same device, such as ascending the source videos based on their source video channel IDs. Then, external sorting is performed based on device IDs, giving priority to merging and arranging source video channels from the same device. This can be achieved using a priority queue (heap) or other stable sorting algorithms.

[0205] The grouped and sorted video channel information is applied to the scheduling of source video splicing and re-encoding tasks. In some embodiments, in the video splicing instruction sent, source videos from a same device within a same encoding format group are prioritized for splicing, to reduce data reception and forwarding overhead during the splicing process, thereby improving system efficiency.

[0206] In some embodiments, after source videos of the same coding format are spliced and re-encoded to obtain the spliced video data within all target splicing devices, there may be remaining source videos that are not spliced. The first device determines, based on the redundant codec resources of source devices of the remaining source videos in each set of source videos, a target splicing device for the remaining source videos, so that the target splicing device splices and re-encodes at least a portion of the remaining source videos.

[0207] In some embodiments, since some of the devices in the device cluster have already completed the splicing task, their codec resource status may have changed. Thus the first device may again collect and update the video channel information and the surplus codec resources information of all devices in the device cluster, including codec resources released after completing the task, a current load condition, or the like. Optionally, the target splicing device for splicing the remaining source videos may be determined by taking into account compatibility of the encoding formats, the surplus codec resources of the devices, load balancing, or the like. Preferably, a source device with a strongest surplus codec resources among the source devices of the remaining source videos is determined as the target splicing device for the remaining source videos.

[0208] S120, spliced video data may be obtained by enabling each of the at least one target splicing device to splice and re-encode at least two of the plurality of source videos, and the spliced video data may be stored in at least one of the plurality of devices in the device cluster.

[0209] After determining the at least one target splicing device via S110, the first device sends a video splicing instruction to the at least one target splicing device, instructing each target splicing device to splice and re-encode at least two source videos to obtain spliced video data, and cause the spliced video data to be stored in at least one device of the device cluster.

[0210] In some embodiments, the first device generates the video splicing instruction based on information of the source video to be spliced and the determined target splicing device. The video splicing instruction includes: (1) a target device ID to specify a target splicing device for receiving the instruction; (2) a source video list listing IDs of source videos that are to be spliced and their encoding formats; (3) splicing parameters, such as splicing order, temporal and spatial alignment, resolution, bit rate, etc. ; (4) a target encoding format, specify the encoding format of a spliced video, usually the same as the encoding format of the source videos, in other options, the target encoding format may be different from the encoding format of the source videos; (5) a storage location indication, used to point out at least one device in the device cluster in which spliced video data is stored. Typically, the spliced video data is stored in a current target splicing device. Optionally, the spliced video data may also be stored in at least one device in the device cluster other than the current target splicing device.

[0211] In some embodiments, the target splicing device obtains corresponding source video data from the device cluster or from an external source based on the source video list in the video splicing instruction, decodes each of the source videos, and, in accordance with the splicing parameters of the video splicing instruction, encodes the decoded source video data based on the splicing parameters of the video splicing instruction to generate a temporary spliced video frame sequence. The spliced video frame sequence is encoded according to the target encoding format and parameters in the video splicing instruction, thereby generating the spliced video data.

[0212] In some embodiments, after generating the spliced video data, the spliced video data may be stored in at least one device in the device cluster other than the target splicing device. In this embodiment, the target splicing device stores the generated spliced video data via a network to a storage location specified by the video splicing instruction. After receiving the spliced video data, a target splicing device (or service) returns a confirmation message to the target splicing device, indicating that the spliced video data has been successfully stored.

[0213] The target splicing device feeds the confirmation message back to the first device and sends video splicing information (video channel information, recording time, IP / MAC of the corresponding device, IP / MAC of the redundant data splicing device, etc. ) of the spliced video data to the first device, completing a closed loop of the entire splicing task.

[0214] In some embodiments, to reduce network consumption caused by retrieving streams multiple times, the target splicing device decodes, splices, and re-encodes at least two source videos stored in the target splicing device based on the video splicing instruction, thereby generating the spliced video data. The spliced video data is stored in the target splicing device. After successful storage, the video splicing information of the successfully stored spliced video data is sent to the first device.

[0215] In some embodiments, if source videos in the same encoding format are successfully spliced and re-encoded to generate spliced video data across all target splicing devices, but there are still remaining unspliced source videos, the first device selects at least one device with surplus codec resources from the source devices of the remaining source videos in each group and designates the at least one device as the target splicing device (s) for the remaining source videos. The first device retrieves unspliced source videos from the corresponding group in the target splicing device and forwards the unspliced source videos to a currently designated target splicing device for the remaining source videos. This allows the target splicing device to perform the operations of decoding, splicing, and re-encoding at least two source videos to generate spliced video data and store the resulting spliced video data in the target splicing device. Once the spliced video data is successfully stored, the video splicing information of the successfully stored spliced video data is sent to the first device. The spliced video data may be stored in the target splicing device currently performing the splicing and re-encoding or forwarded and stored in at least one other device in the device cluster.

[0216] S130, video splicing information of each of the spliced video data may be obtained and stored, and the first device may be configured to obtain the each of the spliced video data based on the video splicing information of the each of the spliced video data and extracts a source video from the each of the spliced video data.

[0217] After the spliced video data is successfully stored, the first device retrieves and stores the video splicing information of each of the spliced video data. This enables the first device to locate each spliced video data based on the video splicing information of the spliced video data and extract the source videos from the spliced video data.

[0218] In some embodiments, the video splicing information for each spliced video data is recorded in a video file header and a database. The video splicing information includes: a channel number (for recording a unique identification of each source video participating in the splicing, such as a source video ID or a channel number, etc. ) , a stream type (for recording a video coding format used for each channel and possible additional information, etc. ) , a resolution (for recording the resolution of an original video of each channel, including a width, a height, and possible pixel formats such as RGB, YUV, etc. ) , and region information (for recording a position and a size of each channel in a spliced frame) .

[0219] The first device obtains and stores video splicing information for each spliced video data, obtains each spliced video data based on the video splicing information for each spliced video data and extracts a source video therefrom. By way of example, the first device determines the video splicing information of the source video to be extracted, obtains spliced video data of the source video to be extracted, and decode the spliced video data to obtain decoded splicing data. The decoded spliced data is then segmented based on display coordinate information of a target source video in the video splicing information, thereby obtaining the extracted source video. Preferably, the video splicing information of the spliced video data includes at least an encoding format of the spliced video data, a channel number, and an address of a splicing device.

[0220] In some embodiments, when it is necessary to view video data, channel information of a desired spliced video is retrieved by a database query function of the first device based on conditions such as video file name, time period, and channel number. Using the storage location of the source video provided in a query result, a request is sent to the corresponding target splicing device to open a source video file and parse splicing data channel information embedded in the source video file’s header. The splicing data channel information is cross-verified with the database query result to ensure consistency. Based on the retrieved video channel information, appropriate video processing tools are used to decode and reconstruct recording files, restoring original channel videos. The original channel videos are then displayed according to a splicing layout or exported as separate source video files.

[0221] For example, through manners such as interface querying, file parsing, or the like, complete splicing information of the spliced video data containing the source video to be extracted is obtained, ensuring that the complete splicing information includes encoding format, channel number, splicing device address, and coordinates of the source video in the spliced display. Based on the splicing device address provided in the splicing information, an actual storage location of the spliced video data is identified. The first device requests spliced video data from a target splicing device in which the source video that generates the required spliced video data is stored. The target splicing device corresponding to the actual storage location of the spliced video data responds to the request sent by the first device by returning the requested spliced video data. Alternatively, the target splicing device may load the requested spliced video data into memory or a temporary file for subsequent processing.

[0222] Based on the encoding format (e.g., H. 264, HEVC, AV1, etc. ) provided in the splicing information, an appropriate video decoder library or software tool (e.g., FFmpeg, libavcodec, GStreamer plugins) is selected. A decoder interface is invoked, with the spliced video data as an input, to perform full-frame decoding or decoding of only a time segment corresponding to the source video to be extracted. At the same time, decoding parameters (e.g., resolution, frame rate, color space) are matched with the video splicing information to ensure high-quality decoded spliced video data.

[0223] The coordinates of the source video to be extracted in the spliced display are extracted from the video splicing information, which may include descriptions such as pixel coordinates, relative positions, and screen regions. For cases where source videos are simply overlaid or linearly spliced, the corresponding part of the source video to be extracted is directly cropped from each decoded frame based on the coordinate information, such as using image processing libraries like OpenCV or PIL for rectangular cropping. For more complex splicing structures (e.g., picture-in-picture, multi-layer overlays, irregular shapes) , image blending information (e.g., Alpha channel) and / or depth information may be used for precise separation, which may require custom algorithms or advanced graphical processing tools (e.g., OpenGL, DirectX, GPU programming) to execute such separation.

[0224] The cropped source video frames are then repackaged into standard video file formats (e.g., MP4, MKV, TS) . Appropriate encoding parameters (e.g., compression rate, encoding format) are selected based on requirements to generate the final extracted source video file. Optionally, metadata (e.g., resolution, frame rate, encoding parameters, copyright information) of the source video may be retained or updated to ensure that the extracted source video includes complete metadata information.

[0225] Referring to FIG. 10, FIG. 10 is a flowchart of a process for video splicing storage according to another embodiment of the present disclosure. It should be noted that the order of the operations in the process shown in FIG. 10 is not limiting, and equivalent results may be obtained with different sequences of operations. As shown in FIG. 10, process 1000 includes the following operations:

[0226] S210, in response to receiving a video splicing instruction issued by the first device, at least one target splicing device in the device cluster may splice and re-encode at least two source videos to be spliced indicated by the video splicing instruction to obtain spliced video data and store the spliced video data in at least one of the plurality of devices in the device cluster.

[0227] The target splicing device in the device cluster receives the video splicing instruction sent by the first device. According to the video splicing instruction, the target splicing device pulls real-time video streams or reads pre-stored video files from specified sources. The video splicing instruction includes detailed information of the at least two source videos to be spliced, such as source video addresses, channel identifiers, encoding formats, resolutions, or the like.

[0228] Based on splicing layout parameters that may be included in the video splicing instruction, such as a position, a size, an overlay order of each source video, or the like, a spatial layout of the source videos is arranged, and the source videos are spliced to generate a single composite video stream. An encoding format of the output spliced video is determined to ensure compatibility with the first device or other downstream systems. Preferably, the encoding format of the output spliced video matches the encoding format of the source videos that make up the spliced video. A spliced video stream is then re-encoded in real-time or in batch mode to generate video splicing data that meets the specified format and parameters. The video splicing data is stored in at least one of the devices in the device cluster.

[0229] In some embodiments, the target splicing device performs background decoding on bitstreams of at least two source videos to obtain at least two decoded videos. For example, the target splicing device simultaneously performs background decoding on the bitstreams of the at least two source videos, ensuring the synchronization of video frames during the decoding operation. For real-time streams, synchronization may be achieved via timestamp calibration. For recorded videos, it may be ensured that frames are read in a correct order by a decoder ensures to maintain the spatiotemporal consistency of the video segments during splicing. As another example, if the target splicing device can directly access the decoded source video frames, the target splicing device may skip the decoding operation and proceed directly to subsequent operations.

[0230] Based on a count of splicing paths of the at least one target splicing device and resolutions of the source videos, at least two decoded source videos are scaled to generate at least two scaled videos. Based on the resolution of the source videos, a memory block is allocated, and images from the at least two scaled videos are sequentially filled into the memory block to form a spliced image sequence. The spliced image sequence is then encoded to generate spliced video data.

[0231] Based on the count of splicing paths (i.e., a count of source videos displayed simultaneously) of the target splicing device and the resolution of each source video, each of the at least two decoded source videos is adaptively scaled, so that all source videos are adjusted to a uniform size suitable for the splicing layout, while maintaining image clarity as much as possible. The resolutions of the source videos to be spliced into a same splicing path may be freely combined based on actual splicing needs, and may be the same or different. Preferably, the resolutions of the source videos spliced into a same video stream are the same.

[0232] In some embodiments, FIG. 4 may also be referred to as a schematic diagram of a pre-allocated memory block for video splicing and scaling strategy, as illustrated in some embodiments of the present disclosure. In some embodiments, referring to FIG. 4, as shown in FIG. 4, a total pixel count required for the spliced image is determined based on the resolutions of the source videos (after scaling) , and a size of the required memory block is determined. A continuous memory region is then allocated to store the spliced image sequence. According to a predefined splicing layout rule (e.g., tiling, picture-in-picture, stacking, etc. ) , each frame of image from the at least two scaled videos is accurately placed in sequence at a corresponding pixel position in the memory block, thereby ensuring alignment of image boundaries with no overlapping or blank areas. Additionally, if there is a color space difference (e.g., YUV and RGB) between the source videos, necessary color space conversions are performed to ensure consistent color in the spliced image.

[0233] Encoding parameters such as encoding format (e.g., H. 264, HEVC) , resolution, frame rate, bit rate, GOP structure, and encoding quality are set based on business needs and storage and transfer conditions. The spliced image sequence is encoded in real-time to generate a continuous encoded bitstream. The encoded video data is then packaged into a specified container format (e.g., MP4, TS, MKV) containing the video stream, possible audio streams, metadata, etc., to ensure the integrity and playback capability of the video.

[0234] The encoded spliced video data is stored in the current target splicing device or transmitted to other devices for storage, or real-time pushed to a client via a network interface. The spliced video data or file is saved according to a predefined file naming rule and a directory structure, and relevant metadata (e.g., splicing time, source video information, encoding parameters) is recorded for subsequent queries, playback, and management.

[0235] S220, video splicing information of each of the spliced video data may be stored in the first device, and the first device may be configured to obtain the each of the spliced video data based on the video splicing information of the each of the spliced video data and extracts a source video from the each of the spliced video data.

[0236] The first device receives and verifies the video splicing information of the spliced video data sent by the target splicing device and persists the information in a local database or file system. When access to specific spliced video data is required, the first device locates the storage location of the corresponding source video in the device cluster based on the stored video splicing information and retrieves the source video data through an appropriate approach, such as HTTP download, internal API calls, or the like.

[0237] If extraction of the source videos from the spliced video data is required, the first device may perform reverse processing on the spliced video based on the stored splicing layout information using a video processing software to separate each source video. The reverse processing may include operations such as decoding the spliced video, cropping, re-encoding, or the like.

[0238] The specific operation by which the first device retrieves each spliced video data based on its splicing information and extracts the source videos has been elaborated in detail in operation S130 above and will not be repeated here.

[0239] To better explain the method for video splicing storage described in the present disclosure, please refer to FIG. 11. FIG. 11 provides a specific implementation example of the method for video splicing storage. Taking the redundant storage of video data in Network Video Recorder (NVR) devices under cluster management as an example, process 1100 may include the following operations:

[0240] 1. When multiple NVR devices are configured for video storage in a local area network (LAN) environment, a management host manages all NVR devices in the LAN and automatically designates a backup host. If the management host fails, the backup host automatically assumes the responsibilities of the management host and performs its functions.

[0241] 2. The management host collects video channel information of all NVR devices in the LAN and groups source videos with a same encoding format based on camera configurations.

[0242] 3. The management host obtains codec resource information of all NVR devices and sorts the source videos within each group identified in operation 2 based on surplus codec resources in the codec resource information.

[0243] 4. The management host centrally schedules all NVR devices requiring splicing and storage, forwarding video data of a same encoding format across devices to a high-capability encoding device (prioritizing the splicing and re-encoding of source video data with a same encoding format on a same device) .

[0244] 5. After utilizing surplus codec resources of the high-capability encoding device to perform splicing and re-encoding of source videos, the data is stored or redundantly stored. The management host records the backup data information for subsequent backup recovery.

[0245] 6. If the management host fails, return to operation 1. If other devices fail, the management host reallocates the video channels of the failed devices to other devices. When the failed devices are restored, temporary camera assignments on the other devices are removed.

[0246] In operation 4, the management host schedules the methods provided in the present disclosure. Referring to FIG. 12, FIG. 12 is a flowchart of an exemplary process of a unified scheduling strategy of a management host according to some embodiments of the present disclosure. In some embodiments, source video data from a same device with a same encoding format is prioritized for splicing and re-encoding. A channel group includes multiple Internet Protocol Cameras (IPCs) . For example, in channel group 1 in FIG. 12, IPC1 and IPC2 multiplex their video data streams for splicing and re-encoding within NVR1. If there are remaining groups, source video data with a same encoding format from different devices is forwarded to devices with relatively high encoding capabilities. For example, IPC3 and IPC4 in FIG. 12 come from NVR2 and NVR3, respectively. Since the surplus codec resources of NVR2 are greater than the surplus codec resources of NVR3, the management host issues a command and forwards IPC4 to NVR2, where NVR2 retrieves video streams, so that IPC3 and IPC4 may be spliced and re-encoded in NVR2.

[0247] By way of example, referring to FIG. 13. FIG. 13 is a flowchart of an exemplary process for decoding, splicing, and re-encoding multiplexed source videos according to some embodiments of the present disclosure. In process 1300, multiple video streams are fed into a video encoding and decoding (VEDC) module. Using a spare decoding capacity of the NVR device, the multiple video streams are decoded in the background, thereby allowing efficient processing of multiple video data streams without affecting the normal operation of the NVR device.

[0248] The decoded data is then fed into a video processing sub-system (VPSS) video stream scaling module for scaling. The VPSS is a hardware or software component used for video processing that may perform various complex operations such as scaling, cropping, color space conversion, or the like. The VPSS scales the decoded video according to a preset count of splicing paths and an original resolution of each source video stream, ensuring that all source video segments are uniformly scaled to a size suitable for a preset output resolution.

[0249] For example, if the output is a 1080P image, a pre-allocated 1080P image block is formed, and the scaling strategy is as shown in FIG. 4. A virtual video output (VO) memory block (e.g., a standard 1080P memory block) is requested to splice scaled YUV data. The scaled YUV data (including luminance and chrominance information) from each video stream processed by the VPSS is filled into the pre-allocated memory block according to the predetermined splicing layout to form a complete spliced image. Spliced YUV data is then encoded to form a spliced standard 1080P video stream, commonly using encoding techniques such as H.264 or H. 265 to ensure efficient compression and transmission of the video data.

[0250] While generating the spliced video, the system records relevant metadata in a video file header and an associated database, such as the source video channel information of each participating video, frame information, and relative region information of each source video in the spliced image. For example, region position information may be recorded using an 8192 coordinate system to precisely describe a position and a size of each video in the spliced image.

[0251] Finally, the spliced video information data is sent back to the management host for data parsing during subsequent redundant data recovery. For example, if a segment of video data is lost, backup data of a corresponding channel may be re-located and extracted based on the metadata. Then the backup data may be accurately embedded in a corresponding position of the spliced image using the region position information to achieve effective recovery of the redundant data.

[0252] In the above strategy, the surplus codec resources of the device is adaptively converted, and the workload is automatically adjusted to ensure efficient resource utilization without affecting the main business operation. When the device has available surplus codec resources, the strategy activates a process for handling multiple video streams. At the same time, using the video splicing strategy and the surplus codec resources, multiple 1080P source videos are re-encoded into a single 1080P video stream, thereby reducing the total amount of video data redundancy. This approach creates a dynamic conversion of device performance, maximizing the reduction of data redundancy while ensuring that no data is lost, which ultimately reduces the total amount of backup data and the cost of backup media.

[0253] In theory, if four 1080P video streams are spliced and re-encoded into a single new 1080P video stream, assuming that each original video stream has equal data volume and consistent encoding efficiency, a data size of the new video may indeed decrease to one-quarter (25%) of the original size, achieving significant data reduction. Due to the reduction in total data volume, the required storage space is also reduced, directly lowering the procurement costs for backup media (e.g., hard drives, cloud storage, etc. ) and long-term operation and maintenance costs. In addition, the time and resources required for backup and recovery operations, such as network bandwidth, are also reduced, indirectly improving system efficiency.

[0254] 7. After the NVR device completes the splicing and re-encoding of the source videos, the NVR device stores or redundantly stores the videos. The management host records relevant spliced video information, such as channel numbers, bitstream types, resolution, the region information of each video channel, or the like, and records the spliced video information in the video file header and database. The spliced video information is then sent back to the management host for data storage.

[0255] Simultaneously, all spliced video information stored in the database is periodically synchronized to the backup host to prevent the loss of spliced video information in case the management host fails.

[0256] If the management host fails, the backup host upgrades to the management host and takes over the original functions of the management host based on the content of the database, and operation 1 is repeated.

[0257] If other devices in the device cluster experience a crash or other issues that prevent normal operation, the management host assigns the video channels of the crashed device to other functioning NVR devices. When the crashed device recovers, temporary cameras added to other devices are deleted, returning to operation 1.

[0258] When backup data needs to be viewed, data recovery is performed using the content of the database of the management host. By using the management host for business presentation, all device data backups are unified for management and display, so that there is no need to search through distributed NVR devices, thereby improving query efficiency.

[0259] By way of example, the management host accesses its associated database to retrieve and organize redundancy recording information (i.e., the spliced video information) for all NVR devices under its management, so that a user can intuitively view available redundancy recording resources for playback, and select a specific recording segment for playback via a management interface. The redundancy recording information may include start and end times of recordings, recording segment identifiers, related metadata, or the like.

[0260] When the user clicks on a selected redundancy recording, the management host queries the database for detailed storage information associated with the selected recording. The information may include the IP address of the NVR storing the recording data, the channel number where the recording resides (which may correspond to the camera identifier) , the type of video stream (e.g., primary stream, secondary stream) , and the relative coordinate location of the recording within the spliced display scene.

[0261] Based on the queried storage information, the management host sends a request to the NVR device that actually stores the redundancy recording data, requesting the transmission of the specified recording data. The request includes parameters such as the specific recording identifier, channel number, video stream type, or the like, so that the NVR accurately locates and transmits the required recording.

[0262] After receiving the request, the NVR device retrieves a corresponding recording file from its local storage based on the request parameters and sends the recording file back to the management host. After the management host receives complete spliced recording data, it begins decoding the data, converting the encoded video data into raw video frames ready for direct display.

[0263] After decoding, the management host performs a cropping operation on the decoded video data based on the spliced display coordinate information of the recording. Specifically, the management host extracts the video content of the particular channel requested by the user from an overall spliced view. This ensures that the final content presented to the user is only the video from the selected channel, rather than the entire spliced view, thereby achieving effective utilization and precise recovery of redundancy data.

[0264] To further illustrate the application of the method for video splicing storage applied to the device cluster, please refer to FIG. 14. FIG. 14 is a flowchart of an exemplary process for managing a device cluster according to some embodiments of the present disclosure. The above-described cluster management strategy is applicable to all NVR devices within a LAN environment. Process 1400 may include the following operations:

[0265] 1. A management host may be set up to discover other devices in the device cluster through broadcasting and / or multicasting, and a backup host may be determined.

[0266] By way of example, one device in the device cluster is randomly selected or designated as the management host. The management host searches for other NVR devices in the current LAN environment by sending broadcast or multicast packets and adds the devices to a management queue. The management host retrieves network throughput of network interface cards (NICs) of the NVR devices in the management queue and selects one NVR device satisfying a preset condition as the backup host. For example, an NVR device with a lowest network throughput in the management queue is selected as the backup host.

[0267] 2. The management host and the backup host maintain a keep-alive connection. If the management host fails, the backup host becomes the management host. If the backup host fails, a new backup host is reselected. Additionally, the management host periodically synchronizes a video splicing information database to the backup host.

[0268] By way of example, the backup host and the management host establish the keep-alive connection by creating a bidirectional heartbeat mechanism, where periodic heartbeat packets are exchanged between the backup host and the management host to monitor each other's online status. At the same time, the management host periodically synchronizes the video splicing information database to the backup host.

[0269] If the management host fails to connect to the backup host within a keep-alive period, the backup host is considered to have failed, and a new backup host is selected. If the management host fails, the backup host automatically becomes a new management host and re-executes operation 1 to determine a new backup host.

[0270] 3. The management host collects video channel information and codec resource information from other NVR devices and groups video streams with a same encoding configuration, prioritizing merging streams from a same NVR device within a same group.

[0271] By way of example, the management host communicates with all other NVR devices to obtain video channel information and codec resource information of the NVR devices within the LAN, including video parameters such as source video ID, video encoding format, resolution, frame rate, and bit rate, as well as device IDs, currently used codec resources, surplus codec resources, codec capabilities, or the like. The management host then performs grouping and sorting according to the following rules:

[0272] (1) . All source videos with a same video encoding format are grouped into one group.

[0273] (2) . Within groups with the same encoding format, videos from a same device are prioritized for merging.

[0274] 4. Based on the surplus codec resources, the management host prioritizes splicing, re-encoding, and redundant storage of source video data from a same device with a same encoding configuration. The management host records relevant video encoding, channel information, splicing device information, or the like, in the database.

[0275] By way of example, the management host directs the target splicing device to prioritize splicing, re-encoding, and redundant storage of source video data from the same device with the same encoding configuration, thereby reducing the reception and forwarding of spliced video data.

[0276] The management host records video splicing information such as video channel information, recording time, corresponding device IP / MAC, redundant data splicing device IP / MAC, or the like in the database for redundancy data recovery.

[0277] 5. After completing the splicing, re-encoding, and backup of redundant video data with the same encoding configuration from the same device, the management host checks if there are remaining groups.

[0278] If there are remaining groups, redundant video information of the remaining groups is processed. Surplus codec resources of the remaining NVRs are analyzed, and an NVR device with a largest amount of surplus codec resources is selected. Source video streams requiring splicing are sent to the selected NVR device, which performs splicing, re-encoding, and redundant storage of the received data streams. The management host simultaneously records relevant information.

[0279] By way of example, redundant video channel information and codec resource information of other videos to be spliced in the remaining groups are re-evaluated to identify the NVR device with the strongest residual codec capacity. The management host issues an instruction and forwards the source video streams to be spliced to the NVR device with the strongest residual codec capacity, designating the device to perform splicing, re-encoding, and redundant storage of the received data streams. Meanwhile, the management host records relevant splicing video information in the database. The above process is repeated until all video streams requiring redundant storage have been spliced.

[0280] If there are no remaining groups, a current round of cluster management ends, indicating the completion of the process of splicing all the videos to be redundantly stored.

[0281] Referring to FIG. 15, FIG. 15 is a schematic diagram of an exemplary structure of an electronic device according to one embodiment of the present disclosure. An electronic device 60 comprises a memory 61 and a processor 62 that are interconnected. The memory 61 is configured to store a computer program. The computer program, when executed by the processor 62, implements the methods for video splicing storage described in any one or more of the above embodiments.

[0282] The methods described in the above embodiments may be in the form of a computer program. Thus the present disclosure provides a computer-readable storage medium. Referring to FIG. 16, FIG. 16 is a schematic diagram of an exemplary structure of a computer-readable storage medium according to one embodiment of the present disclosure. A computer-readable storage medium 80 is configured to store a computer program 81 which may be executed to implement the methods for video splicing storage described in any one or more of the above embodiments.

[0283] The computer-readable storage medium 80 may be any media that can store program codes, such as a server, a USB flash drive, a removable hard disk, a read-only memory (ROM, Read-Only Memory) , a random access memory (RAM, Random Access Memory) , a diskette, or a CD-ROM, or the like.

[0284] Having thus described the basic concepts, it may be rather apparent to those skilled in the art after reading this detailed disclosure that the foregoing detailed disclosure is intended to be presented by way of example and is not limiting. Various alterations, improvements, and modifications may occur and are intended to those skilled in the art, though not expressly stated herein. These alterations, improvements, and modifications are intended to be suggested by this disclosure, and are within the spirit and scope of the exemplary embodiments of this disclosure.

[0285] Moreover, certain terminology has been used to describe embodiments of the present disclosure; For example, the terms “one embodiment, ” “an embodiment, ” and / or “some embodiments” mean that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present disclosure; Therefore, it is emphasized and should be appreciated that two or more references to “an embodiment” or “one embodiment” or “an alternative embodiment” in various portions of this disclosure are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures, or characteristics may be combined as suitable in one or more embodiments of the present disclosure;

[0286] Furthermore, the recited order of processing elements or sequences, or the use of numbers, letters, or other designations therefore, is not intended to limit the claimed processes and methods to any order except as may be specified in the claims. Although the above disclosure discusses through various examples what is currently considered to be a variety of useful embodiments of the disclosure, it is to be understood that such detail is solely for that purpose, and that the appended claims are not limited to the disclosed embodiments, but, on the contrary, are intended to cover modifications and equivalent arrangements that are within the spirit and scope of the disclosed embodiments. For example, although the implementation of various components described above may be embodied in a hardware device, it may also be implemented as a software only solution, e.g., an installation on an existing server or mobile device.

[0287] Similarly, it should be appreciated that in the foregoing description of embodiments of the present disclosure, various features are sometimes grouped together in a single embodiment, figure, or description thereof for the purpose of streamlining the disclosure aiding in the understanding of one or more of the various inventive embodiments. This method of disclosure, however, is not to be interpreted as reflecting an intention that the claimed subject matter requires more features than are expressly recited in each claim. Rather, inventive embodiments lie in less than all features of a single foregoing disclosed embodiment.

[0288] In some embodiments, the numbers expressing quantities or properties used to describe and claim certain embodiments of the present disclosure are to be understood as being modified in some instances by the term “about, ” “approximate, ” or “substantially. ” For example, “about, ” “approximate, ” or “substantially” may indicate ±20%variation of the value it describes, unless otherwise stated. Accordingly, in some embodiments, the numerical parameter set forth in the written description and attached claims are approximations that may vary depending upon the desired properties sought to be obtained by a particular embodiment. In some embodiments, the numerical parameter should be construed in light of the number of reported significant digits and by applying ordinary rounding techniques. Notwithstanding that the numerical ranges and parameter setting forth the broad scope of some embodiments of the present disclosure are approximations, the numerical values set forth in the specific examples are reported as precisely as practicable.

[0289] Each of the patents, patent applications, publications of patent applications, and other material, such as articles, books, specifications, publications, documents, things, and / or the like, referenced herein is hereby incorporated herein by this reference in its entirety for all purposes, excepting any prosecution file history associated with same, any of same that is inconsistent with or in conflict with the present document, or any of same that may have a limiting effect as to the broadest scope of the claims now or later associated with the present document. By way of example, should there be any inconsistency or conflict between the description, definition, and / or the use of a term associated with any of the incorporated material and that associated with the present document, the description, definition, and / or the use of the term in the present document shall prevail.

[0290] In closing, it is to be understood that the embodiments of the present disclosure disclosed herein are illustrative of the principles of the embodiments of the present disclosure. Other modifications that may be employed may be within the scope of the present disclosure. Thus, by way of example, but not of limitation, alternative configurations of the embodiments of the present disclosure may be utilized in accordance with the teachings herein. Accordingly, embodiments of the present disclosure are not limited to that precisely as shown and described.

Claims

1.A method for video splicing storage being applied to a device cluster, the device cluster comprising a plurality of splicing devices, each of the plurality of splicing devices being connected to at least one channel, each of the at least one channel being used to transmit a source video to a corresponding splicing device; the method comprising:obtaining channel information of channels connected to the plurality of splicing devices;determining at least one splicing scheme based on the channel information of the channels;determining at least one target splicing device corresponding to the at least one splicing scheme;obtaining source videos corresponding to the at least one splicing scheme;splicing the source videos using the at least one target splicing device according to the at least one splicing scheme to obtain spliced video data; andstoring the spliced video data to the target splicing device.2.The method of claim 1, the determining at least one splicing scheme based on the channel information of the channels, comprising:dividing the channels based on the channel information of the channels into at least one first channel group;for channels within each of the at least one first channel group, determining at least one second channel group by grouping the channels within the each of the at least one first channel group;for each of the at least one second channel group, determining one or more splicing schemes corresponding to the each of the at least one second channel group based on change information of channels within the each of the at least one second channel group.3.The method of claim 2, wherein the determining one or more splicing scheme corresponding to the each of the at least one second channel group based on change information of channels within the each of the at least one second channel group comprises:determining a channel priority of channels within a second channel group based on the change information of the channels within the second channel group;determining a count of the one or more splicing schemes based on device information of a splicing device connected with the channels within the second channel group and a count of the channels in the second channel group; anddetermining the one or more splicing schemes according to a predetermined splicing layout based on the channel priority, the count of the one or more splicing schemes, and the count of the channels within the each of the at least one second channel group.4.The method of claim 3, further comprising:determining a candidate splicing scheme by inputting the change information of the channels within the each of the at least one second channel group into a splicing scheme prediction model; andupdating at least one of the one or more splicing schemes based on the candidate splicing scheme.5.The method of claim 4, further comprising:monitoring the change information of the channels within the each of the at least one second channel group;updating the candidate splicing scheme for the each of the at least one second channel group in response to determining that a change value of the change information of a channel among the channels within the each of the at least one second channel group exceeds a first predetermined threshold.6.The method of claim 2, wherein the determining one or more splicing schemes corresponding to the each of the at least one second channel group based on change information of channels within the each of the at least one second channel group includes:inputting the change information of the channels within the each of the at least one second channel group into a splicing scheme prediction model to determine the one or more splicing schemes.7.The method of claim 2, wherein the determining at least one target splicing device corresponding to the at least one splicing scheme includes:for each second channel group:if channels within the second channel group are connected to a same splicing device, designating the same splicing device connected to channels within a second channel group as a target splicing device for the one or more splicing schemes corresponding to the second channel group;if the channels within the second channel group are connected to multiple splicing devices, designating a splicing device with a strongest residual decoding capability among the multiple splicing devices as the target splicing device for the one or more splicing scheme corresponding to the second channel group.8.The method of claim 1, wherein the device cluster includes a management host; the method further comprises:generating video splicing information for the spliced video data via the at least one target splicing device; anduploading the video splicing information to the management host to enable the management host to obtain a target source video based on the video splicing information of the spliced video data.9.The method of claim 8, wherein the obtaining a target source video based on the video splicing information of the spliced video data includes:obtaining a video request;obtaining the spliced video data associated with the video request from a corresponding splicing device based on the video request and the video splicing information; anddecoding and cutting the spliced video data to obtain the target source video; wherein the target source video is a source video corresponding to the video request.10.A system for video splicing storage, comprising a device cluster, the device cluster including a plurality of splicing devices, each of the plurality of splicing devices being connected to at least one channel, each of the at least one channel being used to transmit a source video to a corresponding splicing device; the system comprising:a first acquisition module configured to obtain channel information of channels connected to the plurality of splicing devices;a first determination module configured to determine at least one splicing scheme based on the channel information of the channels;a second determination module configured to determine at least one target splicing device corresponding to the at least one splicing scheme;a second acquisition module configured to obtain source videos corresponding to the at least one splicing scheme;a splicing module configured to splice the source videos using the at least one target splicing device according to the at least one splicing scheme to obtain spliced video data; anda storage module configured to store the spliced video data to the target splicing device.11.An apparatus for video splicing storage, the apparatus being applied to a device cluster comprising a plurality of splicing devices, each of the plurality of splicing devices being connected to at least one channel, each of the at least one channel being used to transmit a source video to a corresponding splicing device; the apparatus comprising a processing device, the processing device being configured to:obtain channel information of channels connected to the plurality of splicing devices;determine at least one splicing scheme based on the channel information of the channels;determine at least one target splicing device corresponding to the at least one splicing scheme;obtain source videos corresponding to the at least one splicing scheme;splice the source videos using the at least one target splicing device according to the at least one splicing scheme to obtain spliced video data; andstore the spliced video data to the target splicing device.12.A method for video splicing storage, the method being applied to a device cluster comprising a plurality of devices, one of the plurality of devices being designated as a first device, the method splicing and storing a plurality of source videos from at least one device in the device cluster, and the method comprising:designating, by the first device in the device cluster, at least one of the plurality of devices in the device cluster as at least one target splicing device;obtaining spliced video data by enabling each of the at least one target splicing device to splice and re-encode at least two of the plurality of source videos, and storing the spliced video data in at least one of the plurality of devices in the device cluster; andobtaining and storing video splicing information of each of the spliced video data, the first device being configured to obtain the each of the spliced video data based on the video splicing information of the each of the spliced video data and extracts a source video from the each of the spliced video data.13.The method of claim 12, wherein the designating, by the first device in the device cluster, at least one of the plurality of devices in the device cluster as at least one target splicing device includes:determining an encoding format of each of the plurality of source videos and / or surplus codec resources of at least a portion of the plurality of devices in the device cluster;determining the at least one target splicing device based on encoding formats of the plurality of source videos and / or the surplus codec resources of the at least a portion of the plurality of devices in the device cluster;the obtaining spliced video data by enabling each of the at least one target splicing device to splice and re-encode at least two of the plurality of source videos includes:obtaining the spliced video data by enabling each of the at least one target splicing device to splice and re-encode at least two of the plurality of source videos having a same encoding format.14.The method of claim 13, wherein the determining the at least one target splicing device based on encoding formats of the plurality of source videos and / or the surplus codec resources of the at least a portion of the plurality of devices in the device cluster, and the obtaining the spliced video data by enabling each of the at least one target splicing device to splice and re-encode at least two of the plurality of source videos having a same encoding format includes:grouping source videos with a same encoding format into a same group to obtain at least one group of source videos;sending a video splicing instruction to a first source device of at least two source videos in each of the at least one group of source videos, the first source device being designated as a first target splicing device to splice and re-encode all source videos of the first source device to obtain the spliced video data;determining a second target splicing device for remaining source videos in each of the at least one group of source videos based on the surplus codec resources of one or more second source devices of the remaining source video in the group, the second target splicing device being configured to splice and re-encode at least a portion of the remaining source videos to obtain the spliced video data.15.The method of claim 14, wherein the determining a second target splicing device for remaining source videos in each of the at least one group of source videos based on the surplus codec resources of one or more second source devices of the remaining source video in the group includes:selecting a source device with a strongest surplus codec resource from the one or more second source devices of the remaining source videos as the second target splicing device.16.The method of claim 12, wherein the method comprises, after the obtaining and storing video splicing information for each of the spliced video data:determining video splicing information of a source video to be extracted, and obtaining spliced video data of the source video to be extracted;obtaining decoded splicing data by decoding the spliced video data;obtaining the source video to be extracted by performing data segmentation on the decoded splicing data based on splicing display coordinate information of the source video to be extracted in the video splicing information.17.The method of claim 12, further comprising:determining a backup device based on network throughput of all devices in the device cluster except the first device; andestablishing a keep-alive connection with the backup device so that the backup device automatically becomes a new first device if the first device is disconnected.18.A method for video splicing storage, the method being applied to a device cluster comprising a plurality of devices, one of the plurality of devices being designated as a first device, the method comprising:in response to receiving a video splicing instruction issued by the first device, splicing and re-encoding, through at least one target splicing device in the device cluster, at least two source videos to be spliced indicated by the video splicing instruction to obtain spliced video data, and storing the spliced video data in at least one of the plurality of devices in the device cluster; andstoring video splicing information of each of the spliced video data, the first device being configured to obtain the each of the spliced video data based on the video splicing information of the each of the spliced video data and extracts a source video from the each of the spliced video data.19.The method of claim 18, wherein the splicing and re-encoding, through at least one target splicing device in the device cluster, at least two source videos to be spliced indicated by the video splicing instruction to obtain spliced video data includes:obtaining at least two decoded videos by performing, by the target splicing device, background decoding on bitstreams of the at least two source videos to be spliced;obtaining at least two scaled videos by scaling each of the at least two decoded videos based on a splicing path of the at least one target splicing device and a source video resolution;obtaining a spliced image sequence by requesting a memory block based on the source video resolution and sequentially filling images from the at least two scaled videos into the memory block; andobtaining the spliced video data by encoding the spliced image sequence.20.An apparatus for video splicing storage, comprising a device cluster, the device cluster including a plurality of splicing devices, each of the plurality of splicing devices being connected to at least one channel, each of the at least one channel being used to transmit a source video to a corresponding splicing device; the apparatus further comprising a processing device, the processing device being configured to:obtain channel information of channels connected to the plurality of splicing devices;determine at least one splicing scheme based on the channel information of the channels;determine at least one target splicing device corresponding to the at least one splicing scheme;obtain source videos corresponding to the at least one splicing scheme;splice the source videos using the at least one target splicing device according to the at least one splicing scheme to obtain spliced video data; andstore the spliced video data to the target splicing device.

Citation Information

Patent Citations

  • Frame splicing method and device

    CN104601935A

  • Target analysis method, device and system, node equipment and storage medium

    CN112116636A

  • Multi-lens picture merging and independent display method

    CN117812286A

  • Video stitching storage method and device and storage medium

    CN118555357A

  • Distributed image acquisition, storage, and backup method

    US20130016225A1