Skip to content
This repository was archived by the owner on Oct 16, 2021. It is now read-only.
This repository was archived by the owner on Oct 16, 2021. It is now read-only.

Future of aperture #5

@JeDaYoshi

Description

@JeDaYoshi

Note that aperture is getting even closer from being deprecated, more when WebRTC is being integrated on Cryb.
Support might be left, but requires some rework as of how it works

At its current state, aperture will not scale well. It's not optimized, and it's not ideal to center all VM streams into a same endpoint, and that same endpoint stream to clients, especially network-side.

@cryb/portal could get some work to stream directly to clients, and if much, fallback to this when it's not possible for any reason.

Also needs more work as of how it works in that case, instead of only sending all the data to everyone.

From #3:

I've been looking into how aperture streams stuff - it needs some fixes and adding features on what is slow network handling, and what most surely will want - real-time streaming, and working around so it doesn't freezes every few due to slow networks.

By what I see - ffmpeg records all the stuff, then aperture just sends the data to the clients, as-is, and won't even do frame skipping etc. to prevent some issues. This would be an issue with those with slow networks and computers, so what's proposed is:

  • Do multiple encodings of the stream, in SD and HD. Doesn't needs all of them be running at once, just depending if there's any client requesting for it, based on their situation.
  • Check the performance of network and stream and switch automatically to the best choice.
  • Do some skipping in case of high loss, instead of getting the whole stream which would desync stuff between viewers and cause some freezing in some cases.

But that's kinda some curious work. Probably it might get a little of checking.

Metadata

Metadata

Assignees

No one assigned

    Labels

    help wantedExtra attention is needed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions