How to Build a Podcasting Studio: The Software and Services

On Linux using entirely free software

Introduction

I’ve written previously about the equipment I use for filming and some of the software for editing it, and the hardware I use for my podcasting studio in my home office. This article describes the software I use for broadcasting.

My primary objective is to become a go-to for emerging news, by rapidly curating a variety of content as stories evolve and presenting it in a broadcast: live mixing and presenting news articles, video, cellphone footage, interviews with people on the ground, anything and everything. My secondary objectives are to be able to record interviews with a remote subject, talkback with the audience via voice, video and text, and record myself speaking to camera. I also want to integrate with other solutions and to simulcast to multiple locations concurrently including all of the major social media platforms. In short I need a feature complete broadcasting and recording studio in my home office and this is the software I used to build one.

The constraints are that the software must be available on the platforms I use which is predominantly Linux and Android because I am a Free Software and Open Source proponent. Fortunately all of the software I describe here is available on other platforms or there are equivalents, so this solution should be suitable for anyone looking to develop a broadcasting and recording capability.

All of the software described here is free (as in gratis) and I will discuss configuration but not in great detail. As a DISCLAIMER this is the solution that meets my requirements and your use-cases are likely to be different. With that said my solution has matured enough that I believe it’s worthwhile documenting as a guide for those seeking to start out.

I’d like to stress that the software and services described herein cost nothing to acquire and nothing to operate. I think it’s incredible that I can record content and deliver good quality live broadcasts to numerous social media platforms concurrently at no cost. The purpose of this article is to encourage others to do it to.

The Software and Services

Linux

Android

  • DroidCam OBS cross-platform cellphone camera integration app
  • Prism LiveStudio cross-platform cellphone video recording and streaming app
  • OBS Blade cross-platform OBS Studio remote controller

Services

Descriptions

OBS Studio

OBS is the essential component. It is the control interface for broadcasting and recording, taking input from all sources and outputting to file or livestreams. A reason it is intensely popular and used by millions of people is that it is sophisticated and deceptively easy to operate. In realtime, altering the broadcast is a simple matter of switching scenes or drag-and-dropping in new content. It’s a great tool and a lot of fun to use.

Configuring OBS in anticipation for broadcasting takes time. There are a huge amount of online resources about OBS so I’m only going to touch on those aspects that are essential. OBS has a plugin system and formulating the recipe of appropriate plugins to suit your particular use-case takes some work. For example I load a vertical canvas so I can broadcast two streams concurrently, one in landscape and the other in portrait, to suit the requirements of different social media platforms. For another example I load Pipewire Audio, specifically for Linux, so I can control the audio of individual applications. Your use-cases will be different but for reference here is the complete list of plugins that either came with the initial OBS installation or I hunted out and load:

vertical-canvas, obs-backgroundremoval, move-transition, droidcam-obs, advanced-scene-switcher, text-freetype2 ,rtmp-services, obs-x264, obs-wecket, obs-webrtc, obs-vst, obs-transitions, obs-qsv11, obs-outputs, obs-libfdk, obs-filters, obs-ffmpeg, obs-browser, linux-v4l2, linux-pulseaudio, linux-pipewire, linux-pipewire-audio, linux-jack, linux-capture, image-source, frontend-tools.

Key to successfully using OBS is producing audio and video that is easy to deal with in other applications when recording, and easy for social media sites to ingest and their social media userbases to consume. I would like to be using H.265 codec for video encoding because it produces vastly smaller amounts of data for similar quality to the older H.264 but for (predominantly) commercial licensing reasons this is not supported well across the social media platforms, and neither is a variable bitrate. For the best quality streams that are also reliable I use these settings:

  • Resolution: 1920x1080 & 1080x1920
  • Encoder: H.264 (hardware rather than software)
  • Rate control: CBR
  • Bitrate: 6000 kbps
  • Keyframe: 2 seconds
  • B frames: 3
  • Audio: AAC (bitrate 128, sample rate 48 Khz)

The bitrate is rather high and directly impacts the size of recordings and the amount of network data generated for broadcasts. I could turn this down a bit for my use cases but I have the bandwidth to spare on a fibre connection so am happy to leave it higher than it really needs to be.

