Captures this machine's desktop and publishes it as an H.264 RTSP stream (the sending counterpart to ScreenReceiver).
More...
Captures this machine's desktop and publishes it as an H.264 RTSP stream (the sending counterpart to ScreenReceiver).
Headless (no UI): it captures the screen with a platform-native GStreamer source, encodes with a platform-native non-GPL H.264 encoder, and pushes the stream to an RTSP server (e.g. MediaMTX on the Pi) via rtspclientsink. A Malena admin app constructs one of these to share its own desktop; the stream is then displayed by any ScreenReceiver pulling the same path.
capture → videoconvert → H.264 encode → h264parse → rtspclientsink(URL)
Encoders are chosen to keep the product distributable (no GPL/x264):
- macOS : VideoToolbox (vtenc_h264) + avfvideosrc capture-screen
- Windows : Media Foundation (mfh264enc) + d3d11screencapturesrc
- Linux/Pi: V4L2 stateful HW encoder (v4l2h264enc) + ximagesrc
The pipeline runs on its own GStreamer threads with a background watcher that auto-reconnects (with backoff) if the RTSP server is not yet up or drops.
- See also
- ScreenReceiver
Definition at line 36 of file ScreenSender.h.