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

Support for streaming encoded video from continuous log/send calls #7484

Open
Wumpf opened this issue Sep 24, 2024 · 1 comment
Open

Support for streaming encoded video from continuous log/send calls #7484

Wumpf opened this issue Sep 24, 2024 · 1 comment
Labels
enhancement New feature or request 🎞️ video

Comments

@Wumpf
Copy link
Member

Wumpf commented Sep 24, 2024

We want to be able to support streaming video in via continuous log/send calls.

The rough sketch for this feature would be to introduce an VideoStream archetype to which users continuously add VideoSample components.
The VideoStream archetype has some meta data that is ideally logged as static (so it's never GC'ed even if we lose samples).
Each VideoSample component is equivalent to a sample in our decoder abstraction - so ideally we just do a bytemuck cast to the decoder and no further processing is needed.
All samples on the VideoStreams are fed to the decoder at once, we essentially ignore the timeline since necessarily all samples come with their own decode & presentation timestamp.
Constraint: samples have to come in decode timestamp order (otherwise we have to do reordering which is expensive perf & memory wise for long streams; also would break under GC)

Open questions:

  • what does a typical workflow for this look like
    • obviously we have to provide samples where we encode a video stream e.g. with gstreamer and send it continuously to the viewer
    • what utilities do we provide exactly?
  • Exact mechanics of sample logging
    • where on the timeline are samples added?
    • is the timeline really completely (other than ordering) and how do we communicate this? Should we encourage index timeline which is independent of the timeline that contains the VideoFrameReference, etc.
    • are these arrays of samples on each timeline step? (why not?)
  • can we support b-frames? Most likely, but there might be jankiness if provided incorrectly
@emilk
Copy link
Member

emilk commented Oct 11, 2024

Workaround

If you can't wait for us to implement this feature, you can work around it by logging your video stream as many shorts videos, each logged as a AssetVideo to the same Entity Path.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request 🎞️ video
Projects
None yet
Development

No branches or pull requests

2 participants