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

implement video streaming services systematically, both low-latency and compressed #129

Open
nettings opened this issue Dec 5, 2023 · 1 comment

Comments

@nettings
Copy link
Owner

nettings commented Dec 5, 2023

Right now, we have an ad-hoc HDMI over IP streamer (which is pretty cool).
What we want instead is more of a generic framework:

  • take signals from MJPEG sources such as a HDMI grabber or simple webcam, and forward them uncompressed, with minimal latency, either uni- or multicasted

  • take signals from H264 sources or files, or compress MJPEG sources on-the-fly on the hardware, and forward them as a H264 stream, with slightly higher but still minimal latency, either uni- or multicasted

  • receive MJPEG signals and play them back on either HDMI output

  • receive H264 streams and play them back on either HDMI output

  • later: both of the latter, but as part of a multiviewer setup, i.e. in a smaller window at a configurable position.

Eventually, it would be nice to configure one service that automatically handles video via gstreamer and audio via zita-njbridge with only a single IP configuration. IGMP snooping works via multicast groups, so it's ok to reuse one if two streams are related. This only becomes wasteful if hosts want to listen without watching. If we want to avoid this, define a numbering scheme (even-numbered IPs: video, odd-numbered ones: audio, port 29998: h264 video, port 29999: MJPEG video, port 30000: zita-njbridge audio, all UDP).

@nettings
Copy link
Owner Author

Also, consider implementing the hostname lookup more widely, as exemplified in mn_hdmi-tx - the same approach would be useful to zita-njbridge services.

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

No branches or pull requests

1 participant