The protocol I use for output is RTMP. I use the newer HLS protocol for Youtube because it works better there, everywhere else seems to prefer RTMP and variable bitrates on the RTMP-preferring sites tends to cause stream interruptions. I always use static bitrates because of it.

Clear audio is essential to successful broadcasting and recording and I found this aspect to be the steepest learning curve. I employ five audio filters in OBS and the order is important. From top to bottom they are Gain, Noise Reduction, Equaliser, Expander, Compressor and Limiter.

Audacity

Audacity is an audio recording and editing application. While its interface is looking a bit tired these days it is extremely sophisticated. If I record audio that needs to be cleaned up beyond the capabilities of the other applications I use which happens fairly regularly, I import/export to do it in Audacity.

Kdenlive

Kdenlive is a video editor. Another sophisticated tool that is a lot of fun to use. It is not as simple as some of the video editing tools so there is a steeper learning curve. Worth it in my opinion, for more professional results.

I am typically under time pressure to turn material around rapidly. In my workflow material I’ve recorded in the field needs to be edited, titled, watermarked and spliced with other footage, and then rendered. I use templates for this so the footage I’ve just captured can be dropped in with all the other elements already present, and the settings preconfigured.

Rendering is usually 1920x1080 landscape or 1080x1920 portrait, full colour range, 100% quality with Lanczos interpolation and BWDIF deinterlacing.

Gimp

Gimp is a graphics and image editor, similar to Photoshop. I use it to modify still images and perform functions like creating title sequences and end credits.

PavuControl

PavuControl is an audio mixer that is, unlike most of the other software described here, platform specific. It’s the interface to the underlying PulseAudio audio server on Linux systems. Similar applications exist on other platforms but I don’t know what they are. If you’re using Microsoft or Apple, this tool is not for you.
I use PavuControl during broadcasts to manipulate the sound produced by various sources such as applications, and the levels of various output devices, and route sounds between different inputs and outputs.

Consider the screenshot of the Playback tab. You can see the Chromium browser is set to output to my M-F8 earpod while the Firefox browser is set to output to my TWS V5.3 earpod. This allows me to listen to the content going out in the broadcast in one ear while cuing the next piece of content with the other. I can route these on the fly during broadcasts to do things like bring in the audio feed from someone who has videoconferenced in, a bit like talkback radio.

ALSA Scarlett2 Control Panel

ASCP is an audio controller that is specific to the Focusrite Scarlet 2i2 G4 audio interface I use. Many audio interfaces come with similar software that controls the function of the external device in addition to its buttons and dials. Typically I don’t need to alter these settings during broadcasts but it is important to get the settings right beforehand. If you think of audio configuration in terms of layers, this tool is an essential component above the audio subsystems of the underlying operating system and below the audio recording applications such as Audacity and OBS Studio.

Restreamer

Restreamer is a streaming server. It’s an open source alternative you configure and run yourself as opposed to paying a subscription for commercial streaming services such as Restream. Its purpose is to take input from broadcasting software such as OBS and distribute it to all of the various social media sites you wish to broadcast to.

Running Restreamer in the cloud allows me to minimise the network utilisation of my cellular connection when I’m in the field or across my fibre link when I’m broadcasting from my home office. Consider the latter use-case:when I’m broadcasting a SimonTV LIVE! episode I’m generating two 6MB streams, one landscape and one broadcast. This consumes 12 MB/s of my bandwidth. Restreamer in the cloud is ingesting those two streams and distributing them (currently) to 𝕏, Youtube, Rumble, Instagram, Telegram and Twitch for a total of 36 MB/s. Offloading this traffic to the cloud minimises the chances of congestion on my home fibre connection interrupting the streams or impacting the quality of the broadcast. This is nice to have when broadcasting from home but absolutely essential when I’m out and about livestreaming across a 4G cellular connection.


DroidCam OBS

My primary cellphone has the best camera I own. DroidCam OBS is an application to connect a cellphone to a workstation in order to use it as a webcam, with the added advantage that it directly connects into OBS Studio. OBS Studio can control aspects of the audio/video directly and the integration is seamless.

Prism Live Studio

Here is one of the wonders of Open Source. Prism Live Studio is a fork of the OBS Studio codebase that has been ported to mobile operating systems. When I’m livestreaming in the field I don’t have access to Kdenlive to edit recorded material or OBS Studio to mix in other content as both are back home at my workstation. The solution is Prism Live Studio on my phone which allows me to insert watermarks and other content on the fly, and broadcast out over RTMP either directly to the social media sites, to my Restreamer instance in the cloud for subsequent distribution to them, or even to another instance of OBS Studio a producer is operating.

OBS Blade

OBS Blade is a remote control application for OBS Studio. It runs on phones or tablets and connects to the OBS Studio instance on my workstation via WebRTC. The feature I wish for most in OBS Studio is better remote control so that broadcast operations can be managed by two people: one presenter and one producer, or two people performing a combination of those tasks sharing access to the OBS Studio interface.
OBS Blade goes some way towards ameliorating this deficiency in OBS Studio. It’s not fully featured but it does provide a secondary interface which is clean and simple to operate. I have it installed on my tablet and use it essentially as extra screen real-estate for controlling OBS Studio.


Oracle Always Free

This is just incredible. In the cloud, Amazon AWS, Microsoft Azure and Google Cloud are the big three dominating the market with every other company making up the numbers. To gain market share Oracle is giving away free (as in gratis) servers hosted in their Oracle Cloud platform. Better yet, Oracle maintains that these cloud servers will be free forever.

The free tier entitles me to run two servers, both with a single CPU (actually 1/8 OCPU) 1GB of memory and 10TB of network data per month across a 500MB/s fibre connection. This is an incredible amount of convenient computing power to be giving away and I have the servers hosted in one of their data centres on the US west coast, close to the physical location of most of the social media sites. I operate a variety of different services on these two services but the one relevant to this article is the Restreamer streaming server mentioned above. It runs in a Docker container on top of an instance of Rocky Linux with ample CPU, memory and network to spare.

VDO.Ninja

VDO.Ninja is a browser-based audio/video integration platform. It uses WebRTC to connect multiple points for videdoconferencing and is designed to be integrated with OBS Studio. It is significantly more sophisticated than most videoconferencing platforms as it allows the director to control (and remotely control) many aspects of the conference and the participants’ settings.

I use VDO to conduct remote interviews and it is suitable for use as a web equivalent of T\talkback radio. Users come into a VDO.Ninja green room like the one pictured above and when they’re ready, I can link their audio and video feed into the broadcast and control it via OBS Studio. From the user’s perspective the process is simple, and simple is important: click on the link which opens in the browser, give the browser permission to use the camera and microphone and hey presto! You’re all set to come on air with SimonTV.

Capcut

Capcut is a web-based video editing application. It’s free to use and nowhere near as sophisticated as Kdenlive. One of its major deficiencies is the render quality, at least I don’t know how to make it as good as I get from Kdenlive.

One feature it does have that I like is an extremely good AI for producing captions rapidly. If I want to caption a piece of video I upload it into Capcut and get it to perform the captioning, which I then go through manually to make minor corrections. While I could render out the result instead I just export the caption text file, which I then import into Kdenlive.

Socialstream.ninja

Socialstream is a web service and browser plugin that consolidates text chats across multiple social media platforms into one place which I can then moderate in a web browser and display as an overlay in OBS Studio for people to see in the broadcast. There are several tools that perform this function and this is the best I’ve found. It’s not perfect, requiring me to be actively logged into the chats on all of the social media sites I’m broadcasting to, and it doesn’t (yet?) integrate with Telegram which is annoying, as Telegram users can’t participate as well as users of other platforms can.

Summary

So that’s the story, every software and service I use to operate a fully-featured broadcasting and recording amatuer home studio and capability in the field. All of it is free, most is best-of-breed, only two of the applications are Linux-only and only one is specific to my hardware.

Over time these components may change. I might find a better chat aggregator than Socialstream for example or maybe I can work out a way to caption directly inside Kdenlive. But it won’t change much: many of the applications presented here are the best available, and others are the best available that are F/OSS Free and Open Source Software.

I am no expert. Learning the tools and configuring them took time but the short story is if Simon can do it, you can too.

And I very much hope you do.

Read more