Method, device, electronic device, and computer-readable medium for acquiring video stream data

By determining and forwarding stream pooling data packets to the correct communication room based on the target room identifier, the method addresses delays and server burdens in video streaming, enhancing network transition efficiency.

KR103040044B1Active Publication Date: 2026-10-30BEIJING WODONG TIANJUN INFORMATION TECH CO LTD +1
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
KR1020247029774
Authority / Receiving Office
KR · KR
Patent Type
Patents
Current Assignee / Owner
Priority Date
2022-03-11
Filing Date
2023-02-21
Publication Date
2026-10-30
Estimated Expiration
2043-02-21

AI Technical Summary

Technical Problem

The addition of two multi-layered gateways between a mobile terminal and a stream pooling service cluster during network switching in video streaming causes delays and increases hardware costs and server burdens due to the need for multiple depacking operations.

Method used

A method that determines the target room identifier in the stream pooling data packet and forwards it directly to the corresponding communication room, eliminating the need for a Layer 7 gateway and reducing the number of depacking operations by using an independent load service and internal gateway protocol.

Benefits of technology

This approach prevents delays and reduces server burden by accelerating the routing speed of stream pooling data packets and eliminating the need for a Layer 7 gateway, thereby optimizing video stream transitions.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 112024097100221-PCT00002_ABST
    Figure 112024097100221-PCT00002_ABST
Patent Text Reader

Abstract

The present disclosure discloses a method, apparatus, electronic device, and computer-readable medium for acquiring video stream data. One specific embodiment of the method comprises the steps of: determining whether a room identifier of a communication room receiving a stream pooling data packet is the same as a target room identifier included in a connection identifier within the stream pooling data packet in response to receiving a stream pooling data packet transmitted from a target terminal, wherein the stream pooling data packet is generated when playing a video stream at the target terminal, and the target room identifier is the room identifier of a communication room receiving the first stream pooling data packet generated when playing a video stream at the target terminal; forwarding the stream pooling data packet to a target communication room corresponding to the target room identifier in response to determining that the target room identifier is different from the room identifier of the communication room receiving the stream pooling data packet; and acquiring video stream data through the target communication room. The embodiment can prevent delays in the stream pooling data packet and alleviate the burden on the server.
Need to check novelty before this filing date? Find Prior Art

Description

Technology Field

[0001] The embodiments of the present disclosure relate to the field of computer technology, specifically to a method for acquiring video stream data, an apparatus, an electronic device, and a computer-readable medium. Background Technology

[0002] When a user watches a video stream through a mobile device, if the network to which the mobile device is connected switches between a mobile network and a wireless network, the video stream is interrupted during the network switching process. Therefore, seamless transition is implemented to require connection transition when a network switch occurs. Currently, when connection transition is performed, a method is typically used to implement the transition by adding one Layer 7 load balancing gateway and one Layer 4 gateway between the mobile device and the stream pooling service cluster. The problem to be solved

[0003] However, when connection transitions are performed in the manner described above, there is a technical problem in which the time it takes for stream pooling data packets to reach the stream pooling service cluster from the mobile terminal increases due to the addition of two multi-layered gateways between the mobile terminal and the stream pooling service cluster, thereby causing delays in the stream pooling data packets. At the same time, there is a technical problem in which hardware costs and server burdens increase because two depacking operations are required when the stream pooling data packets pass through the two multi-layered gateways. means of solving the problem

[0004] The content portion of this disclosure is intended to introduce the concept in a brief form, and such concept is described in detail in the specific portion for implementing the invention below. The content portion of this disclosure is not intended to indicate the main or essential features of the technical solution for which protection is sought, nor is it intended to limit the scope of the technical solution for which protection is sought.

[0005] Some embodiments of the present disclosure provide a method, apparatus, electronic device, and computer-readable medium for acquiring video stream data to solve the technical problems mentioned in the background technical section above.

[0006] In a first aspect, some embodiments of the present disclosure provide a method for acquiring video stream data. The method comprises the steps of: determining whether a room identifier of a communication room receiving the stream pooling data packet is the same as a target room identifier included in a connection identifier within the stream pooling data packet in response to receiving a stream pooling data packet transmitted from a target terminal, wherein the stream pooling data packet is generated when playing a video stream at the target terminal, and the target room identifier is a room identifier of a communication room receiving the first stream pooling data packet generated when playing the video stream at the target terminal; forwarding the stream pooling data packet to a target communication room corresponding to the target room identifier in response to determining that the target room identifier is different from the room identifier of the communication room receiving the stream pooling data packet; and acquiring video stream data through the target communication room.

[0007] Optionally, the step of acquiring video stream data through the target communication channel comprises: a step of determining a target stream pooling service instance among the target protocol switching servers in the target communication channel that matches the stream pooling data packet; and a step of acquiring video stream data from a content delivery network edge node using the target stream pooling service instance.

[0008] Optionally, the target communication method is determined through a step of determining the communication method corresponding to the connected network as the target communication method when the first stream pooling data packet is generated during the process of the target terminal playing a video stream.

[0009] Optionally, the target protocol switching server and the target stream pooling service instance are determined through the steps of: selecting one protocol switching server from the protocol switching server cluster in the target communication room as the target protocol switching server in response to the target communication room confirming that it has received the first stream pooling data packet; and assigning a stream pooling service instance to the first stream pooling data packet using an independent load service among the target protocol switching servers and making the stream pooling service instance the target stream pooling service instance.

[0010] Optionally, the step of determining a target stream pooling service instance that matches the stream pooling data packet among the target protocol switching servers in the target communication method comprises: obtaining a mapping table from a cache server of a protocol switching server cluster in the target communication method, wherein the mapping table includes mapping information, and the mapping information includes a connection identifier, a protocol switching server identifier, and a stream pooling service instance identifier; selecting mapping information in which the connection identifier included in the mapping table is identical to the connection identifier in the stream pooling data packet as the target mapping information; determining a protocol switching server corresponding to the protocol switching server identifier in the target mapping information as the target protocol switching server; and determining a stream pooling instance among the target protocol switching servers corresponding to the stream pooling service instance identifier in the target mapping information as the target stream pooling server instance that matches the stream pooling data packet.

[0011] Optionally, the mapping information in the mapping table is determined through the steps of determining the connection identifier in the first stream pooling data packet, the protocol switching server identifier of the target protocol switching server, and the stream pooling service instance identifier of the target stream pooling service instance as mapping information, and recording the mapping information in the mapping table in the cache server.

[0012] Optionally, the step of forwarding the stream pooling data packet to a target communication room corresponding to the target room identifier in response to determining that the target room identifier is different from the room identifier of the communication room receiving the stream pooling data packet comprises: transmitting the stream pooling data packet to any one of the protocol switching servers using a target internal gateway protocol; assigning a stream pooling service instance to the stream pooling data packet using an independent load service among the any one of the protocol switching servers; and forwarding the stream pooling data packet to a target communication room corresponding to the target room identifier using the stream pooling service instance in response to determining that the target room identifier is different from the room identifier of the communication room.

[0013] Optionally, the method further comprises the steps of: transmitting the stream pooling data packet to any one of the protocol switching servers in the communication room using a target internal gateway protocol; assigning a stream pooling service instance to the stream pooling data packet using an independent load service in any one of the protocol switching servers; and obtaining video stream data through the communication room using the stream pooling service instance in response to confirming that the target room identifier is identical to the room identifier of the communication room.

[0014] In a second aspect, some embodiments of the present disclosure provide a video stream data acquisition device. The device is configured to determine whether a room identifier of a communication room receiving the stream pooling data packet is the same as a target room identifier included in a connection identifier in the stream pooling data packet in response to receiving a stream pooling data packet transmitted from a target terminal, wherein the stream pooling data packet is generated when playing a video stream at the target terminal, and the target room identifier is a room identifier of a communication room receiving the first stream pooling data packet generated when playing a video stream at the target terminal; a forwarding unit configured to forward the stream pooling data packet to a target communication room corresponding to the target room identifier in response to determining that the target room identifier is different from the room identifier of the communication room receiving the stream pooling data packet; and an acquisition unit configured to acquire video stream data through the target communication room.

[0015] Optionally, the acquisition unit includes a first determination sub-unit and a first acquisition sub-unit. Here, the first determination sub-unit is configured to determine a target stream pooling service instance among the target protocol switching servers in the target communication method that matches the stream pooling data packet, and the second determination sub-unit is configured to acquire video stream data from a content delivery network edge node using the target stream pooling service instance.

[0016] Optionally, the target communication method is determined through a step of determining the communication method corresponding to the connected network as the target communication method when the first stream pooling data packet is generated during the process of the target terminal playing the video stream.

[0017] Optionally, the target protocol telephone server and the target stream pooling service instance are determined through the steps of: selecting one protocol switching server from a protocol switching server cluster in the target communication room as the target protocol switching server in response to the target communication room confirming that it has received the first stream pooling data packet; and assigning a stream pooling service instance to the first stream pooling data packet using an independent load service among the target protocol switching servers and making the stream pooling service instance the target stream pooling service instance.

[0018] Optionally, the first confirmation sub-unit includes a second acquisition sub-unit, a selection sub-unit, a first confirmation sub-unit, and a second confirmation sub-unit. Herein, the second acquisition sub-unit is configured to acquire a mapping table from a cache server of a protocol switching server cluster in the target communication method, wherein the mapping table includes mapping information, and the mapping information includes a connection identifier, a protocol switching server identifier, and a stream pooling service instance identifier; the selection sub-unit is configured to select as target mapping information a mapping information in which the connection identifier included in the mapping table is the same as the connection identifier in the stream pooling data packet; the first confirmation sub-unit is configured to confirm a protocol switching sub corresponding to the protocol switching server identifier in the target mapping information as the target protocol switching server; and the first confirmation sub-unit is configured to confirm a stream pooling service instance among the target protocol switching servers corresponding to the stream pooling service instance identifier in the target mapping information as the target stream pooling service instance that matches the stream pooling data packet.

[0019] Optionally, the mapping information in the mapping table is determined through the steps of: determining the connection identifier in the first stream pooling data packet, the protocol switching server identifier of the target protocol switching server, and the stream pooling service instance identifier of the target stream service instance as mapping information; and recording the mapping information in the mapping table of the cache server.

[0020] Optionally, the forwarding unit comprises a first transmission sub-unit, an allocation sub-unit, and a forwarding sub-unit. Herein, the first transmission sub-unit is configured to transmit the stream pooling data packet to any one of the protocol switching servers using a target internal gateway protocol, the first allocation sub-unit is configured to allocate a stream pooling service instance to the stream pooling data packet using an independent load service among the any one of the protocol switching servers, and the forwarding sub-unit is configured to forward the stream pooling data packet to the target communication room corresponding to the target room identifier using the stream pooling service instance in response to determining that the target room identifier is different from the room identifier of the communication room.

[0021] Optionally, the device further comprises a transmitting unit, an allocation unit, and a video stream acquisition unit. Herein, the transmitting unit is configured to transmit the stream pooling data packet to any one of the protocol switching servers in the communication room using a target internal gateway protocol, the allocation unit is configured to allocate a stream pooling service instance to the stream pooling data packet using an independent load service in any one of the protocol switching servers, and the video stream acquisition unit is configured to acquire video stream data through the communication room using the stream pooling service instance in response to confirming that the target room identifier is identical to the room identifier of the communication room.

[0022] In a third aspect, some embodiments of the present disclosure provide an electronic device, said electronic device comprising one or more processors and a storage device storing one or more programs. The one or more programs are executed by the one or more processors so that the one or more processors implement a method according to any one of the implementations in the first aspect.

