-
Notifications
You must be signed in to change notification settings - Fork 79
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
[FEATURE] Optimizing Video Processing Workflow to Implement Pass-Through Functionality #655
Comments
@boolw it would be great to have a pass through mode for ParticipantEgress and TrackCompositeEgress. I think you've outlined the right steps. When we considered this in the past, these points were tricky to get right
|
@davidzhao First of all, thank you very much for the reply from the Egress team. When we use the ParticipantEgress mode of the SDK, when we encounter a requirement for one video and multiple audios, we hope that there will be only one video, and the configured input and output video codec formats are consistent. (Of course, H.264 is just an example.) Video can achieve pass-through and improve efficiency. Of course, as you replied, there are various complex situations. You can try to see the feasibility of this solution. |
@davidzhao Of course, the resolution of WebRTC video is not fixed. Whenever upstream congestion is encountered, the publisher can publish lower bitrate/fps. This situation has indeed been missed by me. I wonder if gstreamer has any solutions or suggestions for handling this situation. We can discuss it further. |
Variable resolution should not pose a challenge. both MP4 and MKV supports dynamic resolution streams. I think it just limits the kind of containers that can be used. |
I was also looking for a way to fix this constantly. I merged the two egress tracks using the command below to merge audio.ogg and video.mp4 with different timestamp starting points in aws lambda.
Although encoding time was drastically reduced to handle audio only, there were limitations to Lambda's runtime limitations, downloading and exporting all files, and the size of temporary repositories. Resolving this requires the process of encoding and merging audio only in egress, which is responsible for output in principle... |
I need a solution that can reduce the cost of streaming and exporting data. @boolw stream of frames that do not overlap at the end of each egress track is to adjust to the -ss option or to adjust the frame that remains at the end by equalizing the output length with the -t option. @davidzhao still a single track that is output as non-fragment MP4, please review if you can add the work of encoding and merging only audio streams or finally interpolating data by encoding only audio to livekit egress. |
That's a great! I only thought of WHIP and OBS output, so I was thinking of the above idea. |
Is your feature request related to a problem? Please describe.
In the current video processing workflow, the mismatch between input and output video encoding formats leads to unnecessary encoding and decoding processes, resulting in resource wastage. To optimize the workflow, the following improvement plan is proposed:
Describe the solution you'd like
The request is to configure the client's video encoding format as H264 and set the Egress output configuration to also use the H264 encoding format. When processed through GStreamer, the aim is to achieve pass-through functionality, where only simple data copying occurs to avoid unnecessary encoding and decoding processes.
Additional context
We are willing to contribute to the development of this feature and look forward to your feedback on this proposal. We hope to collaborate with the Egress official team to collectively optimize the video processing workflow, improving system performance and efficiency.
The text was updated successfully, but these errors were encountered: