Fedora Workstation: Live Streaming Compatibility Initiative
In the last decade the use case for live streaming games, coding sessions, has skyrocketed, specially after the pandemic.
We want to articulate an initiative to make sure that Fedora Workstation has the best out of the box experience for the software and hardware used by this community of users.
In this page we want to summarize the areas we want to cover and articulate a partnership with entities outside of Fedora that have an interest in both upstream and downstream enablement. As an initial effort we probably want to pick single tool in each category and figure out how to make it work well with the rest of the tools. Once we have a golden standard defined then other tools can work to fit into that standard.
A great source of reference for Linux compatible Streaming hardware is the one maintained by Venn Stone over at LinuxGameCast.com
Note: After some feedback it is clear we need to define some use-cases here, while there of course is some overlap the requirements to do news or interview shows are not the same is the requirements if you primarily are a game streamer.
|Device Name||Tool Category||Status||Price||Notes|
|Elgato Key Light Air||Light||Works with fiddling||130 USD||This is not connected to the computer, but it is WIFI enabled and can be controlled over the network.|
|https://www.behringer.com/product.html?modelCode=P0ASF Behringer X32||Mixer||Works well||2500 USD||Got official Linux support/app (non-free)|
|Behringer X12||Mixer||Works well||375 USD||Got official Linux support/app (non-free)|
|TC Helicon GoXLR||Mixer||Not working||500 USD||Can offer some functionality with severe fiddling - Go-XLR-on Linux|
|Elgato Stream Deck||Programable Key Pad||Works||120 USD||Not officially supported, but decent open source support|
|Audio Technica AT2005USB||USB Microphone||Works Well||100 USD||Plug and Play USB Microphone|
|Blue Yetie||USB Microphone||Works Well||99 USD||Plug and Play Microphone|
|Logitech Brio 4K||USB Webcam||Works Well||199 USD|
|Dell UltraSharp Webcam||USB Webcam||Works Somewhat||199 USD||Kinda works, but can easily cause lockups and similar|
|Magewell USB Capture HDMI 4K Plus||HDMI Capture||Works Well||450 USD|
|XR1 lite Capture Card USB Capture HDMI 4K Plus||HDMI Capture||Works Well||60 USD|
- Elgato Key Light Air This is not connected to the computer, but it is WIFI enabled and can be controlled over the network.
- Prior art:
Mixer and Input decks
- Behringer X32 This one actually got a official Linux GUI application. A bit pricey for the Joe Average streamer perhaps?
- TC Helicon GoXLR Not especially well working atm.
- Elgato Stream Deck GamingOnLinux article about Stream Deck Using StreamDeck with Fedora
- Elgato Wave XLR
- Focusrite Scarlett devices
- We lack a good-generic key remapping software that could tie any keyboard/gamepad input device into more sophisticade actions. Moving to flatpaks means that we need to think about Portal infrastructure to connect apps with one another. In the case of StreamDeck we may need to create pipewire APIs for an app to do video processing, audio effects, etc... (this needs engagement with the OBS folks)
Some extra input in this twitter thread
High-end USB Microphones
- Audio Technica AT2005USB Chris Fisher recommends this one for Linux as a better option than the Blue Yeti.
- Blue Yeti Works well with Linux.
High End Webcams
- Logitech BRIO Works well under Linux.
- Dell SharpEdge Works somewhat with Linux.
For DSLR as webcam over USB we rely o non upstreamed v4l2loopback + gphoto2. v4l2loopback is very unlikely to go upstream however libcamera seems to be the way forward. Worth exploring what kind of work is needed to get DSLRs working with libcamera.
Worth exploring if some setups rely on software that configure or control the camera somehow from the OS itself or simply getting the stream is fine for most usecases.
Note: Spoke with Laurent Pinchart of libcamera fame and some sort of libgphoto powered backend for libcamera isn't out of the question. Someone needs to write the code of course and prove that it is viable. If anyone does end up looking at this he did ask they relatively early reach out to discuss architecture and pitfalls.
Smartphone as Webcam
Lots of Smartphones these days have top notch camera sensors, we could take advantage of this:
- USB to HDMI adapters
- Extend KDE Connect and integrate it with libcamera/PipeWire
- Magewell USB Capture HDMI 4K Plus Works well under Linux.
- OBS Studio - We want to reach out to OBS to ensure top notch PipeWire integration and Flatpak availability - Georges Stavracas
- Noisetorch Popular tool for cleaning up background noise
- Helvum - Patchbay for PipeWire
- EasyEffects - Audio effects tool for PipeWire
- Steam and Lutris - Gaming often the focus of streamers
- Reaper Advanced tool, non-free, but with Linux version
-  Keymapper for mapping keys on these devices.
- DaVinci Resolve - Blackmagic Design's DaVinci Resolve is not open source but still free of charge. It provides video editing, color correction, visual effects, motion graphics and audio post production capabilities on Linux using the same tools as on the other but closed platforms.
Worth summarizing what the status is for hw encoding on each of these GPU platforms for both MESA and proprietary drivers and then figuring out whether OBS can leverage those or not.
- Intel (VAAPI)
- AMD (AMF (currently only available in their proprietary driver stack))
- NVIDIA (nvenc)
We intend to gather support from vendors and industry players to build momentum around this initiative.
- Control Center Issue #1172: Default audio device and disabling audio devices - When live streaming for various reasons you may need to plug different equipment in/out and different times... this issue makes it more difficult to manage.
- Sound output device chooser GNOME Shell extension is commonly used to quickly and easily switch output devices for getting ready for streaming. Ideally, this should be built into GNOME Shell and manage both input and output devices.
Audio Device behavior
- The current behaviour on connecting/disconnecting new audio devices is very frustrating for content creators. This bug should have the details. Note: smarter behaviour here is hopefully something Wireplumber will make easier.