[0023] In a fourth aspect, some embodiments of the present disclosure provide a computer-readable medium in which a computer program is stored, and when the program is executed by a processor, a method according to any one of the implementation methods in the first aspect is implemented. Effects of the invention

[0024] According to the embodiments of the present invention, the video stream data acquisition method of some embodiments of the present disclosure has the beneficial effect of preventing delays in stream pooling data packets to some extent and reducing the burden on the server because the stream pooling data packets do not require multiple depackings. Specifically, the cause of the delay in stream pooling data packets and the relatively large burden on the server lies in adding one Layer 7 load balancing gateway and one Layer 4 gateway between the mobile terminal and the stream pooling service cluster. Based on this, in the video stream acquisition method of some embodiments of the present disclosure, one bit is added to the connection identifier in the stream pooling data packet to store target room information, and direct forwarding back-to-the-source is performed on the data packet based on the target room information. Accordingly, since a Layer 7 gateway is not required between the mobile terminal and the stream pooling service cluster, delays in stream pooling data packets are prevented to some extent and the burden on the server is alleviated, while the routing speed of the stream pooling data packets is accelerated. Brief explanation of the drawing

[0025] The above and other features, advantages, and aspects of the embodiments of the present disclosure become more apparent by combining the accompanying drawings and referring to specific embodiments. Throughout the specification, the same or similar reference numerals are used for identical or similar components. The drawings are exemplary, and elements or components are not necessarily drawn in a fixed proportion. FIG. 1 is a schematic diagram of one application scenario of a method for acquiring video stream data of some embodiments of the present disclosure. FIG. 2 is a flowchart of some embodiment of a method for acquiring video stream data according to the present disclosure. FIG. 3 is a flowchart of another embodiment of the method for acquiring video stream data according to the present disclosure. FIG. 4 is a schematic diagram of determining a target stream pooling service instance among some embodiments of a method for acquiring video stream data according to the present disclosure. FIG. 5 is a structural schematic diagram of some embodiment of a video stream data acquisition device of the present disclosure. FIG. 6 is a structural schematic diagram of an electronic device suitable for implementing some embodiments of the present disclosure. Specific details for implementing the invention

[0026] Embodiments of the present disclosure are described in more detail below with reference to the accompanying drawings. Although some embodiments of the present disclosure are illustrated in the drawings, it should be understood that the present disclosure may be implemented in various forms and is not limited to the embodiments described herein. Conversely, such embodiments are provided to facilitate a more thorough and complete understanding of the present disclosure. It should be understood that the accompanying drawings and embodiments of the present disclosure are illustrative and do not limit the scope of protection of the present disclosure.

[0027] Additionally, for the convenience of explanation, only the parts related to the invention are illustrated in the attached drawings. The embodiments and features of the embodiments of the present disclosure may be combined with one another unless contradictory.

[0028] It should be noted that concepts such as "first," "second," etc., mentioned in this disclosure are intended only to distinguish different devices, modules, or units, and are not intended to limit the order of functions or interdependence relationships performed by such devices, modules, or units.

[0029] It should be noted that modifiers such as “one” and “many” mentioned in this disclosure are illustrative and not restrictive, and unless otherwise specified in the context, those skilled in the art should understand them as “one or many.”

[0030] In the embodiments of the present disclosure, the names of news or information exchanged between various devices are used for illustrative purposes only and are not used to limit the scope of such news or information.

[0031] Hereinafter, the present disclosure will be described in detail by combining embodiments with reference to the attached drawings.

[0032] FIG. 1 is a schematic diagram of one application scenario of a method for acquiring video stream data of some embodiments of the present disclosure.

[0033] In the application scenario of FIG. 1, first, the computing device (101) can determine whether the room identifier (104) of the communication room receiving the stream pooling data packet (103) is the same as the target room identifier (105) included in the connection identifier of the stream pooling data packet (103) in response to receiving the stream pooling data packet (103) transmitted from the target terminal (102). Here, the stream pooling data packet (103) is generated when playing a video stream at the target terminal (102), and the target room identifier (105) is the room identifier of the communication room receiving the first stream pooling data packet generated when playing the video stream at the target terminal (102). Next, the computing device (101) can forward the stream pooling data packet (103) to a target communication room (106) corresponding to the target room identifier (105) in response to determining that the target room identifier (105) is different from the room identifier (104) of the communication room receiving the stream pooling data packet (103). Finally, the computing device (101) can obtain video stream data (107) through the target communication room (106).

[0034] It should be explained that the computing device (101) may be hardware or software. When the computing device is hardware, it may be implemented as a distributed cluster consisting of multiple servers or terminal devices, or it may be composed of a single server or terminal device. When the computing device is software, it may be installed on the hardware device listed above. This may be implemented, for example, as multiple software or software modules for providing distributed services, or as a single software or software module. This is not specifically limited here.

[0035] It should be understood that the number of computing devices in FIG. 1 is exemplary. Depending on the needs, any number of computing devices may be used.

[0036] Continuing with reference to FIG. 2, a process (200) of some embodiment of a method for acquiring video stream data according to the present disclosure is illustrated. The method for acquiring video stream includes the following steps.

[0037] In step (201), in response to receiving a stream pooling data packet transmitted from a target terminal, it is determined whether the room identifier of the communication room receiving the stream pooling data packet is the same as the target room identifier included in the connection identifier of the stream pooling data packet.

[0038] In some embodiments, the entity executing the method for acquiring video stream data (e.g., the computing device (101) illustrated in FIG. 1) may determine whether the communication room identifier of the stream pooling data packet is the same as the target room identifier included in the connection identifier of the stream pooling data packet in response to receiving a stream pooling data packet transmitted from the target terminal. Here, the stream pooling data packet may be generated when playing a video stream at the target terminal, and the target room identifier may be the communication room identifier of the first stream pooling data packet generated when playing a video stream at the target terminal. The video stream may be a live video stream or an on-demand video stream. The stream pooling data packet may be a QUIC (Quick UDP Internet Connection) packet. The target terminal may be a mobile terminal, e.g., a mobile phone, a tablet computer, etc.

