I live in El Granada, California. Wikipedia calls us a census designated place - we don't have a mayor or city council. But we do have a Community Services District - originally responsible for our sewers, and since 2014 also responsible for our parks. And we get to vote for the board members in the upcoming November election!
My partner Natalie decided to arrange a "candidates forum" - effectively a debate between three of the candidates running for the two open seats on the board. I was recruited to help record and livestream the event on YouTube.
We had an outdoor venue (at Jettywave Distillery). I've never livestreamed an event that wasn't just me sharing the screen of my laptop before - here are my notes on what I did, what worked and what didn't.
I ended up using:
I originally planned to stream directly from the iPhone but it turns out YouTube don't allow newly created channels to stream via a mobile device for some reason.
Thanks to the Apple Continuity Camera this wasn't a problem at all: I could stream from my laptop but use my iPhone as the camera for it.
I decided to get a RØDE Wireless GO II kit after using one to record a podcast episode with swyx and crew a few weeks ago. It comes as two tiny lapel mic transmitters and a small receiver that plugs into the laptop (or phone) via USB-C.
I tried a few setups for the mics. The venue had its own A/V system so my first idea was to put one of my microphones next to a speaker. This worked OK, but then I realized that since we had two hand-held microphones for the participants I could tape my little RØDE mics directly to those and capture audio that way. This worked great!
Starting a YouTube stream through their web interface on a laptop was pretty straight-forward. I had to give the stream a name, set it as "Not for kids", select the camera (my iPhone) and microphone (the RØDE receiver) and start streaming.
It took me a little while to figure out how best to control the camera. It turns out you can both zoom in and pan around the image on the iPhone using this interface which shows up in the menu bar:
The video preview starts as just a moving image - you have to click on it to get the controls to show up, and if you zoom in by interacting with the overlay you can then pan around the image by dragging the preview.
I started running the stream from Firefox. This seemed to be working just fine, but it turns out that about 45 minutes into the first stream Firefox stopped transmitting audio (leaving an embarassing audio-free segment in the final video), and then crashed entirely with macOS complaining that it was using around 150GB of RAM!
With hindsight, I could have had the RØDE microphones record audio directly onto their own storage as a backup. I'll definitely do that next time.
I assumed YouTube were more stringent with their Chrome testing than their Firefox testing, so I switched to Chrome for the second half of the event - video here - and kept an eye on its memory usage in Activity Monitor. That worked fine.
Lesson learned: For this kind of event, losing audio is worse than losing video. Just because test streams that were 5 minutes long worked fine doesn't mean that an hour long stream won't run into unexpected problems. There's a reason the RØDE microphon's have the option to create their own audio backups!
I tried embedding the YouTube live video on our coastsidecivic.com website for the duration of the event, but the iframe showed a message saying that the owner of the video had disallowed embedding.
I didn't think I had, but it took me quite a while to track down the default-off option in the livestream settings (confusing beacuse normal videos defaulted to on):
Once I'd checked this option embedding the livestream video worked just fine. I used this HTML:
<iframe style="
width: 100%;
aspect-ratio: 560 / 315;
height: auto;" width="560" height="315"
src="https://www.youtube.com/embed/GHtMbhG9EIU"
frameborder="0" allowfullscreen="">
</iframe>
That aspect-ratio
trick gave me the video at the correct dimensions even when it expanded to fill 100% of available width.
After publishing we noticed that the audio in the part 1 (but not the part 2) video was uneven: the microphone for the candidates had produced much quieter audio. I don't know why that wasn't a problem in the second video.
I ended up downloading the YouTube video, extracting the audio and using the auto-leveller tool from auphonic.com to automatically fix this.
YouTube doesn't let you replace the full audio for a video OR replace the video itself, so I combined the previous video and the new audio using ffmpeg
and then uploaded a fresh video, then set the previous video to "unlisted" and placed a link to the new one in the old one's description.
Original video / Video with fixed audio - the change is most obvious from about 8 minutes in.
Here's the ffmpeg
command I used:
ffmpeg -i "GCSD Candidates Forum - Part 1.mp4" \
-i "part1-auphonic-loudness-normalization.mp3" \
-c:v copy -map 0:v:0 -map 1:a:0 -shortest "part1-audio-fixed.mp4
I figured that out using llm-cmd like this:
llm cmd use ffmpeg to combine the video from GCSD\ Candidates\ Forum\ -\ Part\ 1.mp4 with the audio from part1-auphonic-loudness-normalization.mp3 and save the output as part1-audio-fixed.mp4
Created 2024-10-09T22:09:34-07:00, updated 2024-10-14T07:48:38-07:00 · History · Edit