Method and apparatus for live streaming control, device, and storage medium
By selecting video frames with high differences between them for processing, the problem of redundant resource consumption during live streaming is solved, and more efficient utilization of live streaming resources is achieved.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- BEIJING ZITIAO NETWORK TECH CO LTD
- Filing Date
- 2025-10-28
- Publication Date
- 2026-05-07
AI Technical Summary
During live streaming, traditional methods of processing highly similar video frames lead to redundant consumption of terminal devices and network resources, affecting system performance.
By determining the degree of difference between video frames, video frames with higher degree of difference are selected for processing to generate live content, thus avoiding the repeated processing of video frames with high similarity.
It reduces the system and network resource consumption of terminal devices, and improves the smoothness and efficiency of live streaming.
Smart Images

Figure CN2025130498_07052026_PF_FP_ABST
Abstract
Description
Methods, apparatus, devices, and storage media for live streaming control
[0001] This application claims priority to Chinese Patent Application No. 202411514251.1, filed on October 28, 2024, entitled "Method, Apparatus, Device and Storage Medium for Live Broadcast Control", the entire contents of which are incorporated herein by reference. Technical Field
[0002] The exemplary embodiments disclosed herein generally relate to the field of computers, and particularly to methods, apparatus, devices, computer-readable storage media, and computer program products for live broadcast control. Background Technology
[0003] With the development of computer technology, the internet has become an important platform for information exchange. For example, people can use live streaming to transmit video content in real time, allowing users to watch the video content instantly and interact with other users in real time. During live streaming, people not only expect high-quality and smooth video content, but also expect reduced system resource consumption. Summary of the Invention
[0004] In a first aspect of this disclosure, a method for live streaming control is provided. The method includes: determining the degree of difference between video frames in a target video for live streaming; selecting at least a subset of video frames from the target video based on the degree of difference; and generating live streaming content for live streaming based on the selected video frames.
[0005] In a second aspect of this disclosure, an apparatus for live streaming control is provided. The apparatus includes: a determining module configured to determine the degree of difference between video frames in a target video for live streaming; a selecting module configured to select at least a subset of video frames from the target video based on the degree of difference; and a generating module configured to generate live streaming content based on the selected video frames.
[0006] In a third aspect of this disclosure, an electronic device is provided. The device includes at least one processor; and at least one memory coupled to the at least one processor and storing instructions for execution by the at least one processor. When executed by the at least one processor, the instructions cause the device to perform the method of the first aspect.
[0007] In a fourth aspect of this disclosure, a computer-readable storage medium is provided. The computer-readable storage medium stores computer-executable instructions that can be executed by a processor to implement the method of the first aspect.
[0008] In a fifth aspect of this disclosure, a computer program product is provided, including computer-executable instructions, wherein when executed by a processor, the computer-executable instructions implement the method according to a first aspect of this disclosure.
[0009] It should be understood that the content described in this content section is not intended to limit the key or essential features of the embodiments of this disclosure, nor is it intended to restrict the scope of this disclosure. Other features of this disclosure will become readily apparent from the following description. Attached Figure Description
[0010] The above and other features, advantages, and aspects of the embodiments of this disclosure will become more apparent from the accompanying drawings and the following detailed description. In the drawings, the same or similar reference numerals denote the same or similar elements, wherein:
[0011] Figure 1 shows a schematic diagram of an example environment in which embodiments of the present disclosure may be implemented;
[0012] Figure 2 shows a flowchart of a process for live broadcast control according to some embodiments of the present disclosure;
[0013] Figure 3 illustrates a schematic diagram of an example architecture for live streaming control according to some embodiments of the present disclosure;
[0014] Figure 4 shows a schematic diagram of examples of candidate video frames and reference video frames according to some embodiments of the present disclosure;
[0015] Figure 5 shows a schematic structural block diagram of an example device for live broadcast control according to some embodiments of the present disclosure; and
[0016] Figure 6 shows a block diagram of an electronic device capable of implementing several embodiments of the present disclosure. Detailed Implementation
[0017] Embodiments of this disclosure will now be described in more detail with reference to the accompanying drawings. While some embodiments of this disclosure are shown in the drawings, it should be understood that this disclosure can be implemented in various forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided to provide a more thorough and complete understanding of this disclosure. It should be understood that the accompanying drawings and embodiments of this disclosure are for illustrative purposes only and are not intended to limit the scope of protection of this disclosure.
[0018] In the description of embodiments of this disclosure, the term "comprising" and similar terms should be understood as open-ended inclusion, i.e., "including but not limited to". The term "based on" should be understood as "at least partially based on". The term "one embodiment" or "the embodiment" should be understood as "at least one embodiment". The term "some embodiments" should be understood as "at least some embodiments". Other explicit and implicit definitions may also be included below.
[0019] In this document, unless explicitly stated otherwise, performing a step in response to A does not mean that the step is performed immediately after A, but may include one or more intermediate steps.
[0020] It is understood that the data involved in this technical solution (including but not limited to the data itself, the acquisition or use of the data) shall comply with the requirements of relevant laws, regulations and related provisions.
[0021] It is understood that before using the technical solutions disclosed in the various embodiments of this disclosure, users should be informed of the types, scope of use, and usage scenarios of the personal information involved in this disclosure through appropriate means in accordance with relevant laws and regulations, and user authorization should be obtained.
[0022] For example, in response to receiving a user's active request, a prompt message is sent to the user to clearly inform the user that the requested operation will require the acquisition and use of the user's personal information, thereby enabling the user to choose whether to provide personal information to the software or hardware such as electronic devices, applications, servers or storage media that perform the operation of the technical solution disclosed herein, based on the prompt message.
[0023] As an optional but non-restrictive implementation, in response to a user's active request, a prompt message can be sent to the user, such as a pop-up window, where the prompt message can be presented in text format. Furthermore, the pop-up window can also include a selection control allowing the user to choose "agree" or "disagree" to provide personal information to the electronic device.
[0024] It is understood that the above notification and user authorization process are merely illustrative and do not constitute a limitation on the implementation of this disclosure. Other methods that comply with relevant laws and regulations may also be applied to the implementation of this disclosure.
[0025] As mentioned above, live streaming allows for the real-time transmission of video content, enabling users to watch and interact with the content instantly. During a live stream, video is typically captured using image acquisition devices (such as cameras). The video frames are then processed, including cropping, applying effects, and encoding, before being sent to the relevant terminal devices (e.g., the devices of guests or viewers). Traditionally, even if multiple adjacent video frames are very similar, each similar frame is processed separately before being sent to the relevant terminal devices. This approach not only leads to redundant system resource consumption on the broadcaster's terminal devices but also to redundant network resource consumption.
[0026] In view of this, embodiments of the present disclosure propose an improved scheme for live streaming control. In this scheme, the degree of difference between video frames in a target video for live streaming is determined. Based on the degree of difference between video frames, at least a subset of video frames are selected from the target video. Based on the selected video frames, live streaming content for live streaming is generated.
[0027] In this way, the embodiments of this disclosure can select video frames with relatively high differences to generate live streaming content, avoiding the repeated processing of video frames with relatively high similarity (also known as redundant video frames). While maintaining the picture quality of the live streaming content, it can reduce the consumption of system resources on the terminal device.
[0028] The following section provides a detailed description of various example implementations of this scheme, with reference to the accompanying drawings.
[0029] Example Environment
[0030] Figure 1 illustrates a schematic diagram of an example environment 100 in which embodiments of the present disclosure can be implemented. In environment 100, one or more users 110-1, 110-2, 110-3, ..., 110-N can watch live streams and participate in interactive live stream sessions through their respective associated terminal devices 120-1, 120-2, ..., 120-N. User 110 may also be referred to as a participant, for example. For ease of discussion, users 110-1, 110-2, ..., 110-N may be collectively referred to as user 110 or individually, and terminal devices 120-1, 120-2, ..., 120-N may be collectively referred to as terminal device 120 or individually. Among all users 110, one or more users, such as user 110-1, can establish a live stream session and initiate a live stream through their associated terminal device 120-1.
[0031] In some scenarios, the user 110-1 who initiates the live stream can also be referred to as the host of the live stream session, a host participant, the live streamer, or the live stream administrator. One or more other users 110 may include guest participants 110-N to indicate users participating in the live stream interaction initiated by the host. In addition to guest participants in the live stream interaction, other users 110 may also include viewers, listeners, or viewers of the live stream session.
[0032] In some embodiments, the terminal device 120 may have an application installed that can provide live streaming services, or may have access to a website that can provide live streaming services. The user 110 can operate the terminal device 120 to access the corresponding application or website. Accordingly, the terminal device 120 may present a corresponding live streaming interface, which may provide live streaming content, such as audio live streaming content or video live streaming content.
[0033] In some embodiments, the terminal device 120 can also communicate with the server 130 via the network 132 to provide live streaming services. The server 130 can also provide functions such as application or website management, configuration, and maintenance. In some embodiments, the server 130 can store data generated during the live streaming session, including live interaction data generated during live streaming interactions.
[0034] Terminal device 120 can be any type of mobile terminal, fixed terminal, or portable terminal, including mobile phones, desktop computers, laptop computers, notebook computers, netbook computers, tablet computers, media computers, multimedia tablets, personal communication system (PCS) devices, personal navigation devices, personal digital assistants (PDAs), audio / video players, digital cameras / camcorders, television receivers, radio receivers, e-book devices, gaming devices, or any combination thereof, including accessories and peripherals of these devices or any combination thereof. In some embodiments, terminal device 120 may also support any type of user-facing interface (such as "wearable" circuitry). Server 130 can be any type of computing system / server capable of providing computing power, including but not limited to mainframes, edge computing nodes, computing devices in cloud environments, etc.
[0035] It should be understood that the structure and function of the various elements in environment 100 are described for illustrative purposes only and do not imply any limitation on the scope of this disclosure.
[0036] The following description will continue with reference to the accompanying drawings, which will provide some exemplary embodiments of this disclosure.
[0037] Example process
[0038] Figure 2 illustrates a flowchart of a live broadcast control process 200 according to some embodiments of the present disclosure. For ease of discussion, some embodiments of the present disclosure will be described below in conjunction with the environment 100 in Figure 1 and from the perspective of a terminal device 120, but this is merely exemplary. In some embodiments, the actions described relative to the terminal device may be performed by the terminal device in coordination with a server.
[0039] In block 210 of process 200, terminal device 120 determines the degree of difference between video frames in the target video for live streaming. Terminal device 120 may be the terminal device of the broadcaster or the terminal device of the guest. As an example, if terminal device 120 is the terminal device of the broadcaster, the target video may be a video containing footage of the broadcaster, a video containing footage of the guest, or a video containing other footage (e.g., game footage, movie footage, etc.). As another example, if terminal device 120 is the terminal device of the guest, the target video may be a video containing footage of the guest or a video containing other footage.
[0040] In some embodiments, terminal device 120 can acquire the target video it captures itself, or terminal device 120 can receive the target video from server 130 or other remote devices. As an example, FIG3 shows a schematic diagram of an example architecture 300 for live streaming control according to some embodiments of the present disclosure. As shown in FIG3, example architecture 300 illustrates camera 310 and live streaming engine 340. During the live stream, target video 320 can be captured in real time by terminal device 120's own camera 310. This target video 320 may include candidate video frames 321-1, 321-2, 321-3, ..., 321-N. As another example, terminal device 120 may also receive, for example, videos of guest participants, videos containing game footage, videos containing film / television footage, or videos containing other types of footage from server 130, and use the received video as the target video.
[0041] In some embodiments, the terminal device 120 can determine the degree of difference between a candidate video frame in the target video and a reference video frame preceding the candidate video frame based on the temporal order of the video frames in the target video. It is understood that the temporal order of the video frames can be the order in which the video frames are captured or played. As an example, as shown in FIG3, when the camera 310 sequentially captures candidate video frames 321-1, 321-2, 321-3, ..., 321-N, the terminal device 120 can sequentially determine the degree of difference between the candidate video frames 321-1, 321-2, 321-3, ..., 321-N and the reference video frame.
[0042] The reference video frame here can be a video frame in the target video that can provide a reference for the selection of candidate video frames. In one example, the reference video frame can be a video frame in the target video that precedes and is adjacent to the candidate video frame. For example, as shown in Figure 3, for candidate video frame 321-2 of the target video 320, candidate video frame 321-1 can be used as the reference video frame to determine the difference between candidate video frame 321-2 and candidate video frame 321-1. In another example, the reference video frame can also be a selected video frame in the target video that precedes and is closest to the candidate video frame. For example, as shown in Figure 3, suppose candidate video frame 321-1 in the target video 320 is selected, and candidate video frame 321-2 is not selected. Based on this, candidate video frame 321-1 can be determined as the reference video frame for candidate video frame 321-3, and the difference between candidate video frame 321-3 and candidate video frame 321-1 can be determined.
[0043] In some embodiments, the terminal device 120 determines the degree of difference between a candidate video frame and a reference video frame based on the pixel parameters of the candidate video frame and the pixel parameters of the reference video frame. The pixel parameters may include parameters that indicate the color of each pixel unit in the video frame; for example, the pixel parameters may include information such as the position, pixel value, and transparency of each pixel in the video frame. Having obtained the pixel parameters of the candidate video frame and the reference video frame, the terminal device 120 can determine the degree of difference between the image content of the candidate video frame and the image content of the reference video frame based on these pixel parameters.
[0044] In some embodiments, the terminal device 120 can determine the degree of difference between corresponding pixel units in the candidate video frame and the reference video frame based on the pixel parameters of the candidate video frame and the pixel parameters of the reference video frame, to obtain a set of difference degrees. This set of difference degrees may include the degree of difference between corresponding pixel units in the candidate video frame and the reference video frame. The terminal device 120 can determine the degree of difference between the candidate video frame and the reference video frame based on the set of difference degrees. Here, each pixel unit at a corresponding position in the candidate video frame and the reference video frame may include pixel units with the same coordinate position in both the candidate video frame and the reference video frame. The terminal device 120 can separately determine the degree of difference between each pixel unit with the same coordinate position in the candidate video frame and the reference video frame, forming a set of difference degrees through the degree of difference between all pixel units.
[0045] As an example, FIG4 illustrates a schematic diagram of an example 400 of candidate video frames and reference video frames according to some embodiments of the present disclosure. As shown in FIG4, candidate video frame 321 and reference video frame 401 are shown in example 400. Candidate video frame 321 and reference video frame 401 may each have M×N pixel units. The positions of pixel units (X11, Y11) in candidate video frame 321 correspond to the positions of pixel units (X21, Y21) in reference video frame 401, the positions of pixel units (X12, Y12) in candidate video frame 321 correspond to the positions of pixel units (X22, Y22) in reference video frame 401, and so on.
[0046] Candidate video frame 321 and reference video frame 401 can adopt RGB (Red, Green, Blue) color mode. Pixel parameters can include the intensity values of the R color channel, G color channel, and B color channel of each pixel unit in the video frame. Terminal device 120 can determine the differences in the intensity values of the R color channel, G color channel, and B color channel between pixel unit (X11, Y11) and pixel unit (X21, Y21). Then, terminal device 120 can sum the differences in the intensity values of the R color channel, G color channel, and B color channel between pixel unit (X11, Y11) and pixel unit (X21, Y21), and determine the summation result as the degree of difference between pixel unit (X11, Y11) and pixel unit (X21, Y21). Terminal device 120 can execute the above calculation process in parallel to determine the difference between pixel units corresponding to M×N groups of positions in candidate video frame 321 and reference video frame 401, forming a difference set. For example, terminal device 120 can generate an M×N difference matrix, and each element of the difference matrix can be formed by the difference between pixel units corresponding to the M×N groups of positions. It is understood that the above example only uses RGB color mode as an example to explain the determination of the difference between pixel units, and should not be construed as video frames being limited to using RGB color mode. In practical applications, any appropriate color mode can be selected according to actual needs, and the embodiments of this disclosure do not specifically limit this.
[0047] In some embodiments, the terminal device 120 can determine the difference between a candidate video frame and a reference video frame based on summing the difference values in the difference value set. In one example, as shown in FIG4, if the difference values between pixel units corresponding to M×N positions in the candidate video frame 321 and the reference video frame 401 have been determined, the terminal device 120 can sum these M×N difference values and determine the summation result as the difference value between the candidate video frame 321 and the reference video frame 401. In this way, the difference values between corresponding pixel units in the candidate video frame and the reference video frame can be quickly determined through, for example, parallel computation, thereby rapidly determining the difference value between the candidate video frame and the reference video frame, reducing processing latency, and preventing stuttering in the live broadcast.
[0048] In some embodiments, the terminal device 120 can determine whether the resolution of a candidate video frame is the same as the resolution of a reference video frame. If it is determined that the resolution of the candidate video frame is the same as the resolution of the reference video frame, the terminal device 120 can determine the degree of difference between the candidate video frame and the reference video frame based on the pixel parameters of the candidate video frame and the reference video frame. If it is determined that the resolution of the candidate video frame is different from the resolution of the reference video frame, it may be that the acquisition mode of the video frame has changed at the candidate video frame, for example, the user may have reset the camera resolution, indicating that the candidate video frame and the reference video frame may have a large difference, and the candidate video frame can be selected.
[0049] It should be noted that the method described above for determining the degree of difference between video frames is merely exemplary. In practical applications, other methods can also be selected to determine the degree of difference between video frames according to actual needs, and the embodiments of this disclosure do not impose specific limitations in this regard.
[0050] In block 220 of process 200, terminal device 120 selects at least a subset of video frames from a target video based on the degree of difference. In some embodiments, a threshold may be pre-set for the degree of difference, which may indicate, for example, whether the difference between video frames is sufficient to create a visually perceptible difference. If the degree of difference between multiple video frames (e.g., two adjacent video frames) in the target video has been determined, terminal device 120 can compare the degree of difference between the multiple video frames with the threshold. If the degree of difference between the multiple video frames exceeds the threshold, it indicates that the image content of the multiple video frames is dissimilar, and the multiple video frames can be selected individually. If the degree of difference between the multiple video frames does not exceed the threshold, it indicates that the image content of the multiple video frames is similar, and some video frames can be selected from the multiple video frames to reduce the number of redundant video frames, for example, by selecting one video frame from the multiple video frames or selecting multiple video frames at intervals.
[0051] As an example, as shown in Figure 3, in block 330 of example architecture 300, terminal device 120 can determine whether the difference between each candidate video frame 321-1, 321-2, 321-3, ..., 321-N and the reference video frame exceeds a threshold. If it is determined in block 330 that the difference between the candidate video frame and the reference video frame exceeds the threshold, the candidate video frame can be selected. If it is determined in block 330 that the difference between the candidate video frame and the reference video frame does not exceed the threshold, the process can proceed to block 360, where terminal device 120 can remove the corresponding candidate video frame from the target video 320.
[0052] In block 230 of process 200, terminal device 120 generates live content for live streaming based on selected video frames. In some embodiments, terminal device 120 may be the terminal device of a broadcast participant. Terminal device 120 may generate, for example, audio and video streams for live streaming based on the selected video frames. Then, terminal device 120 may push the generated audio and video streams to server 130, which in turn pushes the audio and video streams to the terminal devices of viewers or guests, respectively.
[0053] As an example, as shown in Figure 3, the terminal device 120 can be deployed with a live streaming engine 340, such as a live core. If a candidate video frame is selected from the target video, the live streaming engine 340 can perform image processing such as cropping, effects, and merging on the candidate video frame, and synthesize an audio-video stream based on the candidate video frame and the corresponding audio stream. The live streaming engine 340 can also encode the audio-video stream to form live streaming content 350 for live streaming. Then, the live streaming engine 340 can push the live streaming content 350 to the terminal devices related to the live streaming. If a candidate video frame is removed from the target video, the live streaming engine 340 can encode the audio corresponding to the removed candidate video frame and use the encoded audio as the live streaming content 350 for live streaming. This not only reduces the system resource consumption of the terminal device 120 but also reduces the consumption of network resources. Alternatively, if a candidate video frame is removed from the target video, the live streaming engine 340 can also synthesize an audio-video stream based on the audio corresponding to the removed candidate video frame and the image-processed reference video frame. The synthesized audio and video streams are then encoded to generate live content 350 for live streaming. This avoids the live streaming engine 340 from repeatedly processing similar video frames, which helps reduce the system resource consumption of the terminal device 120.
[0054] In other embodiments, terminal device 120 may be the terminal device of a guest participant. Terminal device 120 can push selected video frames to server 130, which in turn pushes the selected video frames to the terminal device of the broadcaster participant. The broadcaster participant's terminal device processes the selected video frames into an audio and video stream, for example, for live streaming. This stream is then pushed to the viewer's terminal device via server 130, or pushed back to the guest participant's terminal device 120.
[0055] In this way, the embodiments of this disclosure can select video frames with relatively high differences to generate live streaming content, which can avoid repeatedly processing video frames with relatively high similarity (also known as redundant video frames), and help reduce the consumption of system resources of terminal devices.
[0056] Example devices and equipment
[0057] Embodiments of this disclosure also provide corresponding apparatus for implementing the methods or processes described above. Figure 5 shows a schematic structural block diagram of an example apparatus 500 for live broadcast control according to certain embodiments of this disclosure. Apparatus 500 may be implemented as or included in terminal device 120. The various modules / components in apparatus 500 may be implemented by hardware, software, firmware, or any combination thereof.
[0058] As shown in Figure 5, the apparatus 500 includes a determining module 510, a selecting module 520, and a generating module 530. The determining module 510 is configured to determine the degree of difference between video frames in a target video for live streaming. The selecting module 520 is configured to select at least a subset of video frames from the target video based on the degree of difference. The generating module 530 is configured to generate live streaming content for live streaming based on the selected video frames.
[0059] In some embodiments, the determining module 510 is further configured to: determine the degree of difference between a candidate video frame in the target video and a reference video frame preceding the candidate video frame, based on the temporal order of the video frames in the target video.
[0060] In some embodiments, the determining module 510 is further configured to: determine the degree of difference between the candidate video frame and the reference video frame based on the pixel parameters of the candidate video frame and the pixel parameters of the reference video frame.
[0061] In some embodiments, the determining module 510 is further configured to: determine whether the resolution of the candidate video frame is the same as the resolution of the reference video frame; and in response to determining that the resolution of the candidate video frame is the same as the resolution of the reference video frame, determine the degree of difference between the candidate video frame and the reference video frame based on the pixel parameters of the candidate video frame and the pixel parameters of the reference video frame.
[0062] In some embodiments, the selection module 520 is further configured to select a candidate video frame from the target video in response to determining that the resolution of the candidate video frame is different from the resolution of the reference video frame.
[0063] In some embodiments, the determining module 510 is further configured to: determine the degree of difference between each pixel unit at corresponding positions in the candidate video frame and the reference video frame to obtain a set of degree of difference, the set of degree of difference including the degree of difference between each pixel unit at corresponding positions in the candidate video frame and the reference video frame; and determine the degree of difference between the candidate video frame and the reference video frame based on the set of degree of difference.
[0064] In some embodiments, the determining module 510 is further configured to determine the difference between the candidate video frame and the reference video frame based on the summation of each difference in the difference set.
[0065] In some embodiments, the selection module 520 is further configured to: select a candidate video frame from the target video in response to the difference between the candidate video frame in the target video and the reference video frame preceding the candidate video frame exceeding a threshold; and remove a candidate video frame from the target video in response to the difference between the candidate video frame in the target video and the reference video frame preceding the candidate video frame not exceeding a threshold.
[0066] The units and / or modules included in device 500 can be implemented in various ways, including software, hardware, firmware, or any combination thereof. In some embodiments, one or more units and / or modules can be implemented using software and / or firmware, such as machine-executable instructions stored on a storage medium. In addition to or as an alternative to machine-executable instructions, some or all of the units and / or modules in device 500 can be implemented at least partially by one or more hardware logic components. By way of example and not limitation, exemplary types of hardware logic components that can be used include field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), application-specific standard products (ASSPs), systems-on-chips (SoCs), complex programmable logic devices (CPLDs), and so on.
[0067] Figure 6 shows a block diagram of an electronic device 600 in which one or more embodiments of the present disclosure may be implemented. It should be understood that the electronic device 600 shown in Figure 6 is merely exemplary and should not constitute any limitation on the functionality and scope of the embodiments described herein. The electronic device 600 shown in Figure 6 may include or be implemented as the terminal device 120 of Figure 1, or the device 500 of Figure 5.
[0068] As shown in Figure 6, the electronic device 600 is in the form of a general-purpose electronic device. Components of the electronic device 600 may include, but are not limited to, one or more processors or processing units 610, memory 620, storage device 630, one or more communication units 640, one or more input devices 650, and one or more output devices 660. The processor 610 may be a physical or virtual processor and is capable of performing various processes according to computer-executable instructions stored in memory 620. In a multiprocessor system, multiple processors execute computer-executable instructions in parallel to improve the parallel processing capability of the electronic device 600.
[0069] Electronic device 600 typically includes multiple computer storage media. Such media can be any accessible media that is accessible to electronic device 600, including but not limited to volatile and non-volatile media, removable and non-removable media. Memory 620 can be volatile memory (e.g., registers, cache, random access memory (RAM)), non-volatile memory (e.g., read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory), or some combination thereof. Storage device 630 can be removable or non-removable media and can include machine-readable media, such as flash drives, disks, or any other media that can be used to store information and / or data and can be accessed within electronic device 600.
[0070] Electronic device 600 may further include additional removable / non-removable, volatile / non-volatile storage media. Although not shown in FIG. 6, disk drives for reading from or writing to removable, non-volatile disks (e.g., "floppy disks") and optical disk drives for reading from or writing to removable, non-volatile optical disks may be provided. In these cases, each drive may be connected to a bus (not shown) via one or more data media interfaces. Memory 620 may include computer program product 625 having one or more program modules configured to perform various methods or actions of various embodiments of the present disclosure.
[0071] The communication unit 640 enables communication with other electronic devices via a communication medium. Additionally, the functionality of the components of the electronic device 600 can be implemented using a single computing cluster or multiple computing machines capable of communicating via communication connections. Therefore, the electronic device 600 can operate in a networked environment using logical connections to one or more other servers, network personal computers (PCs), or another network node.
[0072] Input device 650 can be one or more input devices, such as a mouse, keyboard, trackball, etc. Output device 660 can be one or more output devices, such as a monitor, speaker, printer, etc. Electronic device 600 can also communicate with one or more external devices (not shown) via communication unit 640 as needed. These external devices include storage devices, display devices, etc., and can communicate with one or more devices that enable user interaction with electronic device 600, or with any device that enables electronic device 600 to communicate with one or more other electronic devices (e.g., network card, modem, etc.). Such communication can be performed via input / output (I / O) interface (not shown).
[0073] According to an exemplary implementation of this disclosure, a computer-readable storage medium is provided that stores computer-executable instructions thereon, wherein the computer-executable instructions are executed by a processor to implement the methods described above. According to an exemplary implementation of this disclosure, a computer program product is also provided, which is tangibly stored on a non-transitory computer-readable medium and includes computer-executable instructions, which are executed by a processor to implement the methods described above.
[0074] Various aspects of this disclosure are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatuses, devices, and computer program products implemented according to this disclosure. It should be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer-executable instructions.
[0075] These computer-executable instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing apparatus to produce a machine such that, when executed by the processor of the computer or other programmable data processing apparatus, they create means for implementing the functions / actions specified in one or more blocks of the flowchart and / or block diagram. These computer-executable instructions can also be stored in a computer-readable storage medium that causes a computer, programmable data processing apparatus, and / or other device to operate in a particular manner; thus, the computer-readable medium storing the instructions comprises an article of manufacture that includes instructions for implementing aspects of the functions / actions specified in one or more blocks of the flowchart and / or block diagram.
[0076] Computer-executable instructions can be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable data processing apparatus, or other device to produce a computer-implemented process, thereby causing the instructions that execute on the computer, other programmable data processing apparatus, or other device to perform the functions / actions specified in one or more boxes of a flowchart and / or block diagram.
[0077] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of this disclosure. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of an instruction, which contains one or more executable instructions for implementing the specified logical function. In some alternative implementations, the functions indicated in the blocks may occur in a different order than those indicated in the drawings. For example, two consecutive blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, may be implemented using a dedicated hardware-based system that performs the specified function or action, or using a combination of dedicated hardware and computer instructions.
[0078] Various implementations of this disclosure have been described above. These descriptions are exemplary and not exhaustive, nor are they limited to the disclosed implementations. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described implementations. The terminology used herein is chosen to best explain the principles, practical applications, or improvements to technology in the market, or to enable others skilled in the art to understand the various implementations disclosed herein.
Claims
1. A method for live streaming control, comprising: Determine the degree of difference between video frames in the target video used for live streaming; Based on the degree of difference, at least a portion of video frames are selected from the target video; as well as Based on the selected video frames, live content is generated for the live stream.
2. The method according to claim 1, wherein determining the degree of difference between video frames in the target video comprises: Based on the temporal order of the video frames in the target video, determine the degree of difference between the candidate video frame in the target video and the reference video frame preceding the candidate video frame.
3. The method according to claim 2, wherein determining the difference between the candidate video frame and the reference video frame includes: The degree of difference between the candidate video frame and the reference video frame is determined based on the pixel parameters of the candidate video frame and the pixel parameters of the reference video frame.
4. The method according to claim 3, wherein determining the difference between the candidate video frame and the reference video frame based on the pixel parameters of the candidate video frame and the pixel parameters of the reference video frame includes: Determine whether the resolution of the candidate video frame is the same as the resolution of the reference video frame; as well as In response to determining that the resolution of the candidate video frame is the same as that of the reference video frame, the degree of difference between the candidate video frame and the reference video frame is determined based on the pixel parameters of the candidate video frame and the pixel parameters of the reference video frame.
5. The method according to claim 4, further comprising: In response to determining that the resolution of the candidate video frame is different from the resolution of the reference video frame, the candidate video frame is selected from the target video.
6. The method of claim 2, wherein determining the degree of difference between the candidate video frame and the reference video frame comprises: The difference between each pixel unit at corresponding positions in the candidate video frame and the reference video frame is determined to obtain a difference set, the difference set including the difference between each pixel unit at corresponding positions in the candidate video frame and the reference video frame; as well as Based on the set of differences, the difference between the candidate video frame and the reference video frame is determined.
7. The method of claim 6, wherein determining the difference between the candidate video frame and the reference video frame based on the difference set comprises: The difference between the candidate video frame and the reference video frame is determined by summing the differences in the set of differences.
8. The method of claim 1, wherein selecting at least a subset of video frames from the target video based on the difference comprises: In response to a difference exceeding a threshold between a candidate video frame in the target video and a reference video frame preceding the candidate video frame, the candidate video frame is selected from the target video; and If the time difference between a candidate video frame in the target video and a reference video frame preceding the candidate video frame does not exceed a threshold, the candidate video frame is removed from the target video.
9. A device for live streaming control, comprising: The determination module is configured to determine the degree of difference between video frames in the target video used for live streaming; The selection module is configured to select at least a portion of video frames from the target video based on the difference degree. as well as The generation module is configured to generate live content for the live stream based on the selected video frames.
10. An electronic device, comprising: At least one processor; as well as At least one memory coupled to the at least one processor and storing instructions for execution by the at least one processor, the instructions causing the electronic device to perform the method according to any one of claims 1 to 8 when executed by the at least one processor.
11. A computer-readable storage medium having stored thereon computer-executable instructions that can be executed by a processor to implement the method according to any one of claims 1 to 8.
12. A computer program product comprising computer-executable instructions, wherein the computer-executable instructions, when executed by a processor, implement the method according to any one of claims 1 to 8.
Citation Information
Patent Citations
Live video processing method and device
CN106412626A
Live video stream pushing method and device, equipment and storage medium
CN117319659A
Live broadcast data optimization intelligent processing method
CN117499697A
Video capture and generation at variable frame rates
US20110064129A1