[0039] The communication channel receiving the stream pooling data packet may be a communication channel corresponding to the network connected when the target terminal transmits the stream pooling data packet. The network connected during the process of the target terminal playing the video stream may be a mobile network or a wireless network. The network connected during the process of the target terminal playing the video stream may switch between a mobile network and a wireless network.

[0040] When the target terminal transmits the first stream pooling data packet, it sets the communication channel corresponding to the currently connected network as the target communication channel. Then, it records the communication channel identifier of the corresponding target communication channel as the target communication channel identifier in the connection identifier of the first stream pooling data packet. Subsequently, during the video stream playback process, the target communication channel identifier is recorded in the connection identifier of the stream pooling data packet to be generated subsequently.

[0041] If the room identifier of the communication room in the stream pooling data packet is identical to the target room identifier included in the connection identifier within the stream pooling data packet, it indicates that the communication room receiving the stream pooling data packet and the communication room receiving the first stream pooling data packet are the same communication room. Therefore, video stream data can be obtained directly through the communication room receiving the stream pooling data packet without the need for a connection transition.

[0042] If the room identifier of the communication room in the stream pooling data packet differs from the room identifier included in the connection identifier within the stream pooling data packet, it indicates that the communication room receiving the stream pooling data packet and the communication room receiving the first stream pooling data packet are different communication rooms; that is, it indicates that a switch has occurred between a mobile network and a wireless network in the connected network during the process of the target terminal playing the live video stream. Therefore, in order to ensure that the video stream continues to be played smoothly on the target terminal when a network switch occurs, it is necessary to forward the stream pooling data packet to the target communication room through a connection back-to-the-source operation.

[0043] Accordingly, it is possible to determine whether the communication room receiving the current stream pooling data packet is the target communication room through the target room identifier included in the connection identifier of the stream pooling data packet. Thus, fast routing of the stream pooling data packet is implemented.

[0044] For example, when the target terminal transmits the stream pooling data packet, if the connected network is Changchun Mobile's 5G network, the communication channel receiving the stream pooling data packet may be Changchun Mobile's channel.

[0045] In some selectable implementation methods of some embodiments, the target communication method is,

[0046] During the process of the above target terminal playing the above video, when the first stream pooling data packet is generated, the communication method corresponding to the connected network can be determined as the target communication method through a step of determining the target communication method.

[0047] Accordingly, when the first stream pooling data packet is generated, the communication channel corresponding to the network to which the target terminal is connected can be determined as the target communication channel. This enables fast routing of the stream pooling data packet when a subsequent network switch occurs.

[0048] In step (202), in response to determining that the room identifier of the target communication room is different from the room identifier of the communication room receiving the stream pooling data packet, the stream pooling data packet is forwarded to the target communication room corresponding to the target room identifier.

[0049] In some embodiments, the executing entity may forward the stream pooling data packet to a target communication room corresponding to the target room identifier in response to determining that the target room identifier is different from the room identifier of the communication room receiving the stream pooling data packet.

[0050] In step (203), video stream data is obtained through the target communication channel.

[0051] In some embodiments, the implementing entity can forward the stream pooling data packet to the target communication channel and then obtain the video stream data returned from the target communication channel.

[0052] In some selectable implementations of some embodiments, the executing entity may further perform the following steps.

[0053] First, the stream pooling data packet is transmitted to any one of the protocol switching servers in the communication room using the target internal gateway protocol. Here, the target internal gateway protocol may be OSPF (Open Shortest Path First). The protocol switching server may be any QUIC server in the QUIC server cluster. The QUIC server can obtain video stream data from the Content Allocation Delivery Network edge node after converting the QUIC protocol to the HTTP (Hyper Text Transfer Protocol) protocol.

[0054] Accordingly, by using the target internal gateway protocol, the stream pooling data packet can be transmitted to any one protocol switching server in the communication direction through at least one shortest routing path, thereby increasing the routing speed of the stream pooling data packet.

[0055] Secondly, a stream pooling service instance is assigned to the stream pooling data packet using an independent load service of any one of the aforementioned protocol switching servers. Here, the independent load service may be an operating system kernel-level load service. For example, it may be nftable.

[0056] Therefore, the burden on the server is reduced through operating system kernel-level load services.

[0057] Thirdly, in response to confirming that the target room identifier is identical to the room identifier of the communication room, video stream data is obtained through the communication room using the stream pooling service instance. Here, the stream pooling service instance can first convert the stream pooling data packet into an HTTP protocol data packet, and then obtain video stream data from a CDN (Content Delivery Network) server in the communication room.

[0058] The above embodiments of the present disclosure have the following beneficial effects. Through the video stream data acquisition method of some embodiments of the present disclosure, delays in stream pooling data packets can be prevented to some extent, and at the same time, since stream pooling data packets do not require multiple depackings, the burden on the server can be reduced. Specifically, the cause of delays in stream pooling data packets and the relatively high burden on the server lies in adding one Layer 7 gateway and one Layer 4 gateway between the mobile terminal and the stream pooling service cluster. Based on this, in the video stream data acquisition method of some embodiments of the present disclosure, one bit is added to the connection identifier in the stream pooling data packet to store target room information, and direct forwarding back-to-the-source is performed on the data packet based on the target room information. Accordingly, since a Layer 7 gateway is not required between the mobile terminal and the stream pooling service cluster, delays in stream pooling data packets are prevented to some extent, the burden on the server is alleviated, and the routing speed of the stream data packet is accelerated.

[0059] Referring further to FIG. 3, a process (300) of another embodiment of a method for acquiring video stream data is illustrated. The process (300) of the method for acquiring video stream data includes the following steps.

[0060] In step (301), in response to receiving a stream pooling data packet transmitted from a target terminal, it is determined whether the room identifier of the communication room receiving the stream pooling data packet is the same as the target room identifier included in the connection identifier of the stream pooling data packet.

[0061] In some embodiments, the specific implementation method of step (301) and the technical effect thereof can be described by referring to step (201) in the embodiment corresponding to FIG. 2 and will not be described again here.

[0062] In step (302), the stream pooling data packet is forwarded to any one of the protocol switching servers in the communication room using the target internal gateway protocol.

[0063] In some embodiments, the entity executing the method for acquiring video stream data (e.g., the computing device (101) of FIG. 1) may transmit the stream pooling data packet to any one of the protocol switching servers in the communication room using a target internal gateway protocol. Here, the target internal gateway protocol may be OSPF. The protocol switching server may be any QUIC server in the QUIC server cluster. The QUIC server may convert the QUIC protocol to the HTTP protocol and then acquire video stream data from the allocated content delivery network edge node.

[0064] Accordingly, by using the target internal gateway protocol, the stream pooling data packet can be transmitted to any one of the protocol switching servers in the communication room via at least one shortest routing path, thereby increasing the routing speed of the stream pooling data packet.

[0065] In step (303), an independent load service of any one of the protocol switching servers is used to assign a stream pooling service instance to the stream pooling data packet.

[0066] In some embodiments, the executing entity allocates a stream pooling service instance to the stream pooling data packet using an independent load service of any one of the protocol switching servers. Here, the independent load service may be an operating system kernel-level load service. For example, it may be nftable. Accordingly, the load on the server can be reduced through the operating system kernel-level load service.

[0067] In step (304), in response to determining that the target room identifier is different from the communication room identifier, a stream pooling service instance is used to forward the stream pooling data packet to the target communication room corresponding to the target room identifier.

[0068] In some embodiments, the executing entity may forward the stream pooling data packet to the target communication room corresponding to the target room identifier using the stream pooling service instance in response to determining that the target room identifier is different from the communication room identifier.

[0069] Accordingly, data latency is reduced by integrating the forwarding back-to-the-source function into the stream pooling service instance and eliminating the need for a separate Layer 7 load balancing gateway. At the same time, single-point failures of the Layer 7 load balancing gateway are reduced. Additionally, costs can be reduced as there is no need to deploy a Layer 7 load balancing gateway.

[0070] In step (305), a target stream pooling service instance that matches the stream pooling data packet among the target protocol switching servers in the target communication room is determined.

[0071] In some embodiments, the executing entity may determine a target stream pooling service instance that matches the stream pooling data packet among the target protocol switching servers in the target communication method.

[0072] The above target communication method receives the first stream pooling data packet generated during the process of playing the video stream at the target terminal, and then transmits to the target terminal the protocol conversion server identifier of the protocol conversion server receiving the first stream pooling data packet among the target communication methods, and the stream pooling service instance identifier of the stream pooling service instance allocation assigned to the first stream pooling data packet among the protocol conversion servers, so that the target terminal records the protocol conversion server identifier and the stream pooling service instance identifier in a stream pooling data packet to be subsequently generated. Accordingly, the executing entity can determine the target protocol conversion server and the target stream pooling server instance among the target protocol conversion servers based on the protocol conversion server identifier and the stream pooling service instance identifier included in the stream pooling data packet.

[0073] In a selectable implementation method of some embodiments, the step of the executing entity determining a target stream pooling service instance that matches the stream pooling data packet among the target protocol switching servers in the target communication method may include the following steps.

[0074] First, a mapping table is obtained from the cache server of the protocol switching server cluster among the above target communication methods. Here, the mapping table includes mapping information, and the mapping information includes a connection identifier, a protocol switching server identifier, and a stream pooling server instance identifier. The data stored in the cache server may be data shared by the protocol switching server cluster.

[0075] For example, the above cache server may be a Redis server.

[0076] Secondly, mapping information in which the connection identifier included in the above mapping table is identical to the connection identifier in the stream pooling data packet is selected as the target mapping information.

[0077] Third, the protocol switching server corresponding to the protocol switching server identifier among the above-mentioned goal mapping information is confirmed as the target protocol switching server.

[0078] Fourth, among the above-mentioned target protocol switching servers, the stream pooling service instance corresponding to the stream pooling service instance identifier in the above-mentioned target mapping information is determined as the target stream pooling service instance that matches the above-mentioned stream pooling data packet.

[0079] Optionally, the mapping information in the above mapping table is determined through the following steps.

[0080] First, the connection identifier in the first stream pooling data packet, the protocol switching server identifier of the target protocol switching server, and the stream pooling service instance identifier of the target stream pooling service instance are determined as mapping information.

[0081] Secondly, the above mapping information is recorded in the mapping table among the cache servers.

[0082] Optionally, the above target protocol switching server and target stream pooling service instance can be determined through the following steps.

[0083] First, in response to the confirmation that the target communication room receives the first stream pooling data packet, one protocol switching server from the protocol switching server cluster among the target communication rooms is selected as the target protocol switching server. Here, the target protocol switching server may be randomly selected from the protocol switching server cluster.

[0084] Secondly, using an independent load service among the target protocol switching servers, a stream pooling service instance is assigned to the first stream pooling data packet, and the stream pooling service instance is designated as the target stream pooling service instance. Here, a single stream pooling service instance can be created for the first stream pooling data packet using an independent load service.

[0085] For example, with reference to FIG. 4, first, in response to the confirmation that the target communication room (401) receives the first stream pooling data packet (402), one protocol switching server from the protocol switching server cluster (403) in the target communication room (401) can be selected as the target protocol switching server (404). Next, using an independent load service among the target protocol switching servers (404), a stream pooling service instance (405) can be assigned to the first stream pooling data packet (402), and the stream pooling service instance can be made the target stream pooling service instance.

[0086] In step (306), video stream data is obtained from the allocated content delivery network edge node using the target stream pooling service instance.

[0087] In some embodiments, the executing entity may first convert the stream pooling data packet into an HTTP protocol data packet using the target stream pooling service instance. Next, video stream data is obtained from an allocated content transmission network edge node in the communication channel.

[0088] In some selectable implementations of some embodiments, the executing entity may transmit the video stream data to the target terminal.

[0089] As can be seen in FIG. 3, compared to the description of some embodiments corresponding to FIG. 2, the process (300) of the method for acquiring video stream data of some embodiments corresponding to FIG. 3 illustrates detailed steps for forwarding stream pooling data packets and acquiring video stream data. Accordingly, the method described in this embodiment can further increase the routing speed of stream pooling data packets and reduce the burden on the server by utilizing the target internal gateway protocol and independent load service.

[0090] Referring further to FIG. 5, the present disclosure provides some embodiments of a video stream data acquisition device as an implementation of the method illustrated in each of the above figures, such device embodiments correspond to the method embodiments illustrated in FIG. 2, and the device can be specifically applied to various electronic devices.

[0091] As illustrated in FIG. 5, a video stream pooling data acquisition device (500) of some embodiments includes a confirmation unit (501), a transmission unit (502), and an acquisition unit (503). Here, the confirmation unit (501) is configured to confirm whether the room identifier of the communication room receiving the stream pooling data packet is the same as the target room identifier included in the connection identifier of the stream pooling data packet in response to receiving the stream pooling data packet transmitted from the target terminal, wherein the stream pooling data packet is generated when playing the video stream at the target terminal, and the target room identifier is the room identifier of the communication room receiving the first stream pooling data packet generated when playing the video stream at the target terminal. The forwarding unit (502) is configured to forward the stream pooling data packet to a target communication room corresponding to the target room identifier in response to determining that the target room identifier is different from the room identifier of the communication room receiving the stream pooling data packet, and the acquisition unit (503) is configured to acquire video stream data through the target communication room.

[0092] In a selectable implementation of some embodiments, the acquisition unit 503 comprises a first determination sub-unit and a first acquisition sub-unit. Here, the first determination sub-unit is configured to determine a service instance among the target protocol switching servers in the target communication method that matches the stream pooling data packet, and the second determination sub-unit is configured to acquire video stream data from a content delivery network edge node using the target stream pooling service instance.

[0093] In a selectable implementation method of some embodiments, the target communication method is determined through a step of determining the communication method corresponding to the connected network as the target communication method when the first stream pooling data packet is generated during the process in which the target terminal plays the video stream.

[0094] In a selectable implementation of some embodiments, the target protocol switching server and the target stream pooling service instance are determined by the steps of: selecting one protocol switching server from a protocol switching server cluster among the target communication rooms as the target protocol switching server in response to the target communication room confirming that it has received the first stream pooling data packet; and assigning a stream pooling service instance to the first stream pooling data packet using an independent load service among the target protocol switching servers and making the stream pooling service instance the target stream pooling service instance.

[0095] In a selectable implementation method of some embodiments, the first confirmation sub-unit includes a second acquisition sub-unit, a selection sub-unit, a first confirmation sub-unit, and a second confirmation sub-unit. Here, the second acquisition sub-unit is configured to acquire a mapping table from a cache server of a protocol switching server cluster in the target communication method, wherein the mapping table includes mapping information, and the mapping information includes a connection identifier, a protocol switching server identifier, and a stream pooling service instance identifier; the selection sub-unit is configured to select as target mapping information a mapping information in which the connection identifier included in the mapping table is identical to the connection identifier in the stream pooling data packet; the first confirmation sub-unit is configured to confirm a protocol switching server corresponding to the protocol switching server identifier in the target mapping information as the target protocol switching server; and the first confirmation sub-unit is configured to confirm a stream service instance among the target protocol switching servers corresponding to the stream pooling service instance identifier in the target mapping information as the target stream pooling data packet that matches the stream pooling data packet.

[0096] In a selectable implementation method of some embodiments, the mapping information in the mapping table is determined through the steps of: determining the connection identifier in the first stream pooling data packet, the protocol switching server identifier of the target protocol switching server, and the stream pooling service instance identifier of the target stream pooling service instance as mapping information; and recording the mapping information in the mapping table in the cache server.

[0097] In a selectable implementation of some embodiments, the forwarding unit (502) comprises a first transmission sub-unit, an allocation sub-unit, and a forwarding sub-unit. Here, the first transmission sub-unit is configured to transmit the stream pooling data packet to any one of the protocol switching servers using a target internal gateway protocol, the first allocation sub-unit is configured to allocate a stream pooling service instance to the stream pooling data packet using an independent load service of any one of the protocol switching servers, and the forwarding sub-unit is configured to forward the stream pooling data packet to a target communication room corresponding to the target room identifier using the stream pooling service instance in response to determining that the target room identifier is different from the room identifier of the communication room.

[0098] In a selectable implementation of some embodiments, the device (500) further comprises a transmitting unit, an allocation unit, and a video stream acquisition unit. Here, the transmitting unit is configured to transmit the stream data packet to any one of the protocol switching servers in the communication room using a target internal gateway protocol, the allocation unit is configured to allocate a stream pooling service instance to the stream pooling data packet using an independent load service in any one of the protocol switching servers, and the video stream acquisition unit is configured to acquire video stream data through the communication room using the stream pooling service instance in response to confirming that the target room identifier is the same as the room identifier of the communication room.

[0099] It can be understood that the various units described in the device (500) correspond to the steps of the method described with reference to FIG. 2. Accordingly, the operations, features, and beneficial effects described in the method above also apply to the device (500) and the units included therein, and are not described again here.

[0100] Referring to FIG. 6 below, FIG. 6 is a structural schematic diagram of an electronic device (600) suitable for implementing some embodiments of the present disclosure. The electronic device illustrated in FIG. 6 is merely an example and should not result in limitations on the function and scope of use of the embodiments of the present disclosure.

[0101] As illustrated in FIG. 6, the electronic device (600) may include a processing unit (e.g., a central processing unit, a graphics processing unit, etc.) (601), which can perform various appropriate operations and processing based on a program stored in read-only memory (ROM) (602) or a program loaded from a storage device (608) into random access memory (RAM) (603). Various programs and data required for the operation of the electronic device (600) are further stored in RAM (603). The processing unit (601), ROM (602), and RAM (603) are connected to each other via a bus (604). An input / output (I / O) interface (605) is also connected to the bus (604).

[0102] Typically, an input device (606) including a touch screen, touchpad, keyboard, mouse, camera, microphone, accelerometer, gyroscope, etc., an output device (607) including a liquid crystal display (LCD), speaker, vibrator, etc., and a communication device (609) may be connected to an I / O interface (605). The communication device (609) may allow the electronic device (600) to communicate wirelessly or wiredly with other devices to exchange data. Although the electronic device (600) is illustrated in FIG. 6 with various devices, it should be understood that not all illustrated devices are required to be implemented or provided. Each block illustrated in FIG. 6 may represent a single device or multiple devices as needed.

[0103] In particular, according to some embodiments of the present disclosure, the process described with reference to the above flowchart may be implemented as a computer software program. For example, some embodiments of the present disclosure include a computer program product, which includes a computer program loaded on a computer-readable medium, said computer program including program code for executing the method illustrated in the flowchart. In such some embodiments, said computer program may be downloaded and installed from a network via a communication device (609), installed from a storage device (608), or installed from a ROM (602). When said computer program is executed by a processing device (601), it performs the function limited to the method according to some embodiments of the present disclosure.

[0104] It should be explained that the computer-readable medium described in some embodiments of the present disclosure may be a computer-readable signal medium, a computer-readable storage medium, or any combination of both. The computer-readable storage medium may be, for example, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, element, or any combination thereof, but is not limited thereto. More specific examples of the computer-readable storage medium may include, but are not limited to, a portable computer magnetic disk, a hard disk, random access memory (RAM), read-only memory (ROM), eraseable and programmable read-only memory (EPROM or flash memory), portable compact disk read-only memory (CD-ROM), optical memory element, magnetic memory element, or any suitable combination thereof. In some embodiments of the present disclosure, the computer-readable storage medium may be any type of medium that contains or stores a program, and said program may be used by or in combination with an instruction execution system, device, or element. In some embodiments of the present disclosure, a computer-readable signal medium may include a data signal that is propagated in a baseband or as part of a carrier, wherein the data signal is equipped with a computer-readable program code. The data signal thus propagated may be implemented in various forms and may include, but is not limited to, electromagnetic signals, optical signals, or any suitable combination thereof. The computer-readable signal medium may be any computer-readable medium other than a computer-readable storage medium, and the computer-readable signal medium may transmit, propagate, or transmit a program that is used by or in combination with an instruction execution system, device, or element.Program code contained in a computer-readable medium may be transmitted using any suitable medium, including but not limited to wires, cables, RF (radio frequency), etc.

[0105] In some implementations, clients and servers may communicate using network protocols that are already known or will be developed in the future, such as HTTP (Hyper Text Transfer Protocol), and may also be connected to each other via digital data communication of any format or medium (e.g., communication networks). Examples of communication networks include local area networks (“LAN”), wide area networks (“WAN”), the Internet (e.g., the Internet), and end-to-end networks (e.g., ad hoc end-to-end networks), and networks that are currently known or will be developed in the future.

[0106] The computer-readable medium may be included in the electronic device or may exist independently without being assembled into the electronic device. The computer-readable medium carries one or more programs, and when the one or more programs are executed by the electronic device, in response to the electronic device receiving a stream pooling data packet transmitted from a target terminal, it determines whether the room identifier of the communication room receiving the stream pooling data packet is the same as the target room identifier included in the connection identifier of the stream pooling data packet, wherein the stream pooling data packet is generated when playing a video stream at the target terminal, and the target room identifier is the room identifier of the communication room receiving the first stream pooling data packet generated when playing the video stream at the terminal, and in response to determining that the target room identifier is different from the room identifier of the communication room receiving the stream pooling data packet, the stream pooling data packet is forwarded to a target communication room corresponding to the target room identifier, and video stream data is obtained through the target communication room.

[0107] Computer program code for performing operations in some embodiments of the present disclosure may be written in one or more programming languages ​​or combinations thereof, said programming languages ​​including object-oriented programming languages ​​(e.g., Java, Smalltalk, and C++) and further including conventional process-oriented programming languages ​​(e.g., C or similar programming languages). The program code may be executed entirely or partially on a user computer, or as a standalone software package, or partially on a user 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 computer through 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., a connection is made over the Internet using an Internet service provider).

[0108] The flowcharts and block diagrams in the attached drawings illustrate the implementable structural structure, functions, and operations of the system, method, and computer program product according to each embodiment of the present disclosure. In this regard, each block in the flowchart or block diagram may represent a module, program segment, or part of code, and said module, program segment, or part of code may include one or more executable instructions for implementing a defined logic function. It should be noted that in some alternative implementations, the functions indicated in the blocks may be performed in an order different from the order indicated in the attached drawings. For example, two blocks shown sequentially may be executed practically almost simultaneously, or in some cases, in an reverse order, which is determined by the relevant functions. It should be noted that each block in the block diagram and / or flowchart, and combinations of blocks in the block diagram and / or flowchart, may be implemented as a dedicated hardware-based system for executing the defined function or operation, or as a combination of dedicated hardware and computer instructions.

[0109] The units described in some embodiments of the present disclosure may be implemented in software or hardware. The described units may be installed in a processor, for example, the processor may be described as including a determination unit, a forwarding unit, and an acquisition unit. Here, the names of these units do not constitute a limitation on the units themselves in some cases, for example, the acquisition unit may also be described as a "unit for acquiring video stream data."

