HTTP Live Uplink Streaming via Chunked Transfer Encoding
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current uplink streaming technologies, such as RTMP, face limitations including firewall and NAT traversal issues due to proprietary nature and lack of widespread adoption, and do not efficiently support video, audio, or closed-captioning solutions, whereas HTTP offers broader security and infrastructure benefits but requires innovative solutions for live uplink streaming.
Innovation Solution
Implementing HTTP-based live uplink streaming with an HTTP client on the client device, using HTTPS connections and HTTP Chunked Transfer Encoding to adapt bitrate dynamically, allowing for elastic transport and leveraging existing HTTP libraries and infrastructures, while enabling media encoding and post-processing functions like de-jitter buffers and ABR transcoders.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If RTMP protocol is used for uplink streaming, then reliable streaming is achieved, but firewall and NAT traversal issues occur and widespread adoption is limited
Solution Approach 1:
The patent introduces an intermediary mechanism where the client initiates the connection through HTTP requests that are allowed by firewalls and NATs, rather than having the server initiate connections which are blocked. The HTTP protocol acts as a mediator that traverses network security boundaries, enabling the streaming connection to be established where RTMP directly fails.
2Adaptability or versatility
If HTTP protocol is used for uplink streaming, then widespread adoption and security benefits are achieved, but efficient live streaming requires innovative solutions
Solution Approach 1:
The patent makes the HTTP protocol multi-functional by enabling it to serve both as a request/response protocol and as a continuous streaming transport protocol. The same HTTP connection and headers are used for both initial connection establishment and ongoing media data transmission, eliminating the need for separate streaming protocol infrastructure and reducing implementation complexity.
3Device complexity
If HTTP client is located on server side as in prior art, then streaming infrastructure is simplified, but firewall and NAT traversal fails
Solution Approach 1:
The patent inverts the traditional server-client role arrangement for streaming. Instead of placing the streaming client on the server side (ingest server), the patent places the HTTP client on the user equipment side, allowing the client to initiate connections through firewalls and NATs, while the server becomes the passive receiver. This role inversion solves the firewall traversal problem.
4Device complexity
If fixed bitrate streaming is used, then transmission control is simplified, but adaptation to available link bitrate is slow
Solution Approach 1:
The patent implements dynamic bitrate adaptation by monitoring the transmit buffer level and adjusting the media encoding bitrate in real-time. When the buffer level indicates congestion or slowdown, the bitrate is reduced; when buffer levels are healthy, the bitrate can be increased. This dynamic adjustment allows the system to quickly adapt to changing network conditions while maintaining simplified transmission control through buffer-level-based decisions.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A method performed by a client for upstreaming to a server a live media feed is provided. The method includes the client establishing a transport layer connection with the server; transmitting to the server an HTTP Request message having a header and a body; and storing in a transmit buffer media data corresponding to the live media feed as the media data is generated. The header does not indicate the size of the body. A quality setting is used to generate the media data. Transmitting the body includes: 1) transmitting to the server at least a portion of the media data; 2) removing from the transmit buffer said at least a portion of the media data; 3) determining whether the client should modify the quality setting that is used to generate the media data, and 4) repeating steps (1), (2) and (3) until a cease transmission trigger is detected.