CN112242986A - Apparatus, system, and method for stream level switching of video streams - Google Patents
Apparatus, system, and method for stream level switching of video streams Download PDFInfo
- Publication number
- CN112242986A CN112242986A CN201910925535.2A CN201910925535A CN112242986A CN 112242986 A CN112242986 A CN 112242986A CN 201910925535 A CN201910925535 A CN 201910925535A CN 112242986 A CN112242986 A CN 112242986A
- Authority
- CN
- China
- Prior art keywords
- video stream
- instance
- quality level
- stream
- video
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1863—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast comprising mechanisms for improved reliability, e.g. status reports
- H04L12/1877—Measures taken prior to transmission
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/302—Route determination based on requested QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/38—Flow based routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/38—Flow control; Congestion control by adapting coding or compression rate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/611—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
The disclosed method may include (1) measuring a quality level of a first instance of a video stream received via a first link within a network, (2) measuring a quality level of a second instance of the video stream received via a second link within the network, (3) determining that the quality level of the second instance of the video stream is better than the quality level of the first instance of the video stream, and then, in response to determining that the quality level of the second instance of the video stream is better, (4) performing a stream level switch from the first instance of the video stream to the second instance of the video stream by (a) activating the second instance of the video stream and (B) deactivating the first instance of the video stream. Various other apparatuses, systems, and methods are also disclosed.
Description
Background
In some networks, duplicate video streams may be forwarded to certain nodes via separate links to facilitate reliable delivery of corresponding video content. These duplicate video streams may enable such networks to switch from one link to another in the event of a technical failure and/or interference. By switching from one link to another in this manner, these networks may be able to provide redundancy that ensures that corresponding video content is still able to be transmitted even in the event of technical failures, interference, and/or accidents. This switching technique is sometimes referred to as multicast-only fast reroute (MoFRR).
Unfortunately, MoFRR may suffer from certain drawbacks and/or disadvantages. For example, conventional MoFRR may be limited to link-level handovers only. In other words, when performing a conventional MoFRR by switching from one link to another, the entire link may be shut down. As a result, it is possible to force the transfer of all active video streams on one link to another link, even if some of the streams are healthy. Accordingly, the present disclosure identifies and addresses a need for additional and improved apparatuses, systems, and methods for stream level switching of video streams.
Disclosure of Invention
As will be described in greater detail below, the present disclosure generally relates to an apparatus, system, and method for stream level switching of video streams. In one example, a method for accomplishing such a task may include: (1) measuring a quality level of a first instance of a video stream received via a first link within a network, wherein the first instance of the video stream is currently active and forwarded towards a destination of the video stream, (2) measuring a quality level of a second instance of the video stream received via a second link within the network, wherein the second instance of the video stream is currently inactive and is not forwarded towards the destination of the video stream, (3) determining that the quality level of the second instance of the video stream is better than the quality level of the first instance of the video stream, and then in response to determining that the quality level of the second instance of the video stream is better, (4) performing a stream level switch from the first instance of the video stream to the second instance of the video stream by (a) activating the second instance of the video stream and (B) deactivating the first instance of the video stream.
Similarly, a system implementing the above-described method may include a physical processing device configured to execute various modules stored in memory. In one example, the system can include and/or execute (1) a measurement module that (a) measures a quality level of a first instance of a video stream received via a first link within a network, wherein the first instance of the video stream is currently active and forwarded to a destination of the video stream, and (2) measures a quality level of a second instance of the video stream received via a second link within the network, wherein the second instance of the video stream is currently inactive and not forwarded to the destination of the video stream; (2) a determination module that determines that a quality level of a second instance of the video stream is better than a quality level of a first instance of the video stream, and (3) a determination module that performs a stream level switch from the first instance of the video stream to the second instance of the video stream by (a) activating the second instance of the video stream and (B) deactivating the first instance of the video stream.
Additionally or alternatively, an apparatus implementing the above method may comprise: a first interface communicatively coupled to a first link within a network, and a second interface communicatively coupled to a second link within the network. In one example, the apparatus may also include a physical processing device communicatively coupled to the first interface and the second interface. In this example, the physical processing device may: (1) measuring a quality level of a first instance of a video stream received via a first link within a network, wherein the first instance of the video stream is currently active and forwarded towards a destination of the video stream, (2) measuring a quality level of a second instance of the video stream received via a second link within the network, wherein the second instance of the video stream is currently inactive and not forwarded towards the destination of the video stream, (3) determining that the quality level of the second instance of the video stream is better than the quality level of the first instance of the video stream, and then (4) performing a stream level switch from the first instance of the video stream to the second instance of the video stream by (a) activating the second instance of the video stream and (B) deactivating the first instance of the video stream.
Features from any of the above-described embodiments may be used in combination with each other, in accordance with the general principles described herein. These and other embodiments, features and advantages will be more fully understood from the following detailed description, when read in conjunction with the accompanying drawings and claims.
Drawings
The accompanying drawings illustrate various exemplary embodiments and are a part of the specification. Together with the following description, these drawings illustrate and explain various principles of the present disclosure.
FIG. 1 is a block diagram of an exemplary system for stream level switching of video streams;
FIG. 2 is a block diagram of an exemplary system for stream level switching of video streams;
FIG. 3 is a flow diagram of an exemplary method for stream level switching of video streams;
FIG. 4 is a block diagram of an exemplary system for stream level switching of video streams;
FIG. 5 is a diagram of exemplary video stream metadata including a video and a stream key appended to a paired video stream;
FIG. 6 is an illustration of exemplary video stream metadata including alert levels and values corresponding to paired video streams; and
FIG. 7 is a block diagram of an exemplary computing system that can be implemented and/or used in connection with one or more embodiments described and/or illustrated herein.
Throughout the drawings, identical reference numbers and descriptions indicate similar, but not necessarily identical, elements. While the exemplary embodiments described herein are susceptible to various modifications and alternative forms, specific embodiments have been shown by way of example in the drawings and will be described in detail herein. However, the exemplary embodiments described herein are not intended to be limited to the particular forms disclosed. Rather, the disclosure is to cover all modifications, equivalents, and alternatives falling within the scope of the appended claims.
Detailed Description
This disclosure describes various apparatuses, systems, and methods for stream level switching of video streams. As will be explained in more detail below, by periodically comparing the quality of paired video streams arriving via separate ingress links, embodiments of the present disclosure may be able to ensure that the healthiest highest quality video stream is delivered to the end user. For example, embodiments of the present disclosure may measure the quality of a video stream at intervals (e.g., 1 second intervals, 2 second intervals, etc.) based at least in part on certain quality indicators and/or metrics, such as media rate variation, delay factor, media loss rate, and/or video jitter. In this example, the paired video stream may include and/or represent an active stream arriving at the network node via one ingress link and an inactive stream arriving at the network node via another ingress link. The active and inactive streams may carry and/or facilitate the same video stream and/or content as one another. The network node may forward the active flow to its destination but discard the inactive flow.
In some examples, the network node may periodically evaluate and/or re-evaluate which of the currently paired video streams exhibits better quality. In the event that the active video stream currently exhibits better quality than the inactive video stream, the network node may continue to forward the stream to its destination to facilitate delivery of the corresponding video content. However, in case the inactive video stream currently exhibits a better quality than the active stream, then the network node may perform a stream level handover instead of a link level handover. To achieve such a flow level switch, the network node may deactivate a currently active video flow to one ingress link and activate a currently inactive video flow to another ingress link.
Unlike link-level switching, however, the stream-level switching may have no significant impact on other video streams transmitted over one ingress link. For example, an ingress link carrying an active video stream may also carry one or more additional video streams. In this example, even if the health of the active video stream begins to deteriorate, those additional video streams may remain healthy on the ingress link. During a level switch, the network node may switch from an active video stream arriving on one ingress link to an inactive video stream arriving on another ingress link. However, the network node may continue to forward additional video streams arriving on the same ingress link as the most recently deactivated video stream. By doing so, the network node may be able to achieve a higher granularity of switching at the flow level rather than at the link level.
Detailed descriptions of exemplary apparatus, systems, and corresponding implementations for stream level switching of video streams are provided below with reference to fig. 1, 2, and 4. A detailed description of exemplary video stream metadata will be provided in connection with fig. 5 and 6. A detailed description of an exemplary computer-implemented method for stream level switching of video streams will be provided in connection with fig. 3. Additionally, a detailed description of an exemplary computing system for performing these methods will be provided in connection with FIG. 7.
Fig. 1 illustrates an exemplary system 100 that facilitates stream level switching of video streams. As shown in FIG. 1, system 100 may include one or more modules 102 for performing one or more tasks. As will be explained in greater detail below, the module 102 may include a measurement module 104, a determination module 106, a switching module 108, and/or a keying module 110. Although shown as separate elements, one or more of modules 102 in fig. 1 may represent portions of a single module or application (such as an operating system, a processing application, and/or a network application) running on a processing device, a routing engine, a field replaceable unit, a packet forwarding engine, and/or any other suitable component of a network device.
In some embodiments, one or more of modules 102 in fig. 1 may represent one or more software applications or programs that, when executed by a computing device, cause the computing device to perform one or more tasks. For example, and as will be described in greater detail below, one or more of modules 102 may represent modules stored on and configured to run on one or more computing devices, such as the devices shown in fig. 2 (e.g., computing device 202, computing device 210, and/or network device 206). One or more of the modules 102 in fig. 1 may also represent all or part of one or more special-purpose computers configured to perform one or more tasks.
As shown in fig. 1, exemplary system 100 may also include one or more memory devices, such as memory 140. Memory 140 generally represents any type or form of volatile or non-volatile storage device or medium capable of storing data and/or computer-readable instructions. In one example, memory 140 may store, load, and/or maintain one or more of modules 102. Examples of memory 140 include, but are not limited to, Random Access Memory (RAM), Read Only Memory (ROM), flash memory, a Hard Disk Drive (HDD), a Solid State Drive (SSD), an optical disk drive, a cache, variations or combinations of one or more of the above, and/or any other suitable memory.
As shown in fig. 1, the exemplary system 100 may also include one or more physical processors, such as physical processor 130. Physical processor 130 generally represents any type or form of hardware-implemented processing device capable of interpreting and/or executing computer-readable instructions. In one example, the physical processor 130 may access and/or modify one or more of the modules 102 stored in the memory 140. Additionally or alternatively, the physical processor 130 may execute one or more of the modules 102 to facilitate switching of video streams. Examples of physical processors 130 include, but are not limited to: a CPU, a microprocessor, a microcontroller, a Field Programmable Gate Array (FPGA) implementing a soft-core processor, an Application Specific Integrated Circuit (ASIC), portions of one or more of the above, variations or combinations of one or more of the same, and/or any other suitable physical processor.
As shown in fig. 1, exemplary system 100 may also include and/or involve one or more video streams, such as video stream 120. In some examples, video stream (video stream) 120 may include and/or represent a video stream (video stream), video content, and/or video data transmitted from one device and/or to another device via a network. In one example, video stream 120 may include and/or represent a single instance of a video stream traversing and/or traveling through a network. Additionally or alternatively, video stream 120 may include and/or represent multiple instances of a video stream traversing and/or traveling through a network.
The exemplary system 100 in fig. 1 may be implemented in various ways. For example, all or a portion of exemplary system 100 may represent a portion of exemplary system 200 in fig. 2. As shown in fig. 2, system 200 may include a network 204 that facilitates communication between computing device 202 and/or computing device 210. In one example, network 204 may include and/or incorporate network device 206. The network device 206 may also include and/or incorporate the memory 140 and the physical processor 130. In this example, the physical processor 130 may execute one or more modules 102 stored in the memory 140 for the purpose of stream level switching of video streams. Additionally, network device 206 may include interfaces 216(1) and 216(2) that facilitate communication with computing device 202 via links 224(1) and 224 (2).
For example, and as will be described in more detail below, one or more of the modules 102 may cause the network device 206 to: (1) measuring a quality level of a video stream 120(1) received via link 224(1) within network 204, wherein video stream 120(1) is currently active and forwarded to a destination of video stream 120(1), (2) measuring a quality level of a video stream 120(2) received via link 224(2) within network 204, wherein video stream 120(2) is currently inactive and not forwarded to a destination of video stream 120(2), (3) determining that a quality level of video stream 120(2) is better than a quality level of video stream 120(1), and then (4) performing a stream level switch from video stream 120(1) to video stream 120(2) by (a) activating video stream 120(2) and (B) deactivating video stream 120 (1).
Network 204 generally represents any medium or architecture capable of facilitating communication or data transfer. In one example, network 204 can facilitate communication between network device 206 and computing device 202 and/or computing device 210. In this example, the network 204 may facilitate communication or data transfer using wireless and/or wired connections. Examples of network 204 include, but are not limited to, an intranet, a Wide Area Network (WAN), a Local Area Network (LAN), a Personal Area Network (PAN), the internet, Power Line Communications (PLC), a cellular network (e.g., a global system for mobile communications (GSM) network), portions of one or more of the above, variations or combinations of one or more of the above, and/or any other suitable network. Although shown in fig. 2 as being external to network 204, computing devices 202 and 210 may alternatively represent portions of network 204 and/or be included in network 204.
Interfaces 216(1) and 216(2) each generally represent any type or form of physical and/or virtual interface that facilitates communicatively coupling computing devices to one another via a link. Examples of interfaces 216(1) and 216(2) include, but are not limited to, a Network Interface Card (NIC), a packet forwarding engine, a routing engine, a physical interface card (PI C), a Flexible PIC Concentrator (FPC), a Switch Interface Board (SIB), a control board, a communication port, a fan tray, a connector interface panel, a line card, an egress interface, an ingress interface, a virtual interface partitioned over a physical interface, portions of one or more of the above, combinations or variations of one or more of the above, and/or any other suitable interface.
Links 224(1) and 224(2) each generally represent any type or form of communication cable, channel, and/or conduit that facilitates forwarding a video stream from one device to another. Examples of links 224(1) and 224(2) include, but are not limited to, fiber optic cables, coaxial cables, twisted pair cables, ethernet cables, combinations or variations of one or more of the above, and/or any other suitable link.
Fig. 3 is a flow diagram of an exemplary computer-implemented method 300 for stream level switching of video streams. The steps illustrated in fig. 3 may be performed by any suitable computer-executable code and/or computing system, including system 100 in fig. 1, system 200 in fig. 2, system 700 in fig. 7, and/or variations or combinations of one or more of the foregoing. In one example, each step shown in fig. 3 may represent an algorithm whose structure includes and/or is represented by a plurality of sub-steps, examples of which are provided in more detail below.
As shown in fig. 3, at step 310, one or more of the systems described herein may measure a quality level of a first instance of a video stream received via a first link within a network. For example, as part of network device 206 in fig. 2, measurement module 104 may measure the quality level of video stream 120(1) received from computing device 202 via link 224(1) within network 204. In this example, link 224(1) may communicatively couple computing device 202 and network device 206 to each other. One side of link 224(1) may connect and/or attach to interface 216(1) of network device 206.
In one example, video stream 120(1) may include and/or represent an instance of a video stream that is transmitted and/or communicated via network 204. Video stream 120(1) may be currently active and/or forwarded to the destination of video stream 120 (1). In this example, computing device 210 may represent a destination for video stream 120 (1).
The system described herein may perform step 310 in a variety of different ways and/or in a variety of different contexts. In some examples, measurement module 104 may identify one or more quality indicators for video stream 120 (1). In these examples, measurement module 104 may use such quality indicators to measure and/or gauge the quality of video stream 120 (1). Examples of such quality indicators include, but are not limited to: a media rate change representing a relationship between an expected packet rate and an actual packet rate, a delay factor component, a media loss rate component, a video jitter component, a combination or variation of one or more of the above, and/or any other suitable quality indicator.
In some examples, the expected packet rate may include and/or represent a speed at which the expected video stream provides and/or transmits packets from the computing device 202 to the network device 206 via the link 224 (1). In one example, measurement module 104 may identify an expected packet rate based at least in part on certain characteristics and/or attributes of video stream 120 (1). For example, measurement module 104 may identify the expected packet rate by examining and/or searching metadata of video stream 120 (1). Additionally or alternatively, measurement module 104 may receive an expected packet rate from a computing device (such as computing devices 202 and/or 210).
As an example, measurement module 104 may determine and/or calculate an expected packet rate based at least in part on certain characteristics and/or attributes of video stream 120 (1). For example, measurement module 104 may determine and/or calculate the expected packet rate by applying the following formula:in this example, the expected media rate may correspond to and/or represent a rate (e.g., in bits per second) at which the video stream 120 is expected (1) to traverse and/or pass through the network device 206 during a Media Delivery Index (MDI) interval. In other words, the expected media rate may explain the expectation that during the MDI interval, the network device will be passed throughData size of 206. The media packet count may correspond to and/or represent the number of media packets carried via the network layer and/or layer 3 during the MDI interval. Additionally, the media packet size may correspond to and/or represent the size (e.g., in bits) of each of these media packets.
In some embodiments, the expected media rate may correspond to, coincide with, and/or track the type of media involved in video stream 120(1) and/or the desired resolution of video stream 120 (1). As a particular example, video stream 120(1) may include and/or represent 1080p high definition video. In this example, to achieve and/or maintain the desired quality of such video, video stream 120(1) may have an expected media rate of 5000 kilobits per second. As another example, video stream 120(1) may include and/or represent 720p high definition video. In this example, to achieve and/or maintain the desired quality of such video, the video stream 120(1) may have an expected media rate of 2500 kilobits per second.
In some examples, measurement module 104 may measure and/or determine an actual packet rate of video stream 120(1) at network device 206. In this example, the actual packet rate may include and/or represent the speed at which the video stream 120(1) actually provides and/or delivers packets from the computing device 202 to the network device 206 via the link 224 (1). Additionally or alternatively, measurement module 104 may receive statistics of video stream 120(1) from computing device 202, computing device 210, and/or a separate network device (not necessarily shown in fig. 2) within network 204. Based on these statistics, measurement module 104 may determine the actual packet rate of video stream 120 (1).
In some examples, measurement module 104 may calculate and/or determine a media rate change for video stream 120(1) based at least in part on the expected packet rate and the actual packet rate. In one example, measurement module 104 may calculate the media rate change by subtracting the expected packet rate from the actual packet rate. In this example, the media rate change may be expressed as a percentage of the expected packet rate for the MDI interval. For example, measurement module 104 may calculate media by applying the following formulaChange of body velocity:in this example, the media rate change may serve as a valid indicator and/or metric of the quality and/or health of the video stream 120 (1).
In some examples, media rate changes may not necessitate Deep Packet Inspection (DPI). Accordingly, measurement module 104 may be able to calculate the media rate change as an inline function without introducing too much (if any) delay in video stream 120 (1). In one example, the systems and methods disclosed herein may rely on media rate changes as a preliminary query for the quality of video stream 120(1) without invoking DPI. On the one hand, if the media rate change indicates that the quality of video stream 120(1) appears to be worse than the quality of video stream 120(2), then the systems and methods may choose to switch from video stream 120(1) to video stream 120 (2). On the other hand, if the media rate change indicates that the quality of video stream 120(1) appears to be better than the quality of video stream 120(2), then the systems and methods may choose to keep video stream 120(1) active and video stream 120(2) inactive.
In some examples, measurement module 104 may generate an alarm value for video stream 120(1) based at least in part on a quality level of video stream (1). In one example, the alarm value may represent and/or correspond to an alarm level for video stream 120 (1). For example, an alarm definition may map a value of "8" to a "no alarm" level, a value of "4" to an "info" alarm level, a value of "2" to an "alert" alarm level, and/or a value of "1" to a "critical" alarm value. Measurement module 104 may store and/or record the alarm value for video stream 120(1) as metadata on network device 206 for reference and/or comparison purposes.
As shown in fig. 3, at step 320, one or more of the systems described herein may measure a quality level of a second instance of the video stream received via a second link within the network. For example, as part of network device 206 in fig. 2, measurement module 104 may measure the quality level of video stream 120(2) received from computing device 202 via link 224(2) within network 204. In this example, link 224(2) may communicatively couple computing device 202 and network device 206 to each other. One side of link 224(2) may connect and/or attach to interface 216(2) of network device 206.
In one example, video stream 120(2) may include and/or represent another instance of the same video stream as video stream 120 (1). Video stream 120(2) may currently be inactive and/or not forwarded to its destination. In this example, video stream 120(1) and video stream 120(2) may both be destined for computing device 210. However, because video stream 120(1) is active and video stream 120(2) is inactive, network device 206 may forward video stream 120(1) to computing device 210, but avoid forwarding video stream 120(2) to computing device 210. Accordingly, although video streams 120(1) and 120(2) are both destined for computing device 210, computing device 210 may only receive one of video streams 120(1) and 120(2) at any time.
In some examples, the term "active" as used herein may refer to a video stream forwarded by network device 206 to its destination. In such an example, the term "inactive" as used herein may refer to a video stream that is dropped by the network device 206 rather than being forwarded to its destination.
The system described herein may perform step 320 in a variety of different ways and/or in a variety of different contexts. In some examples, measurement module 104 may identify one or more quality indicators for video stream 120 (2). In these examples, measurement module 104 may use such quality indicators to measure and/or gauge the quality of video stream 120 (2). Additionally or alternatively, measurement module 104 may measure the quality of video stream 120(2) in any of the same manners described above in connection with step 310.
In some examples, one or more of the systems described herein may pair video streams 120(1) and 120(2) together. For example, as part of computing device 202 in fig. 2, keying module 110 may create video keys that apply to both video streams 120(1) and 120 (2). In this example, the keying module 110 may append the video key to the video streams 120(1) and 120 (2). Accordingly, the video key may serve as metadata for both video streams 120(1) and 120 (2). The video key may be the same for both video streams 120(1) and 120 (2).
Additionally or alternatively, the keying module 110 may create a first stream key that uniquely identifies the video stream 120(1) and/or a second stream key that uniquely identifies the video stream 120 (2). In this example, the keying module 110 may append the first stream key to the video stream 120(1) and/or append the second stream key to the video stream 120 (2). Accordingly, the first stream key may serve as metadata for video stream 120(1), and the second stream key may serve as metadata for video stream 120 (2). The first and second stream keys may be different from each other.
As a specific example shown in fig. 5, video stream 120(1) may have a video key that includes a 4-tuple (in this example, "{ 10.0.0.1, 10.0.0.2, 6970, 6971 }") that identifies the source address, destination address, source port, and destination port of video stream 120 (1). In this example, video stream 120(1) may have a stream key that includes a 5-tuple (in this example, "{ Link 224(1), 10.0.0.1, 10.0.0.2, 6970, 6971 }") that identifies the incoming Link, source address, destination address, source port, and destination port of video stream 120 (1). As further shown in this example of fig. 5, video stream 120(2) may have a video key that includes a 4-tuple (in this example, "{ 10.0.0.1, 10.0.0.2, 6970, 6971 }") that identifies the source address, destination address, source port, and destination port of video stream 120 (2). In this example, video stream 120(2) may have a stream key that includes a 5-tuple (in this example, "{ Link 224(2), 10.0.0.1, 10.0.0.2, 6970, 6971 }") that identifies the incoming Link, source address, destination address, source port, and destination port of video stream 120 (2).
In some examples, measurement module 104 may generate an alarm value for video stream 120(2) based at least in part on a quality level of video stream (2). In one example, the alarm value may represent and/or correspond to an alarm level of video stream 120 (2). In this example, measurement module 104 may store and/or record the alarm value of video stream 120(2) as metadata on network device 206 for reference and/or comparison purposes.
As a specific example shown in fig. 6, video stream 120(1) may have an alarm value of "2" corresponding to an "alarm level. As further shown in this example of fig. 6, video stream 120(2) may have an alert value of "8" corresponding to a "no alert" level.
As shown in fig. 3, at step 330, one or more of the systems described herein may determine that the quality level of the second instance of the video stream is better than the quality level of the first instance of the video stream. For example, determination module 106 may determine that the quality level of video stream 120(2) is now better and/or higher than the quality level of video stream 120 (1). In other words, the determination module 106 may determine that the video stream 120(2) is now healthier and/or of higher quality than the video stream 120 (1).
The system described herein may perform step 330 in a variety of different ways and/or in a variety of different contexts. In some examples, determination module 106 may compare the quality levels of video streams 120(1) and 120(2) to each other. For example, the determination module 106 may compare one or more quality indicators of the video streams 120(1) and 120(2) to each other. The determination module 106 may then determine, based at least in part on the comparison, that the quality level of video stream 120(2) is now better than the quality level of video stream 120 (1).
Referring to the particular example shown in fig. 6, determination module 106 may compare alarm value "2" and/or alarm level "alert" of video stream 120(1) to alarm value "8" and/or alarm level "no alarm" of video stream 120 (2). In this example, determination module 106 may determine that video stream 120(2) now exhibits better quality than video stream 120(1) because the alarm value "8" of video stream 120(2) is less important than the alarm value "2" of video stream 120 (1).
In some examples, the quality levels of video streams 120(1) and 120(2) may be re-measured and/or re-evaluated periodically (e.g., every second, every 2 seconds, every 3 seconds, etc.). For example, the determination module 106 may reevaluate and/or reconsider which of the video streams 120(1) and 120(2) has better quality every 2 seconds during the video stream session. In this example, measurement module 104 may re-measure the quality level of video streams 120(1) and 120(2) every 2 seconds. During one of these 2-second intervals, determination module 106 may determine that the quality of video stream 120(2) is better than the quality of video stream 120 (1). Later, during another of these 2-second intervals, determination module 106 may determine that the quality of video stream 120(1) is better than the quality of video stream 120 (2).
Additionally or alternatively, measurement module 104 may re-measure the quality level of video streams 120(1) and 120(2) over a series of 2 second intervals. In one example, after a series of 2 second intervals, determination module 106 may determine that the quality of video stream 120(2) is better than the quality of video stream 120 (1). Later, after another series of 2-second intervals, the determination module 106 may determine that the quality of video stream 120(1) is better than the quality of video stream 120 (2).
In some examples, determination module 106 and/or switching module 108 may determine that the quality levels of video streams 120(1) and 120(2) are currently the same and/or equal to each other. In such an example, due at least in part to the quality levels of video streams 120(1) and 120(2) being equal, determination module 106 and/or switching module 108 may determine that no switching is necessary at that time. This determination may facilitate conservation of resources and/or simplicity of desired functionality.
As shown in fig. 3, at step 340, one or more of the systems described herein may perform a stream level switch from a first instance of the video stream to a second instance of the video stream in response to determining that the quality level of the second instance of the video stream is better. For example, as part of network device 206 in fig. 2, switching module 108 may perform a stream level switch from video stream 120(1) to video stream 120(2) in response to determining that the quality level of video stream 120(2) is better than the quality level of video stream 120 (1). In this example, the switching module 108 may implement the stream level switching by activating the video stream 120(2) and deactivating the video stream 120 (1).
The system described herein may perform step 340 in a variety of different ways and/or in a variety of different contexts. In some examples, switching module 108 may activate video stream 120(2) by starting to forward video stream 120(2) toward its destination (e.g., computing device 210). In these examples, switching module 108 may deactivate video stream 120(1) by refraining from forwarding video stream 120(1) toward the destination (e.g., computing device 210).
In some examples, switching module 108 may modify and/or change the active video stream and/or the inactive video stream from one interval and/or series of intervals to another interval and/or series of intervals according to its quality level. Additionally or alternatively, the switching module 108 may maintain the active video stream and/or the inactive video stream from one interval and/or series of intervals to another interval and/or series of intervals depending on its quality level.
In some examples, since the switch is at the stream level rather than the link level, the switch module 108 may keep one or more additional streams received via link 224(1) active despite deactivating the video stream 120(1) received via link 224 (1). Accordingly, the switching module 108 may avoid entirely closing the link 224(1) when performing a stream level switch. In other words, when performing a stream level switch, the switch module 108 may allow at least some of the video streams received via link 224(1) to remain active even though the video stream 120(1) has been deactivated. In one example, those video streams that are allowed to remain active on link 224(1) may be healthier and/or of higher quality (not necessarily shown in fig. 2) than the counterparts on link 224(2) and/or the other link.
Additionally or alternatively, the switching module 108 may deactivate at least one additional video stream received via link 224(2) despite activating the video stream 120(2) received via link 224 (2). Accordingly, each video stream received via links 224(1) and 224(2) may be independent of each other for activation and/or deactivation. In other words, any video streams received via links 224(1) and 224(2) may be activated and/or deactivated independently of other streams received via those links.
As described above in connection with fig. 1-6, the apparatus, systems, and methods disclosed herein may be capable of facilitating stream level switching of video streams. This new stream level switching technique may sometimes be referred to as video-only fast retransmission (VoFRR). In some examples, the VoFRR may provide a consistent high quality video stream over the network. For this purpose, the VoFRR may receive the main video stream and the auxiliary video stream through two links. The VoFRR may monitor the quality of these codestreams and select the stream with the best quality to forward and silently discard another stream of poor quality.
FIG. 7 is a block diagram of an exemplary computing system 700 that can be implemented and/or used in connection with one or more embodiments described and/or illustrated herein. In some embodiments, all or a portion of computing system 700 may perform one or more of the steps described in conjunction with fig. 3, and/or be a means for performing one or more of the steps described in conjunction with fig. 3, alone or in combination with other elements. All or a portion of computing system 700 may also perform and/or be a means for performing and/or implementing any other step, method, or process described and/or illustrated herein.
In certain embodiments, exemplary computing system 700 may include one or more components or elements in addition to processor 714 and system memory 716. For example, as shown in fig. 7, computing system 700 may include a memory controller 718, an input/output (I/O) controller 720, and a communication interface 722, each of which may be interconnected via a communication infrastructure 712. Communication infrastructure 712 generally represents any type or form of infrastructure capable of facilitating communication between one or more components of a computing device. Examples of communication infrastructure 712 include, but are not limited to, a communication bus (such as serial ata (sata), an Industry Standard Architecture (ISA), a Peripheral Component Interconnect (PCI), PCI Express (PCIe), and/or any other suitable bus) and a network.
Memory controller 718 generally represents any type or form of device capable of processing memory or data or controlling communication between one or more components of computing system 700. For example, in certain embodiments, memory controller 718 may control communication between processor 714, system memory 716, and I/O controller 720 via communication infrastructure 712. In some embodiments, memory controller 718 may include a Direct Memory Access (DMA) unit that may transfer data (e.g., packets) to or from a link adapter.
I/O controller 720 generally represents any type or form of device or module capable of coordinating and/or controlling the input and output functions of a computing device. For example, in certain embodiments, I/O controller 720 may control or facilitate data transfers between one or more elements of computing system 700, such as processor 714, system memory 716, communication interface 722, and storage interface 730.
In certain embodiments, communication interface 722 may also represent a host adapter configured to facilitate communications between computing system 700 and one or more additional network or storage devices via an external bus or communication channel. Examples of host adapters include, but are not limited to, Small Computer System Interface (SCSI) host adapters, Universal Serial Bus (USB) host adapters, IEEE 1394 host adapters, Advanced Technology Attachment (ATA), parallel ATA (pata), serial ATA (sata), and external sata (esata) host adapters, fibre channel interface adapters, ethernet adapters, and the like. Communication interface 722 may also enable computing system 700 to engage in distributed or remote computing. For example, communication interface 722 may receive instructions from a remote device or send instructions to a remote device for execution.
As shown in fig. 7, exemplary computing system 700 may also include a primary storage device 732 and/or a backup storage device 734 coupled to communication infrastructure 712 via a storage interface 730. Storage devices 732 and 734 generally represent any type or form of storage device or medium capable of storing data and/or other computer-readable instructions. For example, storage devices 732 and 734 may represent magnetic disk drives (e.g., so-called hard drives), solid state drives, floppy disk drives, tape drives, optical disk drives, flash memory drives, and so forth. Storage interface 730 generally represents any type or form of interface or device for transferring data between storage devices 732 and 734 and other components of computing system 700.
In certain embodiments, storage devices 732 and 734 may be configured to read from and/or write to a removable storage unit configured to store computer software, data, or other computer-readable information. Examples of suitable removable storage units include, but are not limited to, floppy disks, magnetic tape, optical disks, flash memory devices, and the like. Storage devices 732 and 734 may also include other similar structures or devices for allowing computer software, data, or other computer-readable instructions to be loaded into computer system 700. For example, storage devices 732 and 734 may be configured to read and write software, data, or other computer-readable information. Storage devices 732 and 734 may be part of computing system 700 or may be separate devices accessed through an interface system.
Many other devices or subsystems may be connected to computing system 700. Conversely, not all of the components and devices illustrated in fig. 7 need be present to practice embodiments described and/or illustrated herein. The devices and subsystems referenced above may also be interconnected in different ways from that shown in fig. 7. Computing system 700 may also employ any number of software, firmware, and/or hardware configurations. For example, one or more of the exemplary embodiments disclosed herein may be encoded as a computer program (also referred to as computer software, software applications, computer-readable instructions, or computer control logic) on a computer-readable medium. The term "computer-readable medium" generally refers to any form of device, carrier, or medium capable of storing or carrying computer-readable instructions. Examples of computer-readable media include, but are not limited to, transmission-type media such as carrier waves, and non-transitory-type media such as magnetic storage media (e.g., hard disk drives and floppy disks), optical storage media (e.g., Compact Disks (CDs) and Digital Video Disks (DVDs)), electronic storage media (e.g., solid state drives and flash memory media), and other distribution systems.
While the foregoing disclosure sets forth various embodiments using specific block diagrams, flowcharts, and examples, each block diagram component, flowchart step, operation, and/or component described and/or illustrated herein may be implemented, individually and/or collectively, using a variety of hardware, software, or firmware (or any combination thereof) configurations. In addition, any disclosure of components contained within other components should be considered exemplary, as many other architectures can be implemented which achieve the same functionality.
In some examples, all or a portion of system 100 in fig. 1 may represent part of a cloud computing or network-based environment. Cloud computing and network-based environments may provide various services and applications via the internet. These cloud computing and network-based services (e.g., software as a service, platform as a service, infrastructure as a service, etc.) may be accessed through a web browser or other remote interface. The various functions described herein may also provide network switching capabilities, gateway access capabilities, network security functions, content caching and delivery services for the network, network control services, and/or other networking functions.
In addition, one or more modules described herein may transform data, physical devices, and/or representations of physical devices from one form to another. Additionally or alternatively, one or more modules described herein may transform a processor, volatile memory, non-volatile memory, and/or any other portion of a physical computing device from one form to another form by executing on the computing device, storing data on the computing device, and/or otherwise interacting with the computing device.
The process parameters and the sequence of steps described and/or illustrated herein are given by way of example only and may be varied as desired. For example, while the steps shown and/or described herein may be shown or discussed in a particular order, these steps need not necessarily be performed in the order shown or discussed. Various exemplary methods described and/or illustrated herein may also omit one or more steps described or illustrated herein, or include additional steps in addition to those disclosed.
The preceding description has been provided to enable others skilled in the art to best utilize various aspects of the exemplary embodiments disclosed herein. The exemplary description is not intended to be exhaustive or limited to any precise form disclosed. Many modifications and variations are possible without departing from the spirit and scope of the disclosure. The embodiments disclosed herein are to be considered in all respects as illustrative and not restrictive. In determining the scope of the present disclosure, reference should be made to the appended claims and their equivalents.
Unless otherwise indicated, the terms "connected to" and "coupled to" (and derivatives thereof) as used in the specification and claims should be construed to allow direct and indirect (i.e., via other elements or components) connection. In addition, the terms "a" or "an" as used in the specification and claims should be understood to mean "at least one". Finally, for convenience in use, the terms "comprising" and "having" (and derivatives thereof) as used in the specification and claims may be interchanged with and have the same meaning as "comprising".
Claims (15)
1. A method, comprising:
measuring a quality level of a first instance of a video stream received via a first link within a network, wherein the first instance of the video stream is currently active and forwarded towards a destination of the video stream;
measuring a quality level of a second instance of the video stream received via a second link within the network, wherein the second instance of the video stream is currently inactive and not forwarded toward the destination of the video stream;
determining that the quality level of the second instance of the video stream is better than the quality level of the first instance of the video stream; and
in response to determining that the quality level of the second instance of the video stream is better, performing a stream level switch from the first instance of the video stream to the second instance of the video stream by:
activating the second instance of the video stream; and
deactivating the first instance of the video stream.
2. The method of claim 1, further comprising pairing the first instance of the video stream received via the first link with the second instance of the video stream received via the second link by:
creating a video key that applies to the first instance and the second instance of the video stream; and
appending the video key to the first instance and the second instance of the video stream.
3. The method of claim 1, further comprising:
appending a first stream key to the first instance of the video stream that uniquely identifies the first instance of the video stream; and
appending a second stream key that uniquely identifies the second instance of the video stream to the second instance of the video stream.
4. The method of claim 1, wherein:
measuring the quality level of the first instance of the video stream comprises identifying at least one quality indicator for the first instance of the video stream;
measuring the quality level of the second instance of the video stream comprises identifying at least one quality indicator for the second instance of the video stream; and
determining that the quality level of the second instance of the video stream is better comprises:
comparing the quality indicator for the first instance of the video stream to the quality indicator for the second instance of the video stream; and
determining, based at least in part on the comparison, that the quality level of the second instance of the video stream is better than the quality level of the first instance of the video stream.
5. The method of claim 4, wherein the quality indicator for the first and second instances of the video stream comprises at least one of:
a media rate change representing a relationship between an expected packet rate and an actual packet rate;
a delay factor component;
a media loss rate component; and
a video shake component.
6. The method of claim 1, wherein:
measuring the quality level of the first instance of the video stream comprises generating an alert value for the first instance of the video stream;
measuring the quality level of the second instance of the video stream comprises generating an alert value for the second instance of the video stream; and
determining that the quality level of the second instance of the video stream is better comprises: determining that the alarm value for the second instance of the video stream is less important than the alarm value for the first instance of the video stream.
7. The method of claim 1, further comprising periodically reevaluating whether the quality level of the first instance is better than the quality level of the second instance.
8. The method of claim 7, wherein reevaluating whether the quality level of the first instance is better than the quality level of the second instance comprises:
re-measuring the quality level of the first instance of the video stream;
re-measuring the quality level of the second instance of the video stream;
determining that the quality level of the first instance of the video stream is better than the quality level of the second instance of the video stream; and
in response to determining that the quality level of the first instance of the video stream is better, performing another stream level switch by:
activating the first instance of the video stream; and
deactivating the second instance of the video stream.
9. The method of claim 7, wherein reevaluating whether the quality level of the first instance is better than the quality level of the second instance comprises:
re-measuring the quality level of the first instance of the video stream over a series of intervals;
re-measuring the quality level of the second instance of the video stream over the series of intervals;
determining that the quality level of the first instance of the video stream is better than the quality level of the second instance of the video stream over the series of intervals; and
in response to determining that the quality level of the first instance of the video stream is better, performing another stream level switch by:
activating the first instance of the video stream; and
deactivating the second instance of the video stream.
10. The method of claim 1, wherein performing the stream level switching comprises:
forwarding the second instance of the video stream toward the destination of the video stream; and
refraining from forwarding the first instance of the video stream toward the destination of the video stream.
11. The method of claim 1, wherein performing the stream level switching comprises: at least one additional stream received via the first link is kept active despite deactivating the first instance of the video stream received via the first link.
12. The method of claim 1, wherein performing the stream level switching comprises: while activating the second instance of the video stream received via the second link, deactivating at least one additional stream received via the second link.
13. A system, comprising:
a measurement module stored in memory, the measurement module to:
measuring a quality level of a first instance of a video stream received via a first link within a network, wherein the first instance of the video stream is currently active and forwarded towards a destination of the video stream; and
measuring a quality level of a second instance of the video stream received via a second link within the network, wherein the second instance of the video stream is currently inactive and not forwarded toward the destination of the video stream; a determination module stored in memory that determines that the quality level of the second instance of the video stream is better than the quality level of the first instance of the video stream; a switching module stored in memory, the switching module to perform a stream level switch from the first instance of the video stream to the second instance of the video stream by:
activating the second instance of the video stream; and
deactivating the first instance of the video stream; and
at least one physical processing device configured to execute the measurement module, the determination module, and the switching module.
14. The system of claim 13, further comprising a keying module stored in memory that pairs the first instance of the video stream received via the first link with the second instance of the video stream received via the second link by:
creating a video key that applies to the first instance and the second instance of the video stream; and
appending the video key to the first instance and the second instance of the video stream.
15. An apparatus, comprising:
a first interface communicatively coupled to a first link within a network;
a second interface communicatively coupled to a second link within the network; and
at least one physical processing device communicatively coupled to the first interface and the second interface, wherein the physical processing device is to:
measuring a quality level of a first instance of a video stream received via the first link, wherein the first instance of the video stream is currently active and forwarded towards a destination of the video stream;
measuring a quality level of a second instance of the video stream received via the second link, wherein the second instance of the video stream is currently inactive and not forwarded toward the destination of the video stream;
determining that the quality level of the second instance of the video stream is better than the quality level of the first instance of the video stream; and
performing a stream-level switch from the first instance of the video stream to the second instance of the video stream by:
activating the second instance of the video stream; and
deactivating the first instance of the video stream.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/517,032 US11245742B2 (en) | 2019-07-19 | 2019-07-19 | Apparatus, system, and method for flow-level switchover of video streams |
US16/517,032 | 2019-07-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112242986A true CN112242986A (en) | 2021-01-19 |
CN112242986B CN112242986B (en) | 2023-03-28 |
Family
ID=68104393
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910925535.2A Active CN112242986B (en) | 2019-07-19 | 2019-09-27 | Apparatus, system, and method for stream level switching of video streams |
Country Status (3)
Country | Link |
---|---|
US (1) | US11245742B2 (en) |
EP (1) | EP3767911A1 (en) |
CN (1) | CN112242986B (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022262398A1 (en) * | 2021-06-16 | 2022-12-22 | 荣耀终端有限公司 | Channel switching method, and electronic device and storage medium |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070101379A1 (en) * | 2005-11-02 | 2007-05-03 | Michael Pereira | Method of fault tolerance and synchronous failover for broadcast video across the network |
WO2009046646A1 (en) * | 2007-10-09 | 2009-04-16 | Huawei Technologies Co., Ltd. | A method, apparatus and system for performing redundant backup on video service |
US8155022B1 (en) * | 2009-03-24 | 2012-04-10 | Qlogic, Corporation | Method and system for controlling power consumption in network nodes |
US20140020037A1 (en) * | 2012-07-16 | 2014-01-16 | Eric D. Hybertson | Multi-stream shared communication channels |
US20140201330A1 (en) * | 2011-04-05 | 2014-07-17 | Telefonica, S.A. | Method and device for quality measuring of streaming media services |
US8837479B1 (en) * | 2012-06-27 | 2014-09-16 | Juniper Networks, Inc. | Fast reroute between redundant multicast streams |
US9292826B1 (en) * | 2011-12-21 | 2016-03-22 | Time Warner Cable Enterprises Llc | Adaptive bit rates in multicast communications |
CN106060605A (en) * | 2016-05-25 | 2016-10-26 | 清华大学深圳研究生院 | CDN-based live stream self-adaption method and system |
US9806895B1 (en) * | 2015-02-27 | 2017-10-31 | Juniper Networks, Inc. | Fast reroute of redundant multicast streams |
WO2017221050A1 (en) * | 2016-06-23 | 2017-12-28 | Telefonaktiebolaget Lm Ericsson (Publ) | Efficient handling of multi-destination traffic in multi-homed ethernet virtual private networks (evpn) |
US20180212861A1 (en) * | 2017-01-23 | 2018-07-26 | Cisco Technology, Inc. | Distributing network path information in a network environment |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7448061B2 (en) * | 2004-06-21 | 2008-11-04 | Dolby Laboratories Licensing Corporation | Frame synchronization in an ethernet NTP time-keeping digital cinema playback system |
US8611356B2 (en) * | 2009-11-13 | 2013-12-17 | Exalt Communications Incorporated | Apparatus for ethernet traffic aggregation of radio links |
US8861342B2 (en) * | 2011-10-28 | 2014-10-14 | Cisco Technology, Inc. | Multicast-only fast re-route processing for point-to-multipoint pseudowire |
US9654527B1 (en) * | 2012-12-21 | 2017-05-16 | Juniper Networks, Inc. | Failure detection manager |
EP3860130A1 (en) * | 2013-08-16 | 2021-08-04 | bitmovin GmbH | Apparatus and method for constant quality optimization for adaptive streaming |
US10439909B2 (en) * | 2014-05-16 | 2019-10-08 | Cisco Technology, Inc. | Performance monitoring in a multi-site environment |
US10554709B2 (en) * | 2014-07-08 | 2020-02-04 | Microsoft Technology Licensing, Llc | Stream processing utilizing virtual processing agents |
US10554719B2 (en) * | 2014-09-30 | 2020-02-04 | British Telecommunications Public Limited Company | Managing streamed communication |
US10243841B2 (en) * | 2016-06-06 | 2019-03-26 | Cisco Technology, Inc. | Multicast fast reroute at access devices with controller implemented multicast control plane |
EP3939302A4 (en) * | 2019-04-30 | 2023-04-26 | Phantom Auto Inc. | Low latency wireless communication system for teleoperated vehicle environments |
-
2019
- 2019-07-19 US US16/517,032 patent/US11245742B2/en active Active
- 2019-09-27 CN CN201910925535.2A patent/CN112242986B/en active Active
- 2019-09-30 EP EP19200321.8A patent/EP3767911A1/en active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070101379A1 (en) * | 2005-11-02 | 2007-05-03 | Michael Pereira | Method of fault tolerance and synchronous failover for broadcast video across the network |
WO2009046646A1 (en) * | 2007-10-09 | 2009-04-16 | Huawei Technologies Co., Ltd. | A method, apparatus and system for performing redundant backup on video service |
US8155022B1 (en) * | 2009-03-24 | 2012-04-10 | Qlogic, Corporation | Method and system for controlling power consumption in network nodes |
US20140201330A1 (en) * | 2011-04-05 | 2014-07-17 | Telefonica, S.A. | Method and device for quality measuring of streaming media services |
US9292826B1 (en) * | 2011-12-21 | 2016-03-22 | Time Warner Cable Enterprises Llc | Adaptive bit rates in multicast communications |
US8837479B1 (en) * | 2012-06-27 | 2014-09-16 | Juniper Networks, Inc. | Fast reroute between redundant multicast streams |
US20140020037A1 (en) * | 2012-07-16 | 2014-01-16 | Eric D. Hybertson | Multi-stream shared communication channels |
US9806895B1 (en) * | 2015-02-27 | 2017-10-31 | Juniper Networks, Inc. | Fast reroute of redundant multicast streams |
CN106060605A (en) * | 2016-05-25 | 2016-10-26 | 清华大学深圳研究生院 | CDN-based live stream self-adaption method and system |
WO2017221050A1 (en) * | 2016-06-23 | 2017-12-28 | Telefonaktiebolaget Lm Ericsson (Publ) | Efficient handling of multi-destination traffic in multi-homed ethernet virtual private networks (evpn) |
US20180212861A1 (en) * | 2017-01-23 | 2018-07-26 | Cisco Technology, Inc. | Distributing network path information in a network environment |
Non-Patent Citations (1)
Title |
---|
王慧,孙志刚,龚正虎,何俊峰,贺宁武: "面向流媒体传输的Edge-to-Edge网络体系结构", 《计算机工程与科学》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022262398A1 (en) * | 2021-06-16 | 2022-12-22 | 荣耀终端有限公司 | Channel switching method, and electronic device and storage medium |
Also Published As
Publication number | Publication date |
---|---|
EP3767911A1 (en) | 2021-01-20 |
US20210021665A1 (en) | 2021-01-21 |
CN112242986B (en) | 2023-03-28 |
US11245742B2 (en) | 2022-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9787591B2 (en) | Autonomic ingress traffic load balancing in link aggregation groups by modification of switch routing | |
US10257066B2 (en) | Interconnect congestion control in a storage grid | |
CN108377213B (en) | System and method for propagating metadata for ongoing packets within kernel space | |
US9185166B2 (en) | Disjoint multi-pathing for a data center network | |
US10992566B1 (en) | Apparatus, system, and method for improved memory consumption in network devices via efficient route management | |
JP2017518552A (en) | High-speed serial link in-band lane failover for RAS and power management | |
KR20140014263A (en) | Communication path control system, and communication path control method | |
CN110995602B (en) | System and method for load balancing multicast traffic | |
CN115769556A (en) | Path visibility, packet loss and delay measurements of service chain data flows | |
US9323627B1 (en) | System, method, and apparatus for detecting fault conditions experienced by remote physical ports | |
CN112242986B (en) | Apparatus, system, and method for stream level switching of video streams | |
CN112559166A (en) | Apparatus, system and method for determining traffic load distribution associated with routing of hierarchical forwarding information bases | |
US10063383B1 (en) | Apparatus, system, and method for improving the energy efficiency of link aggregation groups | |
US10326691B2 (en) | Wireless data transfer as an alternative method to overcome errors or noise in a storage environment | |
EP3270552B1 (en) | Method, system, and apparatus for reducing the size of route updates | |
CN111490895B (en) | Apparatus, system, and method for detecting a state of an unreachable virtual interface | |
US11671339B1 (en) | Apparatus, system, and method for improving the efficiency of link-failure detection | |
US10263917B1 (en) | Apparatus, system, and method for improving the energy efficiency of routers | |
CN107070733B (en) | Apparatus, system, and method for timely detection of path mtu increase in a network | |
US10305795B1 (en) | Apparatus, system, and method for improving the process of establishing peering relationships via internet exchanges | |
EP3731482B1 (en) | Apparatus, system, and method for conditionally performing media delivery index measurements on streaming media | |
US10764168B1 (en) | Adjusting communications parameters based on known characteristics | |
US9172490B2 (en) | Virtual wavelength networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |