Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RTMP edge support transmux RTMP to RTC #2203

Closed
wants to merge 20 commits into from

Conversation

winlinvip
Copy link
Member

@winlinvip winlinvip commented Feb 20, 2021

In #2200, the functionality of converting RTMP to RTC in RTMP Edge is mentioned separately in this branch and PR.

Due to the complex relationship between Edge and RTC, it needs to be considered separately.

Regarding why RTC only works in Origin mode, I have had a detailed discussion with Zhihong. In simple terms, Edge is a design for RTMP live clusters, while RTC is a cascading cluster that does not use the Edge method to implement RTC cascading.

HLS cannot achieve this because it cannot trigger Edge to fetch slices when HLS is being played, and the client cannot wait for it.

RTC can achieve this but it is not reasonable. When playing or pushing RTC, triggering Edge to fetch sources will turn RTC into internal transmission of RTMP, which does not meet the latency requirements. Considering RTC pushing, Edge fetches sources and pushes them to RTMP, then another edge plays RTC (which fetches sources from RTMP). In this way, it becomes:

RTC pushing => RTMP Edge fetches sources => RTMP Origin server receives the stream => RTMP Edge plays => RTMP converts to RTC

This essentially involves RTC cascading through RTMP Edge, going back and forth, which is not only complex but also fails to achieve the business objectives.
During playback, it is worth considering that Edge supports RTC. The benefits are as follows:
1. In the live streaming system, it is possible to switch to RTC in the last hop, which can be used for low-latency live streaming at a certain scale.

The issues are as follows:
1. It is quite complex to trigger RTMP backhaul using RTC.
2. If RTC has its own cascading mechanism, there is no need to use the RTMP system.

However, it is unrelated to this RTC to RTMP conversion. I have removed the RTC streaming and Edge code for now. If we need to support RTC playback triggering Edge backhaul in the future, we can consider it separately.

TRANS_BY_GPT3

winlinvip added a commit that referenced this pull request Feb 20, 2021
@winlinvip winlinvip changed the title For #2200, RTMP edge support transmux RTMP to RTC RTMP edge support transmux RTMP to RTC Feb 20, 2021
@winlinvip winlinvip force-pushed the feature/rtmp_edge_to_rtc branch from d4ce0ed to 692e2fa Compare February 20, 2021 13:42
@winlinvip winlinvip force-pushed the feature/rtmp_edge_to_rtc branch from 692e2fa to 3656140 Compare February 21, 2021 00:51
@codecov-io

This comment has been minimized.

@winlinvip winlinvip force-pushed the feature/rtmp_edge_to_rtc branch from 3656140 to d768b93 Compare March 3, 2021 12:50
@winlinvip winlinvip closed this Apr 23, 2021
@winlinvip winlinvip deleted the feature/rtmp_edge_to_rtc branch April 23, 2021 09:19
@winlinvip winlinvip added the TransByAI Translated by AI/GPT. label Jul 29, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
TransByAI Translated by AI/GPT.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants