Live broadcast processing method and device, and storage medium
By caching and synthesizing video frames into a single target frame using a single rendering view, the method addresses the resource-intensive issues in multi-host live broadcasts, enhancing broadcast smoothness and performance.
Patent Information
- Application Number
- CN202310782876.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-06-28
- Publication Date
- 2024-12-31
AI Technical Summary
In multi-person live broadcast scenarios, the increasing number of hosts leads to significant performance pressure on live broadcast clients, affecting smoothness and client performance due to the use of multiple rendering views, GL rendering threads, frame buffer objects, and surface views, which occupy excessive resources.
A live broadcast processing method that caches the latest video frames of multiple streams and synthesizes them into a single target video frame using a single rendering view, reducing the need for multiple rendering views and threads, and optimizing resource usage.
This approach reduces performance pressure on the live broadcast client and improves the fluency of live broadcasts by minimizing resource usage and optimizing rendering processes.
Smart Images

Figure CN119233011A_ABST
Abstract
Description
Technical Field
[0001] The embodiments of the present disclosure relate to the field of computer and network communication technology, and in particular, to a live broadcast processing method, device, and storage medium. Background Art
[0002] During live streaming, multi-person connection is a method often used by anchors to interact with other anchors. Based on this method, the anchor in the current live broadcast room can invite other anchors to broadcast live together.
[0003] However, as the number of hosts in multi-person live broadcast scenarios increases, the live broadcast smoothness and live broadcast client performance are seriously affected and may cause severe heat. Summary of the invention
[0004] The embodiments of the present disclosure provide a live broadcast processing method, device and storage medium to reduce the performance pressure on the live broadcast client in a multi-person live broadcast scenario and improve the live broadcast fluency.
[0005] In a first aspect, an embodiment of the present disclosure provides a live broadcast processing method, which is applied to a first live broadcast and microphone connection client, and the method includes:
[0006] Receiving a live stream from a second live broadcast and microphone connection client, and caching the latest video frame of the live stream from the second live broadcast and microphone connection client;
[0007] When acquiring the current video frame of the first live broadcast and microphone connection client, reading the cached latest video frame;
[0008] Based on a single rendering view, synthesizing the current video frame and the latest video frame into a target video frame according to preset layout information;
[0009] The target video frame is displayed.
[0010] In a second aspect, an embodiment of the present disclosure provides a live broadcast processing device, which is applied to a first live broadcast and microphone connection client, and the device includes:
[0011] A receiving unit, configured to receive a live stream from a second live broadcast and microphone connection client;
[0012] A cache unit, configured to cache the latest video frame of the live stream of the second live broadcast and microphone connection client; and read the cached latest video frame when acquiring the current video frame of the first live broadcast and microphone connection client;
[0013] A rendering unit, configured to synthesize the current video frame and the latest video frame into a target video frame based on a single rendering view and according to preset layout information;
[0014] A display unit is used to display the target video frame.
[0015] In a third aspect, an embodiment of the present disclosure provides an electronic device, including: at least one processor and a memory;
[0016] The memory stores computer-executable instructions;
[0017] The at least one processor executes the computer-executable instructions stored in the memory, so that the at least one processor executes the live broadcast processing method described in the first aspect and various possible designs of the first aspect.
[0018] In a fourth aspect, an embodiment of the present disclosure provides a computer-readable storage medium, in which computer execution instructions are stored. When a processor executes the computer execution instructions, the live broadcast processing method described in the first aspect and various possible designs of the first aspect is implemented.
[0019] In a fifth aspect, an embodiment of the present disclosure provides a computer program product, including computer execution instructions. When a processor executes the computer execution instructions, the live broadcast processing method described in the first aspect and various possible designs of the first aspect is implemented.
[0020] The live broadcast processing method, device and storage medium provided by the embodiments of the present disclosure receive the live broadcast stream of the second live broadcast client through the first live broadcast client, and cache the latest video frame of the live broadcast stream of the second live broadcast client; when obtaining the current video frame of the first live broadcast client, read the cached latest video frame; based on a single rendering view, synthesize the current video frame and the latest video frame into a target video frame according to preset layout information; and display the target video frame. In a multi-person live broadcast scenario, by synthesizing the current video frame of the first live broadcast client and the latest video frames of the live broadcast streams of other second live broadcast clients into one target video frame, rendering can be achieved using only a single rendering view, which reduces resource usage, reduces the performance pressure on the live broadcast client, and improves the fluency of the live broadcast. BRIEF DESCRIPTION OF THE DRAWINGS
[0021] In order to more clearly illustrate the embodiments of the present disclosure or the technical solutions in the prior art, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are some embodiments of the present disclosure. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative labor.
[0022] Figure 1 A scene example diagram of a live broadcast processing method provided in an embodiment of the present disclosure;
[0023] Figure 2 A schematic diagram of a live broadcast processing method flow provided by an embodiment of the present disclosure;
[0024] Figure 3 A schematic diagram of a live broadcast processing method flow chart provided by another embodiment of the present disclosure;
[0025] Figure 4a A schematic diagram of an interface of a layout method provided by an embodiment of the present disclosure;
[0026] Figure 4b A schematic diagram of an interface of a layout method provided by another embodiment of the present disclosure;
[0027] Figure 5 A schematic diagram of aligning a layer corresponding to the latest video frame of each live stream with a preset list view control provided by an embodiment of the present disclosure;
[0028] Figure 6 A schematic diagram of a live broadcast processing method flow chart provided by another embodiment of the present disclosure;
[0029] Figure 7 A schematic diagram of a target template provided by an embodiment of the present disclosure;
[0030] Figure 8 A schematic diagram of a live broadcast processing method flow chart provided by another embodiment of the present disclosure;
[0031] Fig. 9 A schematic diagram of determining a target template provided by an embodiment of the present disclosure;
[0032] Fig.10 A structural block diagram of a live broadcast processing device provided in an embodiment of the present disclosure;
[0033] Fig.11 A schematic diagram of the hardware structure of an electronic device provided in one embodiment of the present disclosure. DETAILED DESCRIPTION
[0034] In order to make the purpose, technical solution and advantages of the embodiments of the present disclosure clearer, the technical solution in the embodiments of the present disclosure will be clearly and completely described below in conjunction with the drawings in the embodiments of the present disclosure. Obviously, the described embodiments are part of the embodiments of the present disclosure, not all of the embodiments. Based on the embodiments in the present disclosure, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of the present disclosure.
[0035] During live streaming, multi-person connection is a method often used by anchors to interact with other anchors. Based on this method, the anchor in the current live broadcast room can invite other anchors to broadcast live together.
[0036] In a multi-person live broadcast scenario, for any first live broadcast client, different rendering views, different GL rendering threads, different frame buffer objects, and different surface views will be used for the current video frame of the first live broadcast client and the video frame of the live broadcast stream of each other second live broadcast client. The rendering view, GL rendering thread frame buffer object, and surface view cannot be reused, thus occupying a large amount of resources of the live broadcast client. However, with the increase in the number of anchors in the multi-person live broadcast scenario, the live broadcast smoothness is seriously affected, the performance of the live broadcast client is seriously affected, and it may be seriously heated.
[0037] In order to solve the above technical problems, the present disclosure provides a live broadcast processing method, for any first live broadcast client in a multi-person live broadcast room, the live broadcast client receives the live broadcast stream of the second live broadcast client, and caches the latest video frame of each live broadcast stream; when obtaining the current video frame of the first live broadcast client, read the cached latest video frame; based on a single rendering view, synthesize the current video frame and the latest video frame into a target video frame according to preset layout information; and display the target video frame. In a multi-person live broadcast scenario, by synthesizing the current video frame of the first live broadcast client and the latest video frames of the live streams of other second live broadcast clients into one target video frame, rendering can be achieved using only a single rendering view, which reduces resource usage, reduces performance pressure on the live broadcast client, and improves live broadcast fluency.
[0038] The application scenarios of the live broadcast processing method provided by the present disclosure are as follows: Figure 1 As shown, the execution subject is the first live broadcast and microphone connection client. The first live broadcast and microphone connection client can receive the live streams of one or more second live broadcast and microphone connection clients, and cache the latest video frame of each live broadcast stream to the corresponding layer Layer, and the first live broadcast and microphone connection client can collect the current video frame as the initial layer OriginLayer, and then when the first live broadcast and microphone connection client collects the current video frame, it reads the latest video frame of each cached live stream, and synthesizes the current video frame and the latest video frame of each live stream into a target video frame for display.
[0039] It should be noted that the user information and data involved in this application are all information and data authorized by the user or fully authorized by all parties, and the collection, use and processing of relevant data must comply with the relevant laws, regulations and standards of relevant countries and regions, and provide corresponding operation entrances for users to choose to authorize or refuse.
[0040] The live broadcast processing method disclosed in the present invention will be described in detail below in conjunction with specific embodiments.
[0041] refer to Figure 2 , Figure 2 A flowchart of a live broadcast processing method provided by an embodiment of the present disclosure. The method of this embodiment can be applied to any live broadcast and microphone client (referred to as the first live broadcast and microphone client) in a multi-person live broadcast room. The live broadcast processing method includes:
[0042] S201: Receive a live stream from a second live broadcast and microphone connection client, and cache the latest video frame of the live stream from the second live broadcast and microphone connection client.
[0043] In this embodiment, in a multi-person live broadcast scenario, the first live broadcast client can invite one or more second live broadcast clients to connect to the microphone, so that the screen of the first live broadcast client and the screen of one or more second live broadcast clients can be viewed simultaneously in the interfaces of the first live broadcast client and the second live broadcast client. In a multi-person live broadcast scenario, the first live broadcast client can receive the live stream of one or more second live broadcast clients. Specifically, one or more second live broadcast clients can upload their own live streams to the server, and the server can send the live streams of one or more second live broadcast clients to the first live broadcast client.
[0044] Furthermore, the live stream of each second live broadcast client is parsed to obtain the video frames in the live stream, and the latest video frame is cached. Specifically, the latest video frame of each live stream can be drawn and cached in a corresponding layer.
[0045] S202: When obtaining the current video frame of the first live broadcast and microphone connection client, read the cached latest video frame.
[0046] In this embodiment, the first live broadcast and microphone client can collect the screen of the first live broadcast and microphone client side in real time to obtain the current video frame, and drive the synthesis of the current video frame and the latest video frame of the live stream of each second live broadcast and microphone client based on the current video frame. Since the current video frame collected by the first live broadcast and microphone client does not need to be transmitted through the network, the output is relatively stable. Therefore, the current video frame collected by the first live broadcast and microphone client can be driven to ensure the stability of the live screen. When the current video frame collected by the first live broadcast and microphone client is obtained, the latest video frame of each cached live stream can be read. Specifically, the latest video frame of each live stream can be read from each layer Layer for the synthesis of the target video frame.
[0047] S203: Based on a single rendering view, synthesize the current video frame and the latest video frame of each live stream into a target video frame according to preset layout information.
[0048] In this embodiment, after obtaining the current video frame collected by the first live broadcast and the latest video frame of the live stream of each second live broadcast and the microphone client, the current video frame collected by the first live broadcast and the latest video frame of each live stream can be synthesized and drawn on the same texture to obtain a target video frame, and a rendering view (RenderView) is shared to achieve rendering of the current video frame and the latest video frame of each live stream in one view, without using different rendering views for the current video frame of the first live broadcast and the video frame of the live stream of each second live broadcast and the microphone client, thereby reducing the performance pressure on the first live broadcast and the microphone client. In the synthesis process, how the current video frame and the latest video frame of each live stream are laid out can be determined according to the preset layout information.
[0049] In addition, based on a single rendering view, when the current video frame and the latest video frame of each live stream are synthesized into a target video frame according to preset layout information, only one GL rendering thread is needed, instead of using a GL rendering thread for the current video frame of the first live broadcast client and the video frame of the live stream of each second live broadcast client, which further reduces the performance pressure on the first live broadcast client.
[0050] Optionally, in this embodiment, the target video frame can be rendered into a single frame buffer object (Frame BufferObject, FBO), avoiding the use of different FBOs to cache the current video frame of the first live broadcast client and the video frame of the live stream of each second live broadcast client, further reducing the performance pressure on the first live broadcast client.
[0051] S204: Display the target video frame.
[0052] In this embodiment, after the target video frame is synthesized and rendered, it is displayed in the display interface of the first live broadcast and microphone connection client.
[0053] Since the current video frame of the first live broadcast client and the latest video frame of the live stream of each second live broadcast client are synthesized into a target video frame, in this embodiment, only one surface view SurfaceView is needed to display the target video frame, without the need to use different SurfaceViews to display the current video frame of the first live broadcast client and the video frame of the live stream of each second live broadcast client, which further reduces the performance pressure on the first live broadcast client.
[0054] Optionally, if the target video frames are rendered into a single FBO, the rendered target video frames cached in the FBO are displayed using a single surface view.
[0055] The live broadcast processing method provided in this embodiment receives the live broadcast stream of the second live broadcast client through the first live broadcast client, and caches the latest video frame of the live broadcast stream of the second live broadcast client; when obtaining the current video frame of the first live broadcast client, read the cached latest video frame; based on a single rendering view, synthesize the current video frame and the latest video frame into a target video frame according to preset layout information; and display the target video frame. In a multi-person live broadcast scenario, by synthesizing the current video frame of the first live broadcast client and the latest video frames of the live broadcast streams of other second live broadcast clients into a frame of target video frame, only a single rendering view is needed to achieve rendering, which reduces resource usage, reduces the performance pressure on the live broadcast client, and improves the fluency of the live broadcast.
[0056] Based on the above embodiments, Figure 3 As shown, the step of synthesizing the current video frame and the latest video frame into a target video frame according to the preset layout information in S203 includes:
[0057] S301. Determine the size and position of a first layer corresponding to the current video frame and a second layer corresponding to the latest video frame in the target video frame according to preset layout information.
[0058] S302: Draw the current video frame into the first layer, draw the latest video frames into the second layers respectively, and synthesize the first layer and the second layer into the target video frame.
[0059] In this embodiment, during the synthesis process, the current video frame of the first live broadcast and microphone client and the latest video frame of the live stream of each second live broadcast and microphone client can be determined according to the preset layout information. For example, Figure 4a As shown, the first layer (Layer) of the current video frame of the first live broadcast and microphone client is located on the left side of the target video frame, displaying the picture of the current video frame of the first live broadcast and microphone client, and the second layer (Layer) of the latest video frame of the live stream of each second live broadcast and microphone client is arranged in a row vertically and located on the right side of the target video frame, displaying the picture of each second live broadcast and microphone client; for another example, Figure 4bAs shown, the first layer (Layer) of the current video frame of the first live broadcast and microphone connection client is displayed in full screen in the target video frame, showing the picture of the current video frame of the first live broadcast and microphone connection client, and the second layer (Layer) of the latest video frame of the live stream of each second live broadcast and microphone connection client is located on the current video frame of the first live broadcast and microphone connection client in the form of a floating window, and the picture of each second live broadcast and microphone connection client is suspended above the picture of the current video frame; of course, other layout methods can also be used. In each layout method, the size and position of the first layer corresponding to the current video frame and the second layer corresponding to the latest video frame of each live stream can be determined according to the preset layout information in the target video frame, and then the current video frame is drawn to the first layer corresponding to the current video frame, and the latest video frame of each live stream is drawn to the second layer corresponding to the latest video frame of each live stream, so that each layer is synthesized into the target video frame.
[0060] Optionally, before synthesizing the current video frame and the latest video frame into a target video frame based on a single rendering view according to preset layout information in S203, the method further includes:
[0061] Get the size and position of each view control in the preset list view control, use the size and position of any view control as the size and position of the second layer corresponding to the latest video frame of the live stream of any second live broadcast client in the target video frame, and obtain the preset layout information to align the second layer corresponding to the latest video frame of the live stream with the view control in the preset list view control.
[0062] In this embodiment, since the target video frame ultimately adopts a single surface view, and each live stream in the target video frame also needs to perform UI interaction, a preset list view control (RecyclerView) can be set in the display interface of the multi-person live broadcast scene. The preset list view control includes multiple view controls (ViewHolder), such as Figure 5The preset list view control RecyclerView shown is a nine-grid list view control, which includes nine view controls ViewHolders. The layer corresponding to the latest video frame of each second live broadcast and microphone client live stream is aligned with each view control ViewHolder, so that the corresponding live stream can be interacted with through each view control ViewHolder. In order to achieve the alignment of the second layer corresponding to the latest video frame of each second live broadcast and microphone client live stream with each view control, the size and position of each view control in the preset list view control can be obtained, and the size and position of each view control can be used as the size and position of the layer corresponding to the latest video frame of each live stream in the target video frame, thereby serving as the preset layout information. Then, during synthesis, the current video frame and the latest video frame of each second live broadcast and microphone client live stream are synthesized into a target video frame according to the preset layout information, so that the second layer corresponding to the latest video frame of each live stream in the target video frame is aligned with each view control in the preset list view control.
[0063] Based on any of the above embodiments, during synthesis, the current video frame of the first live broadcast and microphone client and the latest video frame of the live broadcast stream of the second live broadcast and microphone client may have a certain overlapping area, so it is necessary to set the display level value, with the highest level placed at the top and the lowest level placed at the bottom. If there is an overlapping area, the video frame with a higher level covers the video frame with a lower level. Figure 6 As shown, in S203, synthesizing the current video frame and the latest video frame into a target video frame according to the preset layout information includes:
[0064] S401, determining a target template for template testing in a fragment shader rendering pipeline, wherein a depth value at an area corresponding to the current video frame in the target template is a level value corresponding to the current video frame, and a depth value at an area corresponding to the latest video frame is a level value corresponding to the latest video frame;
[0065] S402 , performing a template test according to the level value of the current video frame, the level value of the latest video frame, and the target template, and synthesizing the current video frame and the latest video frame based on the template test result.
[0066] In this embodiment, the rendering pipeline of the OpenGL fragment shader includes a stencil test link. The stencil test determines whether a fragment is retained or discarded based on the template. If a fragment fails the stencil test, the fragment is discarded, that is, the fragment is not drawn. If a fragment passes the stencil test, the fragment is retained. In this embodiment, a target template for stencil testing in the fragment shader rendering pipeline can be pre-configured. The depth value of the corresponding area of the current video frame and the latest video frame of each second live broadcast client live stream in the target template is the layer value zOrder corresponding to each area, such as Figure 7 As shown, the higher the level value zOrder, the larger the number, that is, the higher the depth value. For example, the latest video frame of the live stream of the second live broadcast client is suspended above the current video frame of the first live broadcast client, that is, the level value zOrder of the latest video frame of the live stream of the second live broadcast client is higher than the level value zOrder of the current video frame of the first live broadcast client. The level value zOrder of the latest video frame of the live stream of the second live broadcast client can be set to 3, and the level value zOrder of the current video frame of the first live broadcast client can be set to 2. In the target template, the depth value of each position at the area corresponding to the latest video frame of the live stream (in the box) is 3, and the depth value of each position at the area not covered by the current video frame of the first live broadcast client is 2.
[0067] When synthesizing the current video frame of the first live broadcast client and the latest video frame of the live broadcast stream of the second live broadcast client, a template test is performed according to the level value of the current video frame, the level value of the latest video frame and the target template, and the level value of the current video frame and the position that passes the template test in the latest video frame are rendered and drawn, and the position that fails the template test is not rendered and drawn, so as to finally obtain the synthesized target video frame.
[0068] The specific process of the template test may include:
[0069] Determine the level value at any first position of the current video frame as the actual depth value at the first position, compare the actual depth value at the first position of the current video frame with the depth value at the corresponding position in the target template, if the actual depth value at the first position is higher than or equal to the depth value at the corresponding position in the target template, then the template test of the first position passes, and the first position of the current video frame can be rendered; and if the actual depth value at the first position is lower than the depth value at the corresponding position in the target template, then the template test of the first position fails, and the first position of the current video frame is not rendered;
[0070] Determine the level value at any second position of the latest video frame of the live stream of any second live broadcast client as the actual depth value at the second position, and compare the actual depth value at the second position of the latest video frame with the depth value at the corresponding position in the target template. If the actual depth value at the second position is higher than or equal to the depth value at the corresponding position in the target template, the template test of the second position passes, and the second position of the latest video frame can be rendered; if the actual depth value at the second position is lower than the depth value at the corresponding position in the target template, the template test of the second position fails, and the second position of the latest video frame is not rendered.
[0071] By rendering all first positions that pass the template test in the current video frame and all second positions that pass the template test in the latest video frame of each live stream, the hierarchical relationship during synthesis is achieved. After the positions that pass the template test in the current video frame and the latest video frame of each second live broadcast client live stream are rendered, the synthesized target video frame is obtained.
[0072] Based on the above embodiment, if the level value of the latest video frame of any live stream is higher than the level value of the current video frame, then S401 determines the target template for template testing in the fragment shader rendering pipeline, such as Figure 8 As shown, it may include:
[0073] S501, setting the depth values at all positions of the target template to the level values of the current video frame;
[0074] S502: According to the level value of the latest video frame and the preset layout information, update the depth value of the area corresponding to the latest video frame in the target template to the level value of the latest video frame.
[0075] In this embodiment, the preset level value zOrder of the current video frame is obtained. Assuming that the level value zOrder of the current video frame is 2, the depth values at all positions of the target template are set to the level value of the current video frame, that is, the depth values at all positions of the target template are 2. Fig. 9As shown on the upper side; obtain the preset level value zOrder of the latest video frame of the live stream of any second live broadcast client connected to the microphone. Assume that the level value zOrder of the latest video frame of the live stream of any second live broadcast client connected to the microphone is 3, and the position and size of the latest video frame of the live stream in the target video frame can be obtained from the preset layout information. Therefore, the corresponding area of the latest video frame of the live stream of any second live broadcast client connected to the microphone in the target template can be determined, that is, the box area in the figure. Further, the depth value at the corresponding area of the latest video frame of the live stream of any second live broadcast client connected to the microphone in the target template is updated to the level value of the latest video frame of the live stream of the second live broadcast client connected to the microphone, that is, the depth value of each position in the box area of the target template is updated to 3, as shown in FIG. Fig. 9 As shown below, the target template is finally obtained.
[0076] Among them, the target template is configured with a buffer (cache), and S501-S502 are implemented in the buffer of the target template, that is, the depth values at all positions of the target template in the buffer of the target template are set to the level values of the current video frame; in the buffer of the target template, the depth value at the corresponding area of the latest video frame of the live stream of any second live broadcast client in the target template is updated to the level value of the latest video frame of the live stream of any second live broadcast client.
[0077] Corresponding to the live broadcast processing method in the above embodiment, Fig.10 This is a structural block diagram of a live broadcast processing device provided by an embodiment of the present disclosure. For ease of explanation, only the parts related to the embodiment of the present disclosure are shown. Fig.10 The live broadcast processing device 600 includes: a receiving unit 601, a cache unit 602, a rendering unit 603, and a display unit 604.
[0078] The receiving unit 601 is used to receive the live stream of the second live broadcast and microphone connection client;
[0079] The cache unit 602 is used to cache the latest video frame of the live stream of the second live broadcast and microphone connection client; when obtaining the current video frame of the first live broadcast and microphone connection client, read the cached latest video frame;
[0080] A rendering unit 603, configured to synthesize the current video frame and the latest video frame into a target video frame based on a single rendering view and according to preset layout information;
[0081] The display unit 604 is configured to display the target video frame.
[0082] In one or more embodiments of the present disclosure, when the rendering unit 603 synthesizes the current video frame and the latest video frame into a target video frame according to preset layout information, it is configured to:
[0083] Determine the size and position of the first layer corresponding to the current video frame and the second layer corresponding to the latest video frame in the target video frame according to the preset layout information;
[0084] The current video frame is drawn into the first layer, the latest video frames are drawn into the second layers respectively, and the first layer and the second layer are synthesized into the target video frame.
[0085] In one or more embodiments of the present disclosure, when the rendering unit 603 synthesizes the current video frame and the latest video frame into a target video frame according to preset layout information, it is configured to:
[0086] Determine a target template for template testing in a fragment shader rendering pipeline, wherein a depth value at an area corresponding to the current video frame in the target template is a level value corresponding to the current video frame, and a depth value at an area corresponding to the latest video frame is a level value corresponding to the latest video frame;
[0087] A template test is performed according to the level value of the current video frame, the level value of the latest video frame, and the target template, and the current video frame and the latest video frame are synthesized based on the template test result.
[0088] In one or more embodiments of the present disclosure, when performing the template test according to the level value of the current video frame, the level value of the latest video frame of each live stream, and the target template, the rendering unit 603 is used to:
[0089] Determine the level value at any first position of the current video frame as the actual depth value at the first position, compare the actual depth value at the first position of the current video frame with the depth value at the corresponding position in the target template, and if the actual depth value at the first position is higher than or equal to the depth value at the corresponding position in the target template, the template test of the first position passes;
[0090] The level value at any second position of the latest video frame is determined as the actual depth value at the second position, and the actual depth value at the second position of the latest video frame is compared with the depth value at the corresponding position in the target template. If the actual depth value at the second position is higher than or equal to the depth value at the corresponding position in the target template, the template test of the second position passes.
[0091] In one or more embodiments of the present disclosure, when synthesizing the current video frame and the latest video frame based on the template test result, the rendering unit 603 is used to:
[0092] If the template test of any first position of the current video frame passes, rendering the first position of the current video frame;
[0093] If the template test of any second position of the latest video frame passes, rendering the second position of the latest video frame;
[0094] After rendering is completed at the positions that pass the template test in the current video frame and the latest video frame, the synthesized target video frame is obtained.
[0095] In one or more embodiments of the present disclosure, the level value of the latest video frame is higher than the level value of the current video frame.
[0096] In one or more embodiments of the present disclosure, when determining a target template for template testing in a fragment shader rendering pipeline, the rendering unit 603 is configured to:
[0097] Setting the depth values at all positions of the target template to the level values of the current video frame;
[0098] According to the level value of the latest video frame and the preset layout information, the depth value at the area corresponding to the latest video frame in the target template is updated to the level value of the latest video frame.
[0099] In one or more embodiments of the present disclosure, before the rendering unit 603 synthesizes the current video frame and the latest video frame of each live stream into a target video frame based on a single rendering view and according to preset layout information, it is further configured to:
[0100] Get the size and position of each view control in the preset list view control, use the size and position of any view control as the size and position of the second layer corresponding to the latest video frame in the target video frame, and obtain the preset layout information to align the second layer corresponding to the latest video frame with any view control in the preset list view control.
[0101] In one or more embodiments of the present disclosure, when the rendering unit 603 synthesizes the current video frame and the latest video frame into a target video frame based on a single rendering view and according to preset layout information, it is configured to:
[0102] Based on a single rendering view and a single rendering thread, the current video frame and the latest video frame are synthesized into a target video frame according to preset layout information.
[0103] In one or more embodiments of the present disclosure, when displaying the target video frame, the display unit 604 is used to:
[0104] The target video frame is displayed using a single surface view.
[0105] In one or more embodiments of the present disclosure, when the rendering unit 603 synthesizes the current video frame and the latest video frame into a target video frame based on a single rendering view and according to preset layout information, it is further configured to:
[0106] Rendering the target video frame into a single frame buffer object;
[0107] When the display unit 604 displays the target video frame using a single surface view, it is configured to:
[0108] The rendered target video frames cached in the frame buffer object are displayed using a single surface view.
[0109] The live broadcast processing device provided in this embodiment can be used to execute the technical solution of the above-mentioned method embodiment. Its implementation principle and technical effects are similar, and this embodiment will not be repeated here.
[0110] refer to Fig.11 , which shows a schematic diagram of the structure of an electronic device 700 suitable for implementing the embodiment of the present disclosure, and the electronic device 700 may be a terminal device or a server. The terminal device may include but is not limited to mobile terminals such as mobile phones, notebook computers, digital broadcast receivers, personal digital assistants (PDAs), tablet computers (Portable Android Devices, PADs), portable multimedia players (PMPs), vehicle terminals (such as vehicle navigation terminals), etc., and fixed terminals such as digital TVs, desktop computers, etc. Fig.11 The electronic device shown is only an example and should not bring any limitation to the functions and scope of use of the embodiments of the present disclosure.
[0111] like Fig.11 As shown, the electronic device 700 may include a processing device (e.g., a central processing unit, a graphics processing unit, etc.) 701, which can perform various appropriate actions and processes according to a program stored in a read-only memory (ROM) 702 or a program loaded from a storage device 708 to a random access memory (RAM) 703. Various programs and data required for the operation of the electronic device 700 are also stored in the RAM 703. The processing device 701, the ROM 702, and the RAM 703 are connected to each other via a bus 704. An input / output (I / O) interface 705 is also connected to the bus 704.
[0112] Typically, the following devices may be connected to the I / O interface 705: input devices 706 including, for example, a touch screen, a touch pad, a keyboard, a mouse, a camera, a microphone, an accelerometer, a gyroscope, etc.; output devices 707 including, for example, a liquid crystal display (LCD), a speaker, a vibrator, etc.; storage devices 708 including, for example, a magnetic tape, a hard disk, etc.; and communication devices 709. The communication devices 709 may allow the electronic device 700 to communicate with other devices wirelessly or by wire to exchange data. Although Fig.11 The electronic device 700 is shown with various devices, but it should be understood that it is not required to implement or possess all the devices shown. More or fewer devices may be implemented or possessed instead.
[0113] In particular, according to an embodiment of the present disclosure, the process described above with reference to the flowchart can be implemented as a computer software program. For example, an embodiment of the present disclosure includes a computer program product, which includes a computer program carried on a computer-readable medium, and the computer program includes a program code for executing the method shown in the flowchart. In such an embodiment, the computer program can be downloaded and installed from a network through a communication device 709, or installed from a storage device 708, or installed from a ROM 702. When the computer program is executed by the processing device 701, the above-mentioned functions defined in the method of the embodiment of the present disclosure are executed.
[0114] It should be noted that the computer-readable medium disclosed above may be a computer-readable signal medium or a computer-readable storage medium or any combination of the above two. The computer-readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device or device, or any combination of the above. More specific examples of computer-readable storage media may include, but are not limited to: an electrical connection with one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above. In the present disclosure, a computer-readable storage medium may be any tangible medium containing or storing a program that may be used by or in combination with an instruction execution system, device or device. In the present disclosure, a computer-readable signal medium may include a data signal propagated in a baseband or as part of a carrier wave, in which a computer-readable program code is carried. This propagated data signal may take a variety of forms, including but not limited to an electromagnetic signal, an optical signal, or any suitable combination of the above. The computer readable signal medium may also be any computer readable medium other than a computer readable storage medium, which may send, propagate or transmit a program for use by or in conjunction with an instruction execution system, apparatus or device. The program code contained on the computer readable medium may be transmitted using any suitable medium, including but not limited to: wires, optical cables, RF (radio frequency), etc., or any suitable combination of the above.
[0115] The computer-readable medium may be included in the electronic device, or may exist independently without being incorporated into the electronic device.
[0116] The computer-readable medium carries one or more programs. When the one or more programs are executed by the electronic device, the electronic device executes the method shown in the above embodiment.
[0117] Computer program code for performing the operations of the present disclosure may be written in one or more programming languages or a combination thereof, including object-oriented programming languages, such as Java, Smalltalk, C++, and conventional procedural programming languages, such as "C" or similar programming languages. The program code may be executed entirely on the user's computer, partially on the user's computer, as an independent software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., via the Internet using an Internet service provider).
[0118] The flow chart and block diagram in the accompanying drawings illustrate the possible architecture, function and operation of the system, method and computer program product according to various embodiments of the present disclosure. In this regard, each square box in the flow chart or block diagram can represent a module, a program segment or a part of a code, and the module, the program segment or a part of the code contains one or more executable instructions for realizing the specified logical function. It should also be noted that in some implementations as replacements, the functions marked in the square box can also occur in a sequence different from that marked in the accompanying drawings. For example, two square boxes represented in succession can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each square box in the block diagram and / or flow chart, and the combination of the square boxes in the block diagram and / or flow chart can be implemented with a dedicated hardware-based system that performs a specified function or operation, or can be implemented with a combination of dedicated hardware and computer instructions.
[0119] The units involved in the embodiments described in the present disclosure may be implemented by software or hardware. The name of a unit does not limit the unit itself in some cases. For example, the first acquisition unit may also be described as a "unit for acquiring at least two Internet Protocol addresses".
[0120] The functions described above herein may be performed at least in part by one or more hardware logic components. For example, without limitation, exemplary types of hardware logic components that may 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 the like.
[0121] In the context of the present disclosure, a machine-readable medium may be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, device, or equipment. A machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium may include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or equipment, or any suitable combination of the foregoing. A more specific example of a machine-readable storage medium may include an electrical connection based on one or more lines, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.
[0122] In a first aspect, according to one or more embodiments of the present disclosure, a live broadcast processing method is provided, which is applied to a first live broadcast and microphone connection client, and the method includes:
[0123] Receiving a live stream from a second live broadcast and microphone connection client, and caching the latest video frame of the live stream from the second live broadcast and microphone connection client;
[0124] When acquiring the current video frame of the first live broadcast and microphone connection client, reading the cached latest video frame;
[0125] Based on a single rendering view, synthesizing the current video frame and the latest video frame into a target video frame according to preset layout information;
[0126] The target video frame is displayed.
[0127] According to one or more embodiments of the present disclosure, synthesizing the current video frame and the latest video frame into a target video frame according to preset layout information includes:
[0128] Determine the size and position of the first layer corresponding to the current video frame and the second layer corresponding to the latest video frame in the target video frame according to the preset layout information;
[0129] The current video frame is drawn into the first layer, the latest video frames are drawn into the second layers respectively, and the first layer and the second layer are synthesized into the target video frame.
[0130] According to one or more embodiments of the present disclosure, synthesizing the current video frame and the latest video frame into a target video frame according to preset layout information includes:
[0131] Determine a target template for template testing in a fragment shader rendering pipeline, wherein a depth value at an area corresponding to the current video frame in the target template is a level value corresponding to the current video frame, and a depth value at an area corresponding to the latest video frame is a level value corresponding to the latest video frame;
[0132] A template test is performed according to the level value of the current video frame, the level value of the latest video frame, and the target template, and the current video frame and the latest video frame are synthesized based on the template test result.
[0133] According to one or more embodiments of the present disclosure, performing a template test according to the level value of the current video frame, the level value of the latest video frame, and the target template includes:
[0134] Determine the level value at any first position of the current video frame as the actual depth value at the first position, compare the actual depth value at the first position of the current video frame with the depth value at the corresponding position in the target template, and if the actual depth value at the first position is higher than or equal to the depth value at the corresponding position in the target template, the template test of the first position passes;
[0135] The level value at any second position of the latest video frame is determined as the actual depth value at the second position, and the actual depth value at the second position of the latest video frame is compared with the depth value at the corresponding position in the target template. If the actual depth value at the second position is higher than or equal to the depth value at the corresponding position in the target template, the template test of the second position passes.
[0136] According to one or more embodiments of the present disclosure, synthesizing the current video frame and the latest video frame based on the template test result includes:
[0137] If the template test of any first position of the current video frame passes, rendering the first position of the current video frame;
[0138] If the template test of any second position of the latest video frame passes, rendering the second position of the latest video frame;
[0139] After rendering is completed at the positions that pass the template test in the current video frame and the latest video frame, the synthesized target video frame is obtained.
[0140] According to one or more embodiments of the present disclosure, the level value of the latest video frame is higher than the level value of the current video frame.
[0141] According to one or more embodiments of the present disclosure, determining a target template for template testing in a fragment shader rendering pipeline includes:
[0142] Setting the depth values at all positions of the target template to the level values of the current video frame;
[0143] According to the level value of the latest video frame and the preset layout information, the depth value at the area corresponding to the latest video frame in the target template is updated to the level value of the latest video frame.
[0144] According to one or more embodiments of the present disclosure, before synthesizing the current video frame and the latest video frame into a target video frame according to preset layout information based on a single rendering view, the method further includes:
[0145] Get the size and position of each view control in the preset list view control, use the size and position of any view control as the size and position of the second layer corresponding to the latest video frame in the target video frame, and obtain the preset layout information to align the second layer corresponding to the latest video frame with any view control in the preset list view control.
[0146] According to one or more embodiments of the present disclosure, the synthesizing the current video frame and the latest video frame into a target video frame based on a single rendering view and according to preset layout information includes:
[0147] Based on a single rendering view and a single rendering thread, the current video frame and the latest video frame are synthesized into a target video frame according to preset layout information.
[0148] According to one or more embodiments of the present disclosure, displaying the target video frame includes:
[0149] The target video frame is displayed using a single surface view.
[0150] According to one or more embodiments of the present disclosure, the synthesizing the current video frame and the latest video frame into a target video frame based on a single rendering view and according to preset layout information further includes:
[0151] Rendering the target video frame into a single frame buffer object;
[0152] The adopting a single surface view to display the target video frame comprises:
[0153] The rendered target video frames cached in the frame buffer object are displayed using a single surface view.
[0154] In a second aspect, according to one or more embodiments of the present disclosure, a live broadcast processing device is provided, which is applied to a first live broadcast and microphone connection client, and the device includes:
[0155] A receiving unit, configured to receive a live stream from a second live broadcast and microphone connection client;
[0156] A cache unit, configured to cache the latest video frame of the live stream of the second live broadcast and microphone connection client; and read the cached latest video frame when acquiring the current video frame of the first live broadcast and microphone connection client;
[0157] A rendering unit, configured to synthesize the current video frame and the latest video frame into a target video frame based on a single rendering view and according to preset layout information;
[0158] A display unit is used to display the target video frame.
[0159] According to one or more embodiments of the present disclosure, when the rendering unit synthesizes the current video frame and the latest video frame into a target video frame according to preset layout information, it is configured to:
[0160] Determine the size and position of the first layer corresponding to the current video frame and the second layer corresponding to the latest video frame in the target video frame according to the preset layout information;
[0161] The current video frame is drawn into the first layer, the latest video frames are drawn into the second layers respectively, and the first layer and the second layer are synthesized into the target video frame.
[0162] According to one or more embodiments of the present disclosure, when the rendering unit synthesizes the current video frame and the latest video frame into a target video frame according to preset layout information, it is configured to:
[0163] Determine a target template for template testing in a fragment shader rendering pipeline, wherein a depth value at an area corresponding to the current video frame in the target template is a level value corresponding to the current video frame, and a depth value at an area corresponding to the latest video frame is a level value corresponding to the latest video frame;
[0164] A template test is performed according to the level value of the current video frame, the level value of the latest video frame, and the target template, and the current video frame and the latest video frame are synthesized based on the template test result.
[0165] According to one or more embodiments of the present disclosure, when the rendering unit performs a template test according to the level value of the current video frame, the level value of the latest video frame of each live stream, and the target template, it is configured to:
[0166] Determine the level value at any first position of the current video frame as the actual depth value at the first position, compare the actual depth value at the first position of the current video frame with the depth value at the corresponding position in the target template, and if the actual depth value at the first position is higher than or equal to the depth value at the corresponding position in the target template, the template test of the first position passes;
[0167] The level value at any second position of the latest video frame is determined as the actual depth value at the second position, and the actual depth value at the second position of the latest video frame is compared with the depth value at the corresponding position in the target template. If the actual depth value at the second position is higher than or equal to the depth value at the corresponding position in the target template, the template test of the second position passes.
[0168] According to one or more embodiments of the present disclosure, when the rendering unit synthesizes the current video frame and the latest video frame based on the template test result, it is used to:
[0169] If the template test of any first position of the current video frame passes, rendering the first position of the current video frame;
[0170] If the template test of any second position of the latest video frame passes, rendering the second position of the latest video frame;
[0171] After rendering is completed at the positions that pass the template test in the current video frame and the latest video frame, the synthesized target video frame is obtained.
[0172] According to one or more embodiments of the present disclosure, the level value of the latest video frame is higher than the level value of the current video frame.
[0173] According to one or more embodiments of the present disclosure, when determining a target template for template testing in a fragment shader rendering pipeline, the rendering unit is configured to:
[0174] Setting the depth values at all positions of the target template to the level values of the current video frame;
[0175] According to the level value of the latest video frame and the preset layout information, the depth value at the area corresponding to the latest video frame in the target template is updated to the level value of the latest video frame.
[0176] According to one or more embodiments of the present disclosure, before the rendering unit synthesizes the current video frame and the latest video frame of each live stream into a target video frame based on a single rendering view and according to preset layout information, it is further configured to:
[0177] Get the size and position of each view control in the preset list view control, use the size and position of any view control as the size and position of the second layer corresponding to the latest video frame in the target video frame, and obtain the preset layout information to align the second layer corresponding to the latest video frame with any view control in the preset list view control.
[0178] According to one or more embodiments of the present disclosure, when the rendering unit synthesizes the current video frame and the latest video frame into a target video frame according to preset layout information based on a single rendering view, it is configured to:
[0179] Based on a single rendering view and a single rendering thread, the current video frame and the latest video frame are synthesized into a target video frame according to preset layout information.
[0180] According to one or more embodiments of the present disclosure, when displaying the target video frame, the display unit is used to:
[0181] The target video frame is displayed using a single surface view.
[0182] According to one or more embodiments of the present disclosure, when the rendering unit synthesizes the current video frame and the latest video frame into a target video frame based on a single rendering view and according to preset layout information, it is further configured to:
[0183] Rendering the target video frame into a single frame buffer object;
[0184] When the display unit displays the target video frame using a single surface view, the display unit is used to:
[0185] The rendered target video frames cached in the frame buffer object are displayed using a single surface view.
[0186] In a third aspect, according to one or more embodiments of the present disclosure, there is provided an electronic device, comprising: at least one processor and a memory;
[0187] The memory stores computer-executable instructions;
[0188] The at least one processor executes the computer-executable instructions stored in the memory, so that the at least one processor executes the live broadcast processing method described in the first aspect and various possible designs of the first aspect.
[0189] In a fourth aspect, according to one or more embodiments of the present disclosure, a computer-readable storage medium is provided, wherein the computer-readable storage medium stores computer execution instructions. When a processor executes the computer execution instructions, the live broadcast processing method described in the first aspect and various possible designs of the first aspect is implemented.
[0190] In a fifth aspect, according to one or more embodiments of the present disclosure, a computer program product is provided, comprising computer execution instructions. When a processor executes the computer execution instructions, the live broadcast processing method as described in the first aspect and various possible designs of the first aspect is implemented.
[0191] The above description is only a preferred embodiment of the present disclosure and an explanation of the technical principles used. Those skilled in the art should understand that the scope of disclosure involved in the present disclosure is not limited to the technical solutions formed by a specific combination of the above technical features, but should also cover other technical solutions formed by any combination of the above technical features or their equivalent features without departing from the above disclosed concept. For example, the above features are replaced with the technical features with similar functions disclosed in the present disclosure (but not limited to) by each other to form a technical solution.
[0192] In addition, although each operation is described in a specific order, this should not be understood as requiring these operations to be performed in the specific order shown or in a sequential order. Under certain circumstances, multitasking and parallel processing may be advantageous. Similarly, although some specific implementation details are included in the above discussion, these should not be interpreted as limiting the scope of the present disclosure. Some features described in the context of a separate embodiment can also be implemented in a single embodiment in combination. On the contrary, the various features described in the context of a single embodiment can also be implemented in multiple embodiments individually or in any suitable sub-combination mode.
[0193] Although the subject matter has been described in language specific to structural features and / or methodological logical actions, it should be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or actions described above. On the contrary, the specific features and actions described above are merely example forms of implementing the claims.
Claims
1. A live broadcast processing method, characterized in that: Applied to the first live broadcast and microphone connection client, the method includes: Receiving a live stream from a second live broadcast and microphone connection client, and caching the latest video frame of the live stream from the second live broadcast and microphone connection client; When acquiring the current video frame of the first live broadcast and microphone connection client, reading the cached latest video frame; Based on a single rendering view, synthesizing the current video frame and the latest video frame into a target video frame according to preset layout information; The target video frame is displayed.
2. The method according to claim 1, characterized in that The synthesizing the current video frame and the latest video frame into a target video frame according to the preset layout information includes: Determine the size and position of the first layer corresponding to the current video frame and the second layer corresponding to the latest video frame in the target video frame according to the preset layout information; The current video frame is drawn into the first layer, the latest video frames are drawn into the second layers respectively, and the first layer and the second layer are synthesized into the target video frame.
3. The method according to claim 1, characterized in that: The synthesizing the current video frame and the latest video frame into a target video frame according to the preset layout information includes: Determine a target template for template testing in a fragment shader rendering pipeline, wherein a depth value at an area corresponding to the current video frame in the target template is a level value of the current video frame, and a depth value at an area corresponding to the latest video frame is a level value of the latest video frame; A template test is performed according to the level value of the current video frame, the level value of the latest video frame, and the target template, and the current video frame and the latest video frame are synthesized based on the template test result.
4. The method according to claim 3, characterized in that The performing a template test according to the level value of the current video frame, the level value of the latest video frame and the target template includes: Determine the level value at any first position of the current video frame as the actual depth value at the first position of the current video frame, compare the actual depth value at the first position with the depth value at the corresponding position in the target template, and if the actual depth value at the first position is higher than or equal to the depth value at the corresponding position in the target template, the template test of the first position passes; The level value at any second position of the latest video frame is determined as the actual depth value at the second position of the latest video frame, and the actual depth value at the second position is compared with the depth value at the corresponding position in the target template. If the actual depth value at the second position is higher than or equal to the depth value at the corresponding position in the target template, the template test of the second position passes.
5. The method according to claim 4, characterized in that The synthesizing the current video frame and the latest video frame based on the template test result includes: If the template test of any first position of the current video frame passes, rendering the first position of the current video frame; If the template test of any second position of the latest video frame passes, rendering the second position of the latest video frame; After rendering is completed at the positions that pass the template test in the current video frame and the latest video frame, the synthesized target video frame is obtained.
6. The method according to any one of claims 3 to 5, characterized in that: The level value of the latest video frame is higher than the level value of the current video frame.
7. The method according to claim 6, characterized in that The step of determining a target template for template testing in a fragment shader rendering pipeline includes: Setting the depth values at all positions of the target template to the level values of the current video frame; According to the level value of the latest video frame and the preset layout information, the depth value at the area corresponding to the latest video frame in the target template is updated to the level value of the latest video frame.
8. The method according to claim 1, characterized in that Before synthesizing the current video frame and the latest video frame into a target video frame based on a single rendering view according to preset layout information, the method further includes: Get the size and position of each view control in the preset list view control, use the size and position of any view control as the size and position of the second layer corresponding to the latest video frame in the target video frame, and obtain the preset layout information to align the second layer corresponding to the latest video frame with any view control in the preset list view control.
9. The method according to any one of claims 1 to 5, characterized in that: The synthesizing the current video frame and the latest video frame into a target video frame based on a single rendering view and according to preset layout information includes: Based on a single rendering view and a single rendering thread, the current video frame and the latest video frame are synthesized into a target video frame according to preset layout information.
10. The method according to claim 9, characterized in that The displaying of the target video frame comprises: The target video frame is displayed using a single surface view.
11. The method according to claim 10, characterized in that The method of synthesizing the current video frame and the latest video frame into a target video frame based on a single rendering view according to preset layout information further includes: Rendering the target video frame into a single frame buffer object; The adopting a single surface view to display the target video frame comprises: The rendered target video frames cached in the frame buffer object are displayed using a single surface view.
12. A live broadcast processing device, characterized in that: Applied to the first live broadcast and microphone connection client, the device includes: A receiving unit, configured to receive a live stream from a second live broadcast and microphone connection client; A cache unit, configured to cache the latest video frame of the live stream of the second live broadcast and microphone connection client; and read the cached latest video frame when acquiring the current video frame of the first live broadcast and microphone connection client; A rendering unit, configured to synthesize the current video frame and the latest video frame into a target video frame based on a single rendering view and according to preset layout information; A display unit is used to display the target video frame.
13. An electronic device, characterized in that: include: at least one processor and memory; The memory stores computer-executable instructions; The at least one processor executes the computer-executable instructions stored in the memory, so that the at least one processor performs the method according to any one of claims 1 to 11.
14. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores computer-executable instructions, and when the processor executes the computer-executable instructions, the method according to any one of claims 1 to 11 is implemented.
15. A computer program product, characterized in that The method comprises computer-executable instructions, and when a processor executes the computer-executable instructions, the method according to any one of claims 1 to 11 is implemented.
