feature: Switcher #7

Open
opened 2024-03-03 21:29:45 +01:00 by thunfisch · 0 comments
Owner

We're sometimes abusing the internal RTMP failover of a multi-node origin-edge SRS cluster to "switch" between two sources without interrupting the RTMP session. It kind of works, but is peak jank.

Ideally, we want to have a very simple headless switcher which is able to take n inputs, and seamlessly switch between those through remote signals (e.g. websocket/http).

One possible implementation here could be https://github.com/ffplayout/ffplayout, which seems to support the required functions for this.

Another possible implementation would be to build this on top of Gstreamer, wrapped in Python.

  • Should be resilient against sources going offline repeatedly or have package loss
  • Should allow switching between sources without interrupting the outgoing stream
  • Should provide a lowlatency multiview in Webbrowser (e.g. webRTC), with simple controls
  • Should provide controls via simple HTTP API to allow scripting
We're sometimes abusing the internal RTMP failover of a multi-node origin-edge SRS cluster to "switch" between two sources without interrupting the RTMP session. It kind of works, but is peak jank. Ideally, we want to have a very simple headless switcher which is able to take n inputs, and seamlessly switch between those through remote signals (e.g. websocket/http). One possible implementation here could be https://github.com/ffplayout/ffplayout, which seems to support the required functions for this. Another possible implementation would be to build this on top of Gstreamer, wrapped in Python. - Should be resilient against sources going offline repeatedly or have package loss - Should allow switching between sources without interrupting the outgoing stream - Should provide a lowlatency multiview in Webbrowser (e.g. webRTC), with simple controls - Should provide controls via simple HTTP API to allow scripting
thunfisch added this to the Processing milestone 2024-03-03 21:38:09 +01:00
Sign in to join this conversation.
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: cwtv/portier#7
No description provided.