[0110] In this specification, the functions described above may be executed at least partially by one or more hardware logic components. For example, available exemplary hardware logic components include, but are not limited to, field programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), application-specific standard products (ASSPs), system-on-chip (SOCs), complex programmable logic devices (CPLDs), etc. Explanation of the symbols

[0111] 101: Computing device 102: Target terminal 103: Stream pooling data packet 104: Room identifier of the receiving room 105: Target room identifier 106: Corresponding target communication room 107: Video stream data through

Claims

Claim 1 A method for acquiring video stream data performed by a computing device, comprising the steps of: determining whether a room identifier of a communication room receiving the stream pooling data packet in response to receiving a stream pooling data packet transmitted from a target terminal is the same as a target room identifier included in a connection identifier within the stream pooling data packet, wherein the stream pooling data packet is generated when playing a video stream at the target terminal, and the target room identifier is a room identifier of a communication room receiving the first stream pooling data packet generated when playing the video stream at the target terminal; forwarding the stream pooling data packet to a target communication room corresponding to the target room identifier in response to determining that the target room identifier is different from the room identifier of the communication room receiving the stream pooling data packet; and acquiring video stream data through the target communication room. Claim 2 A method for obtaining video stream data according to claim 1, wherein the step of obtaining video stream data through the target communication channel comprises: a step of determining a target stream pooling service instance that matches the stream pooling data packet among the target protocol switching servers in the target communication channel; and a step of obtaining video stream data from a content delivery network edge node using the target stream pooling service instance. Claim 3 A method for acquiring video stream data according to claim 1, wherein the target communication method is determined through a step of determining the communication method corresponding to the connected network as the target communication method when the first stream pooling data packet is generated during the process of the target terminal playing a video stream. Claim 4 A method for acquiring video stream data according to claim 2, wherein the target protocol switching server and the target stream pooling service instance are determined by the steps of: selecting one protocol switching server from a protocol switching server cluster in the target communication room as the target protocol switching server in response to the target communication room confirming that it has received the first stream pooling data packet; and assigning a stream pooling service instance to the first stream pooling data packet using an independent load service among the target protocol switching servers and making the stream pooling service instance the target stream pooling service instance. Claim 5 A method for obtaining video stream data according to claim 2, wherein the step of determining a target stream pooling service instance that matches the stream pooling data packet among the target protocol switching servers in the target communication room comprises: obtaining a mapping table from a cache server of a protocol switching server cluster in the target communication room, wherein the mapping table includes mapping information, and the mapping information includes a connection identifier, a protocol switching server identifier, and a stream pooling service instance identifier; selecting the mapping information in which the connection identifier included in the mapping table is identical to the connection identifier in the stream pooling data packet as the target mapping information; determining a protocol switching server corresponding to the protocol switching server identifier in the target mapping information as the target protocol switching server; and determining a stream pooling instance among the target protocol switching servers that corresponds to the stream pooling service instance identifier in the target mapping information as the target stream pooling server instance that matches the stream pooling data packet. Claim 6 A method for acquiring video stream data according to claim 5, wherein the mapping information in the mapping table is determined by the steps of: determining the connection identifier in the first stream pooling data packet, the protocol switching server identifier of the target protocol switching server, and the stream pooling service instance identifier of the target stream pooling service instance as mapping information; and recording the mapping information in the mapping table of the cache server. Claim 7 A method for acquiring video stream data according to claim 1, wherein the step of forwarding the stream pooling data packet to a target communication room corresponding to the target room identifier in response to determining that the target room identifier is different from the room identifier of the communication room receiving the stream pooling data packet comprises: transmitting the stream pooling data packet to any one protocol switching server among the communication rooms using a target internal gateway protocol; assigning a stream pooling service instance to the stream pooling data packet using an independent load service among the any one protocol switching server; and forwarding the stream pooling data packet to a target communication room corresponding to the target room identifier using the stream pooling service instance in response to determining that the target room identifier is different from the room identifier of the communication room. Claim 8 A method for obtaining video stream data according to claim 1, further comprising the steps of: transmitting the stream pooling data packet to any one of the protocol switching servers in the communication room using a target internal gateway protocol; assigning a stream pooling service instance to the stream pooling data packet using an independent load service in any one of the protocol switching servers; and obtaining video stream data through the communication room using the stream pooling service instance in response to confirming that the target room identifier is identical to the room identifier of the communication room. Claim 9 A video stream data acquisition device comprising: a confirmation unit configured to determine whether a room identifier of a communication room receiving the stream pooling data packet is the same as a target room identifier included in a connection identifier within the stream pooling data packet in response to receiving a stream pooling data packet transmitted from a target terminal, wherein the stream pooling data packet is generated when playing a video stream at the target terminal, and the target room identifier is a room identifier of a communication room receiving the first stream pooling data packet generated when playing a video stream at the target terminal; a forwarding unit configured to forward the stream pooling data packet to a target communication room corresponding to the target room identifier in response to determining that the target room identifier is different from the room identifier of the communication room receiving the stream pooling data packet; and an acquisition unit configured to acquire video stream data through the target communication room. Claim 10 An electronic device comprising one or more processors and a storage device storing one or more programs, wherein the one or more programs are executed by the one or more processors so that the one or more processors implement the method of any one of claims 1 to 8. Claim 11 A computer-readable storage medium in which a computer program is stored, wherein the computer-readable storage medium implements the method of any one of claims 1 to 8 when the program is executed by a processor. Claim 12 A computer program stored on a computer-readable storage medium, wherein the computer program enables the implementation of a method for information analysis according to any one of claims 1 to 8 when the computer program is executed by a processor.

Citation Information

Patent Citations

  • Handover method and device

    KR1020200117030A

  • Method and equipment for handover

    KR1020210088638A

  • Systems and methods for preserving application identification information on handover in a communication network

    US20160345233A1