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

Avoid recording room composite before video is decoded #806

Merged
merged 4 commits into from
Nov 15, 2024

Conversation

davidzhao
Copy link
Member

It's likely to receive delta frames that are not decodable in the start. This would produce an undesirable black screen in the beginning of the recording.

It's likely to receive delta frames that are not decodable in
the start. This would produce an undesirable black screen in the beginning of the recording.
@davidzhao davidzhao requested a review from a team as a code owner November 12, 2024 08:03
@biglittlebigben
Copy link
Contributor

This means we'll potentially cut some audio from the start of the recording, until a video becomes decodable. Is this always desirable?

I can also see how a few customers may have a broken setup where they publish a video track but never send any video so we'd want to advertise this change pretty explicitly in the changelog.

@davidzhao
Copy link
Member Author

It's a tricky one for sure. these are the use cases:

  1. video users do not want to record a black screen as the initial thumbnail
  2. audio-only users should work immediately
  3. edge cases like having a video published, but no frames coming through

before this PR, it doesn't satisfy 1, which is where users have been complaining about.

For 2, we should move this to mixing within the process, instead of using templates for them.

  1. may still be an issue, and I think it's handled by adding a timeout (one could argue 10s is too long, I'd be happy to lower it to 5s). I think if folks have custom use cases, they should host their own template. It feels kind of broken that the primary use case (recording a video) doesn't work correctly.

@davidzhao davidzhao merged commit cce6421 into main Nov 15, 2024
2 checks passed
@davidzhao davidzhao deleted the dz/avoid-black-frame branch November 15, 2024 08:02
biglittlebigben added a commit that referenced this pull request Jan 6, 2025
 ## Changelog

 ### Added

- Support for backup storage (#792) (#793) (#795) (#825)
- Log per egress memory usage (#821)
- Support for participant egress screen share (#829)
- Use the SDK to handle audio only room composite requests with the default template (#817)

 ### Fixed

- Skip AWS logging on successful upload (#762)
- Reduce duplicate test runs (#763)
- Fix s3logger memory usage (#764)
- Disable SDK Async-connect (#768)
- Faster startup (#769)
- Queue 15 min worth of segments (#770)
- Use config value for max upload queue size (#772)
- Disable-features Translate in headless Chrome (#775)
- Add a back off top laylist upload retries (#779)
- Remove audio with image-only egress (#782)
- Adopt AWS SDK v2 (#783)
- Force CBR for streams output (#785)
- Don't update bucket region with custom endpoints (#786)
- Set a region field when using a custom endpoint (#788)
- Ignore websocket close errors (#790)
- Avoid recording room composite before video is decoded (#806)
- Fix max concurrent web check (#810)
- Use Ubuntu 24.04 base image (#811)
- Move IO timeouts to config (#814)
- Upgrade to pion/webrtc v4 (#818)
- Kill highest memory egress when OOM (#826)
- Udpate livekit JS dependencies and call setRoom in default template (#835)
@biglittlebigben biglittlebigben mentioned this pull request Jan 6, 2025
biglittlebigben added a commit that referenced this pull request Jan 7, 2025
 ## Changelog

 ### Added

- Support for backup storage (#792) (#793) (#795) (#825)
- Log per egress memory usage (#821)
- Support for participant egress screen share (#829)
- Use the SDK to handle audio only room composite requests with the default template (#817)

 ### Fixed

- Skip AWS logging on successful upload (#762)
- Reduce duplicate test runs (#763)
- Fix s3logger memory usage (#764)
- Disable SDK Async-connect (#768)
- Faster startup (#769)
- Queue 15 min worth of segments (#770)
- Use config value for max upload queue size (#772)
- Disable-features Translate in headless Chrome (#775)
- Add a back off top laylist upload retries (#779)
- Remove audio with image-only egress (#782)
- Adopt AWS SDK v2 (#783)
- Force CBR for streams output (#785)
- Don't update bucket region with custom endpoints (#786)
- Set a region field when using a custom endpoint (#788)
- Ignore websocket close errors (#790)
- Avoid recording room composite before video is decoded (#806)
- Fix max concurrent web check (#810)
- Use Ubuntu 24.04 base image (#811)
- Move IO timeouts to config (#814)
- Upgrade to pion/webrtc v4 (#818)
- Kill highest memory egress when OOM (#826)
- Udpate livekit JS dependencies and call setRoom in default template (#835)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants