CLI utility that screencaptures your Linux desktop and streams it to Kodi via UPNP/DLNA and RTSP

Overview

desktopcast

Desktopcast is a little CLI application that allows you to cast your Linux desktop to any UPNP/DLNA device capable of the AVTransfer service, like Kodi using the RTSP streaming protocol.

At the moment, desktopcast is pretty much tailored to my use-case, which is casting my desktop to Kodi. Though is supports both X11 and Wayland (.. if your window manager properly supports Wayland).

Hot it works

GStreamer is used to create an rtsp:// server. This server is fed from a pipeline that captures your desktop as well as your current audio output (the sound that other applications output to your speakers) and forwards this to any client connecting to the server. This server is reachable under rtsp://<yourip>:8554.

As soon as this server is setup, the uri under which this server can be reached within your local network is sent to all reachable UPNP/DLNA AVTransfer-capable devices that are found within 5 seconds. These devices then connect to the rtsp server that desktopcast hosts and displays the stream sent to them via the GStreamer pipeline.

Screencapture

To specify what should be screencaptured and cast, desktopcast attempts to use xdg-desktop-portal, which requires pipewire. If the portal API is supported, a small window pops up that lets you select a screen or window to cast.

Hint: At the moment, under KDE, xdg-desktop-portal screencasting is only supported with the Wayland backend, not with the X11 backend.

If using xdg-desktop-portal fails, desktopcast falls back casting your primary monitor using X11 screencapture. And if that fails, it falls back to screencasting the entire X11 screen surface.

Audiocapture

For audio capturing, only pulseaudio is supported at the moment. (works also with pipewire if the pipewire-pulse bridge is installed).

The GStreamer API is used to discover your soundcard's monitor device, which is then forwarded. If this is not found, desktopcast fails.

You might also like...
A cross-platofrm desktop app to manage your ports made with Dioxus and Rust.
A cross-platofrm desktop app to manage your ports made with Dioxus and Rust.

Port Manager A cross-platofrm desktop app to manage your ports made with Dioxus and Rust. This app has been tested only on macOS. Test on other platfo

Display near-real-time satellite imagery on your desktop.
Display near-real-time satellite imagery on your desktop.

Satpaper Display near-real-time satellite imagery on your desktop. (Click to see full-size version) Satpaper generates live wallpapers for your deskto

 This CLI utility facilitates effortless manipulation and exploration of TOML, YAML, JSON and RON files.
This CLI utility facilitates effortless manipulation and exploration of TOML, YAML, JSON and RON files.

πŸ“πŸ’»πŸ”πŸ”§ This CLI utility facilitates effortless manipulation and exploration of TOML, YAML, JSON and RON files.

A CLI utility installed as
A CLI utility installed as "ansi" to quickly get ANSI escape sequences. Supports the most basic ones, like colors and styles as bold or italic.

'ansi' - a CLI utility to quickly get ANSI escape codes This Rust project called ansi-escape-sequences-cli provides an executable called ansi which ca

Cornucopia is a small CLI utility resting on tokio-postgres and designed to facilitate PostgreSQL workflows in Rust

Cornucopia Generate type checked Rust from your SQL Install | Example Cornucopia is a small CLI utility resting on tokio-postgres and designed to faci

Rust CLI utility library. Error handling, status reporting, and exit codes.
Rust CLI utility library. Error handling, status reporting, and exit codes.

narrate This library provides CLI application error and status reporting utilities. The coloured output formatting aims to be similar to Cargo. Error

A simple CLI utility to add rounded borders, padding, and shadows to images.

shadower a simple command-line utility to add rounded corners and shadows to images Installation From AUR paru -S shadower-git From source cargo build

A cli utility for playing music mixes for programming & focus from musicforprogramming.net
A cli utility for playing music mixes for programming & focus from musicforprogramming.net

mfp: music for programming A command-line utility for playing music mixes for programming & focus (from musicforprogramming.net), unlocking the flow s

A CLI for configuring a GoXLR on Linux

GoXLR configuration utility A tool to configure a GoXLR without requiring a Windows VM. At this time, full device initialization is not possible on Li

Owner
Markus Ebner
Markus Ebner
πŸ”” CLI utility to send notifications to Slack via integration webhooks

Slack notifier Just a simple CLI tool to send notifications to Slack. Please note that this project is just a playground to start learning Rust, it is

Green.Mod 2 May 21, 2022
Captures packets and streams them to other devices. Built for home network analysis and A&D CTFs.

?? shiny-donut shiny-donut is a packet capture app that supports streaming packets from a remote system to another device. The main use for this is to

Justin Perez 3 Nov 30, 2022
Putting a brain behind `cat`πŸˆβ€β¬› Integrating language models in the Unix commands ecosystem through text streams.

smartcat (sc) Puts a brain behind cat! CLI interface to bring language models in the Unix ecosystem and allow power users to make the most out of llms

Emilien Fugier 28 Dec 2, 2023
Deadliner helps you keep track of the time left for your deadline by dynamically updating the wallpaper of your desktop with the time left.

Deadliner Watch the YouTube video What's Deadliner? Deadliner is a cross-platform desktop application for setting deadline for a project and keeping t

Deadliner 34 Dec 16, 2022
A CLI utility to secretly copy secrets to your clipboard. πŸ¦€

seclip ?? ?? A CLI utility to secretly copy secrets to your clipboard. ?? Table of Contents Features Installation Usage Build From Source Contribution

Mufeed VH 34 Dec 27, 2022
A GUI Fan control utility for Linux.

TuxTempMaster For now I'm gonna use this README to write the status of the project Important note This program is not gonna do any black magic. If you

Obscurely 12 Dec 23, 2022
TMM is a Linux native game modding tool. it allows to install and depoly mods for Linux native and wine games.

Tux Mod Manager TMM is a Linux native mod manager made with the Tauri toolkit. It can install, load, remove and deploy mods for both Linux native and

Mathiew May 119 Dec 27, 2022
Cli tool for git productivity written in Rust and packaged for consumption via NPM

crust ?? cli tool for git productivity written in Rust and packaged for consumption via NPM This repo is identical with @skyneticist/golee in terms of

null 2 Jul 30, 2022
Safe Unix shell-like parameter expansion/variable substitution via cross-platform CLI or Rust API

Safe Unix shell-like parameter expansion/variable substitution for those who need a more powerful alternative to envsubst but don't want to resort to

Isak Wertwein 4 Oct 4, 2022
Quickly setup your development environment on your Chromebook/ChromeOS or any Linux distribution 🐧 ❄️ πŸ’» πŸš€ ✨

Crosup ?? ?? ?? ✨ Crosup is a CLI tool to help you quickly setup your development environment on a new Chromebook (ChromeOS) or any Linux distribution

Tsiry Sandratraina 11 Jun 15, 2023