
How to Run a Live Coding Stream on Twitch Using OBS - jordanlewis
https://jordanlewis.org/posts/twitch-live-coding/
======
ghj
Watching good people's work-in-progress and debugging process helped me a lot
in getting better myself.

This is especially true in competitive programming where everyone is solving
the same task!

Some competitive programming streamers:

William Lin:
[https://www.youtube.com/channel/UCKuDLsO0Wwef53qdHPjbU2Q](https://www.youtube.com/channel/UCKuDLsO0Wwef53qdHPjbU2Q)

Errichto:
[https://www.youtube.com/c/Errichto](https://www.youtube.com/c/Errichto)

SecondThread:
[https://www.youtube.com/channel/UCXbCohpE9IoVQUD2Ifg1d1g](https://www.youtube.com/channel/UCXbCohpE9IoVQUD2Ifg1d1g)

Alex Wice:
[https://www.youtube.com/channel/UCQmrwIwzEu8MxplJw9EUcAg](https://www.youtube.com/channel/UCQmrwIwzEu8MxplJw9EUcAg)

All youtube links because I do random old contests on leetcode/codeforces and
usually at least one of the people above would have a screencast recorded
(though unfortunately not always with commentary). Some of them also have
twitch.

------
ogjunkyard
I just wanted to thank Jordan Lewis for putting this article together. It gave
me enough clues on how to implement the "whiteboard"/telestrator feature I've
been trying to casually implement over the past 6-9 months. Even though I have
1,300+ hours streamed on Twitch, this still slipped through my grasp on how to
get it implemented for some reason.

I was originally trying to implement this functionality by using NDI, but
there were a few issues I ran into, namely resolution and framerate, neither
of which I was happy about. Something about this article tipped me off to look
up using USB to connect the iPad to the PC, which actually led me to setting
up the streaming PC as an AirPlay receiver. After I made the switch over to
using AirPlay, I had the whiteboard/telestrator functionality working on my
OBS setup within 10 minutes.

------
pengaru
It's unlikely I'd ever share livestreams of my coding, but I do think there's
value for any craftsman to watch recordings of their work.

Programmers have it especially easy in this regard since it doesn't require
any cameras/lighting/tripods/line of sight whatever. Just record your desktop
for a day and watch it in down time. I think you'll be surprised to see what
deficiencies stand out as an observer that you've probably come to just live
with due to complacency/habit. It helps prioritize areas to improve, and you
can do this iteratively.

------
nickysielicki
I love live coding streams. It's my personal opinion that the best programmers
are the best debuggers, and that's something that's often language/domain
specific and gets significantly more difficult as the codebase grows larger.
In other words, it's hard to learn how to debug if you don't already work on a
large project or within a certain language.

Watching people debug on twitch has definitely changed the way that I approach
bughunting.

You guys should definitely check out Jordan's stream if you like the idea of
watching someone fight the good fight against the dark-side of Go's
opinionation.

------
dry_soup
The "We'll Be Right Back" sound is from The Eric Andre Show. It's usually used
to cut right as something really chaotic happens. Here's a very tame example
by the standards of the show:
[https://www.youtube.com/watch?v=SVhme1eb8SI](https://www.youtube.com/watch?v=SVhme1eb8SI)

------
steveklabnik
... how convenient, I am considering starting a live coding stream soon.
Thanks for writing this and posting it!

(I have done some speedrunning livestreams, but not coding. Well, not in a
Twitch setting anyway, I've done talks with lots of live coding and really
enjoyed it.)

~~~
jordanlewis
Good luck and have fun!

------
agentultra
Nice to see more! I started doing a live coding stream as well. It's an
interesting medium.

I still get a bit nervous before I start streaming. I spend time rehearsing
what I'm going to say and work on and how I'm going to present it... but I'm
finding that is not very sustainable and am doing it more to have a dedicated
couple of hours to hack on side projects and share my discoveries and
knowledge with folks.

The interactive nature of it is neat and not as difficult as I had anticipated
it would be but my audience is still only a handful of folks each week.

Give a try if you're thinking about it. You don't need pro equipment to get
started with live coding. I use my phone for the camera and I pulled out my
old 4-track and mic to record audio but it can be done with a headset and a
webcam no problem.

 _update_ : Link to my stream:
[https://twitch.tv/agentultra](https://twitch.tv/agentultra)

------
StavrosK
I use OBS to stream my maker sessions on
[https://m.youtube.com/c/StavrosKorokithakis/](https://m.youtube.com/c/StavrosKorokithakis/)
and it works great. I really like how I can switch between scenes with
hotkeys, and it's really easy to set up scenes to look like whatever you want.

I'd very much recommend it if you want to stream something. I'd also recommend
just getting started, I've been wanting to stream for a while but was always
embarrassed that it'd look like crap, but better something that looks like
crap than nothing.

------
numlock86
Well, truth is, you need to code something "mainstream" to make it even worth
it. (read as: have at least like 2 people watching or even just visit your
channel once, not including yourself ...) Program some "Unity game prototype",
some Java or JavaScript web dev, frontend or backend, put in buzzwords like
Postgres and NodeJS and what else is relevant to people right now. You know,
Twitch has a specific target audience after all. No one is gonna come for some
bootloader programming on a STM32F0 (no vector table offset register after
all!) or integration of a secure element from NXP including some crypto basics
about ECC because people simply don't care there.

There was a twitch-like platform for live coding once, but obviously it
flopped.

~~~
o-__-o
>There was a twitch-like platform for live coding once, but obviously it
flopped.

I went searching for that exact site and couldn't find it (or maybe I did but
regardless it was dead). I actually used it for about 5 maybe 10 minutes once
upon a time because I thought the concept was cool. Watch me create a SaaS
service on the fly. 3 minutes into it, I'm realizing I'm about to type in
public IP addresses, log into secret management systems, pull data out of a
CMDB which gives up a bunch of my internal system data... So I thought to only
share a single monitor and use my second monitor for privacy related tasks.
But then people can't see what I am doing and for long periods of time while
i'm gathering CMDB data, no one sees any coding going on. At the end of the 10
minutes, I had about 12 viewers so I'm sure if I was doing somethign
worthwhile it would increase a decent clip..

But live coding without planning is a security nightmare. Someone I knew once
live coded their programming "homework" for a position they applied to _and
then shared their coding session with the interviewers_. That takes the cake.
He was hired on the spot, probably because he wasn't afraid to show his
mistakes.

------
rubatuga
If you’re looking to bring HDMI content into OBS easily and cheaply, check out
my review on the $15 HDMI capture card that recently made the rounds here on
Hacker News. Essentially this card has a native resolution of 1280x720, which
is a good target if you’re trying to make text legible.

[https://www.naut.ca/blog/2020/07/09/cheap-hdmi-capture-
card-...](https://www.naut.ca/blog/2020/07/09/cheap-hdmi-capture-card-review/)

~~~
voltagex_
Hey, I can't link to it right now but there's a couple of Twitter threads
about that card and some true USB3 1080p capable ones - they're about $50AUD
on AliExpress. I still wonder why the manufacturer or seller filed off the
names of the chips.

------
Uehreka
I’d love to do a live stream of my coding work with me explaining my process.
Even if few/no people watched live, they might make for useful tutorials or at
the very least a sort of video journal.

My main hitch is that I’m concerned about getting to comfortable and
accidentally bringing up a config file that contains secrets, and then once
those are streamed they’re out of my control.

~~~
ianmcgowan
I have a problem with diving into rabbit holes and spending more time on
"being efficient" than sometimes just doing the work. Two things that have
helped are

1) recording a "session" (I use snagit, but any screen recorder that lets you
narrate works), where I describe what I'm working on, what the goal is etc. It
seems silly, but even if the only person that's going to watch the video is me
it somehow helps keep on task. And the video journal aspect is actually
interesting.

2) Focusmate.com - this worked for me for a while, but I'm a secret uber-
introvert, so I dreaded the introduction part of the process. But telling
someone "I want to accomplish X in the next hour" and then having them
watching over my shoulder really works.

Maybe you should try the live streaming, but just leave out the streaming
part? :-)

------
bdz
If you are using Streamlabs for the alerts then why not use it for streaming
too? And it's available on Mac aswell [https://blog.streamlabs.com/streamlabs-
is-live-on-mac-ff543b...](https://blog.streamlabs.com/streamlabs-is-live-on-
mac-ff543b7f4a35) or [https://github.com/stream-labs/streamlabs-
obs/](https://github.com/stream-labs/streamlabs-obs/)

Personally I like it more than OBS because all the integrated stuff inside the
client, it's just a better fork really.

~~~
jordanlewis
I think it's personal preference! I tried this out, but I didn't like it as
much. I found it harder to configure, a little clunkier, and so on.

------
AlchemistCamp
That looks like an Ergodox keyboard! I really want to get one of those...

It's not just that they're great ergonomically (which I truly need), but
they're also highly programmable. I can imagine how a large set of macros
could improve screencasts quite a bit.

More related to the article, I've used OBS for nearly all of 150+ screencasts
and it's been fantastic. I tend to use Streamlabs OBS for Twitch and the fully
open source OBS for all my YouTube videos. The plugin ecosystem is great.

------
BookPage
I've livestreamed coding before. It turned into a pretty cool multi-peer
programming type of environment. I learned a lot from the viewers

------
roland35
Are there any line streams of hardware development? I'm getting into Kicad
circuit design and it would be good to see how an experienced user works with
it!

~~~
keithnz
I have seen quite a number of hardware/embedded streams, but not a lot lately.
Many of the streamers (both hardware and programming) are often new or mid
level devs, there's a few super experienced programmers. I like watching
Daniel
([https://en.wikipedia.org/wiki/Daniel_Stenberg](https://en.wikipedia.org/wiki/Daniel_Stenberg)),
[https://www.twitch.tv/curlhacker](https://www.twitch.tv/curlhacker) who
created curl, and pretty much has spent forever working on the project. He
streams off and on.

------
xiaodai
Cool. I use streamlabs and I have a much simpler set up for coding challenges.
I wish I can make some commands for interacting with users though. Eg. A
command for uses to point out mistakes in my code.

Here is my stream: [https://twitch.tv/evalprase](https://twitch.tv/evalprase)

------
ethanwillis
So I haven't done any live coding streams in a long time. But I recently
recorded a completely unfiltered version of myself coding for a co-worker who
is learning to program. I wanted him to see all of the ups and downs. All I
did was turn on the recording and just went about my day like I normally do,
all cussing and fiddling in my terminal like I normally do. Once you're on for
30 minutes or so you forget you're even recording.

It could be interesting to take this approach then "stream" it as well so you
can provide feedback to people watching and also laugh at yourself a little
bit.

~~~
nickjj
I've done this a few times too and posted those on Youtube. Good times.

Streaming could be fun, but if you're streaming something you're actively
learning (let's say a new piece of tech while you build something), for me it
would be likely 50 minutes of Googling and 10 minutes of coding for every
hour. That's how I talk myself out of not streaming because I personally would
get bored watching someone Google things endlessly.

~~~
ethanwillis
Yea, I think that's true for _us_ for beginners I realized it might be super
valuable. They don't have those skills down and there's usually this
perception that if you're a good programmer that you don't run into a lot of
the same workflow problems they do.

What they really get out of it is, oh okay this person's a human too but they
think about the problems they run into in this way, I could do that too and
get a little bit faster. And then also they don't discouraged thinking they're
total "noobs"

I always like to explain, no I'm not a genius I've just been doing this a long
time. So anything I have a good answer on? I learned that through fire and
didn't just pull it out of my ass lol.

------
xmprt
I'd also add a section about editing your OBS layout to include views for Chat
and Activity Log. Those have been super useful to me.

------
ladyofcode
Thank you for writing this! I'm preparing to stream and I'm swimming in all
this new tech I haven't used before - everything is laid out so clearly in the
post, it's awesome.

------
Kaze404
For the people on Linux using ultrawides, I recomment Xephyr at 1080p. You can
put whatever you want to stream in there, and still have the real estate of
the rest of your screen. It's super nice :)

------
r32a_
I've made a project that you can sell your live stream for btc. totally
distributed using hypercore and Lightning network

[https://github.com/rbndg/Bitstation](https://github.com/rbndg/Bitstation)

~~~
65536
I can barely get 1-2 people to briefly look at my stream, and that’s without
attempting to charge them anything at all. And meanwhile even popular people
stream for free. Why should anyone pay upfront to watch a stream? Much better
with Patreon, Twitch subscriptions and donations while allowing anyone to come
see.

------
icpmacdo
watch the best in the business do it live currently
[https://www.twitch.tv/georgehotz](https://www.twitch.tv/georgehotz)

------
Sodman
I love live coding streams but I don't understand why you'd stream a video of
your keyboard at all times? From the screenshots it doesn't look like you'd be
able to pick up on things like hotkeys when watching in real-time, but as
mentioned in the article it does open the possibility for somebody to watch
replays and figure out your passwords.

Keyboard cameras make sense to me if somebody is streaming eg starcraft where
they're hitting 300 APM and it's impressive to watch, but I just don't see the
appeal of it for coding.

~~~
DiabloD3
Technically this is still kind of the best way of doing it.

Guy who wrote this article made a mistake, his keyframe interval is set to 0,
which tells his encoder its free to do scene detection... however, he's
exploiting the nature of the encoder (the scene never changes, as its a static
image) to create extremely large GOPs, but not as big as manually setting it
can go.

Twitch, as do other platforms, have recommendations, but they'll ingest pretty
much anything you give them. This means, you can send them 15fps or lower with
a ridiculously huge keyframe interval of 10 or more (Twitch recommends 2, 1 is
a saner choice for low latency usage, 10 is still gives you enough ability to
interact with viewers).

I've toyed with code/static optimized streams, and using x264 instead of HW
encoding on a Nvidia Turing (currently the best HW encoder), and playing with
custom args: -refs 16, -qmin above 10, -keyint_min set to keyframe interval *
framerate (allows 1 I frame per GOP, the rest of the GOP could be near-zero
bandwidth P frames), and -tune stillimage (which sets lesser known options
which sorta helped here). Static views of an IDE would use extremely little
bandwidth.

You'd be optimizing for the IDE view part of a stream, not the stream of you,
which would be in a corner of the screen.

~~~
voltagex_
I haven't had a chance to play with Turing NVENC yet - how much of a real step
up from Pascal is it? How does it compare to x264 veryslow quality wise (I
know it'll beat x264 in realtime encoding, but I'm more interested in
archival)

~~~
DiabloD3
Its equivalent to x264 medium when using "quality" or "low latency quality.
"High quality" just enables two pass on top of quality, which doesn't get it
out of medium, but improves the bit distribution similarly to how two pass in
x264 does.

All the gens of GCN through RDNA1 are on the spectrum of veryfast to fast,
Pascal is fast; RDNA2 (due to inclusion in PS5 and XB2) meets Turing's new bar
for quality (so no more low quality console streams on Twitch).

So, none of them compare to veryslow. Ampere will probably have a better
encoder than Turing, but I think the fair comparison will still be against
medium, not slow. The big change, afiact, will be work on h265, h264 for them
is pretty much as good as they need.

------
Brushfire
A much easier option would be to use Lightstream.
[https://golightstream.com](https://golightstream.com).

------
2bitencryption
technical question -- I'm really impressed how OBS is able to abstract the
"screen recording" functionality across different OSs (it works the same in
Linux, Windows and OSX, with no difference in behavior that I've noticed).

How does screen recording work? Is it easy for OBS to just capture the video
output buffer and start encoding it, regardless of the OS? Or do different OSs
have very different strategies for this? What about hardware-level cursors? (I
think that's a thing?)

~~~
formerly_proven
> What about hardware-level cursors? (I think that's a thing?)

Software that wants to capture the desktop has to emulate the hardware cursor
by getting the current cursor position and bitmap and blit it into its copy of
the framebuffer. That's because the hardware cursor doesn't exist in the
framebuffer, it's overlaid by the GPU during readout.

For the same reason screen-effects like "nightlight" don't affect the cursor
in Windows, because the effect is applied as a shader, which can't touch the
cursor. They could fix this by updating the cursor bitmap, but they don't.

------
byefruit
Love the bokeh on his video feed. Hard to justify a $900 camera for that alone
though, anyone using anything else they'd recommend?

~~~
agentultra
I'm using my phone, there's an app that lets you stream from your phone's
camera... which is usually better than the dedicated web cams.

~~~
rane
What's the app? Are you saying it allows you to use the phone as a video
source in OBS?

~~~
agentultra
Yes, [https://obs.camera/](https://obs.camera/)

~~~
soylentcola
I've started playing with [https://obs.ninja](https://obs.ninja) for work-
related WebEx conferences. It's surprisingly competent and doesn't require any
additional application installed on the phone (just the browser).

------
tsumnia
Shameless promotion of my own video on setting up OBS; I created this for some
of my friends and colleagues when we first started moving to all online
teaching:
[https://www.youtube.com/watch?v=n5KGeiw3KV4](https://www.youtube.com/watch?v=n5KGeiw3KV4)
I will note that toward the end of the video on some finer tweaks, my scene
was not correctly showing OBS cropping.

That said, this article does a great explaining the Twitch integrations. If
you aren't looking into Twitch streaming, that portion can be ignored.

I've been using OBS for creating lecture videos for years. I use it mostly
because when I started, it was one of the only free quality stream capture
tools out there and I'd seen a few of the early Twitch streamers using it.
Since I was teaching, I wanted to imitate the Khan Academy style drawings. The
article uses an iPad, but I've gotten pretty comfortable with GIMP and a small
Wacom tablet.

My setup (my equipment is a bit old, so it doesn't look like they are still
sold):

* Samson Meteorite microphone: [https://www.trustedreviews.com/reviews/samson-meteorite](https://www.trustedreviews.com/reviews/samson-meteorite)

* Wacom Small Pen Tablet: [https://www.amazon.com/Wacom-Intuos-Touch-Tablet-Version/dp/...](https://www.amazon.com/Wacom-Intuos-Touch-Tablet-Version/dp/B00EN27U9U)

* GIMP: [https://www.gimp.org/](https://www.gimp.org/)

Your two most absolutely crucial components are your sound and your lighting.
The sound should get picked up well so the viewer doesn't need to adjust their
volume to listen. I know some of my videos have fallen short in this quality
because of the mic's positioning.

Also, think about your voice and enunciating your words. Since my lectures are
public, 20% of my channel's traffic comes from India and Germany. You don't
need to necessarily slow your words (like I did when I started), but you want
to make sure each word can be heard cleanly. You may not realize you have a
hard to understand accent because it just seems natural to you. You can also
mitigate this with subtitles (I've used rev.com for ADA compliance).

Lighting is the other important aspect because if you are going to stream your
face, it needs to look presentable. You don't want the lights shooting
directly on your face though because that can wash out you texture and color.
Like in the article, you want to bounce your lights off a white surface for a
softer illumination. I'd recommend reading some indoor filming techniques to
get a good setup, since you are effectively on camera.

Likewise, know your eye line. I like to have my camera at just above eye level
so when I'm lecturing it looks like I'm talking to my students, rather than
looking down/up wherever your webcam is. This was also a tip I gave to a
friend last week before he presented at a conference. Acting for the Camera is
a nice book you can peruse for small tips like understanding your frame.

Finally, you're going to be very clunky when you start, even if you are at
extroverted person. You'll need to become comfortable performing in front of
the camera no different than in front of a classroom or audience.

Here are three videos illustrating this point:

[1] One of my first videos
[https://www.youtube.com/watch?v=PEYOixCgGHg](https://www.youtube.com/watch?v=PEYOixCgGHg)

[2] Literally two months later, notice my increase in cadence
[https://www.youtube.com/watch?v=ltav5tp43RY](https://www.youtube.com/watch?v=ltav5tp43RY)

[3] Five years later
[https://www.youtube.com/watch?v=Dggl0fJJ81k](https://www.youtube.com/watch?v=Dggl0fJJ81k)

Once you start, watch some of your videos to see what you think is wrong or
weird with them and try to improve.

------
fcanela
I would love to know how to do it with Linux/Ubuntu. I tried with OBS and
always run into a bunch of issues when trying to create something beyond a
basic scene.

~~~
StavrosK
I'm using OBS on Ubuntu to stream my maker sessions on
[https://youtube.com/c/StavrosKorokithakis/](https://youtube.com/c/StavrosKorokithakis/)
and everything works fine, what problems are you having?

PS does anyone know how to get a better channel URL?

------
ericzawo
Thanks so much for this guide!!!

------
seastonATccs
I find twitch to be an unholy amalgamation of a NPR pledge drive and a Las
Vegas slot machine.

------
cdelsolar
I've streamed coding a few times on Twitch at my channel (14domino). My setup
is much more similar to my coding setup so the font can definitely look small.
Does anyone know a good way to advertise coding streams in general? I mostly
get 2-3 viewers who are already my friends, and I doubt they're very engaged,
but I do like streaming coding and would love it if people could learn
something out of it. :)

~~~
corobo
I believe code streamers need to bring their own audience from some other
thing.

It's not what you want to hear, but it is what I've seen.

~~~
tedyoung
While that can help, it's not necessary. What is necessary is increasing the
amount and/or consistency of time streaming (sticking to a solid schedule
really helps) and always be talking and interacting with chat. It may take
many months to build up an audience, but you can do it.

~~~
corobo
Ok but everyone that says that pulls tiny numbers

------
mdoliwa
What do you think about running live coding stream on YT vs Twitch? I'm about
to start streaming myself, but not sure what platform should I use. Last time
I checked Twitch it looked a little bit overwhelming.

~~~
space-candy
Not sure of what OS you utilize, but Twitch recently released an app called
Studio for Windows/OS X that allows you to very easily stream your desktop to
their service.

~~~
mdoliwa
Linux

------
wtallis
Does anyone know of a good presentation system that does _not_ consist of
compressing raw pixels and sending that to the audience? It's a huge waste of
bandwidth that I'd rather see used to provide reliable low-latency audio.

I'd love to be able to teach programming in a way that lets the students
explore the live state of my working directory and follow along with file
edits, but rendered locally on their machines at native resolution and with at
least some degree of interactivity. Most collaborative editors I'm aware of
are ill-suited for code, or don't seem to work well for more than one file at
a time. Ideally, I'd like students to be able to open a read-only view of my
entire IDE workspace, but exporting it over a network filesystem isn't quite
live enough even with a short auto-save interval.

~~~
rustyconover
I think you'd be surprised how efficient video codecs with regards to
bandwidth used, nobody sends raw pixels at all. Also with HLS latency can be
very short with the right settings.

A few tips for coding screencasting:

For coding screencasts you should make sure that chroma subsampling isn't
enabled when you're doing the encode of the video otherwise it may look worse
with highly contrasting areas.

Decrease the encoding frame rate if its primarily going to be just a
screencast without a lot of motion on the screen. At the expense longer mpeg
segments (and more latency) you may want to increase the group-of-picture
size.

There shouldn't be a reason that the encoded screencast looks worse then how
it appeared to you unless the encoder you are using is just mashing the
quality down.

~~~
wtallis
> I think you'd be surprised how efficient video codecs with regards to
> bandwidth used, nobody sends raw pixels at all. Also with HLS latency can be
> very short with the right settings.

We've all had enough experience with Zoom, Google Meet, Skype for Business,
etc. in recent months to know that this is _not_ something that works well out
of the box. And that's before we get into issues like the fact that I'm using
a 34" ultrawide monitor, and most streaming systems will have to downscale my
desktop before encoding it, and the result won't look at all good for a viewer
trying to watch on a 1080p laptop.

~~~
zaxu
At the same time, moving video coming from a camera is a lot different than a
stream of what is essentially a 95% a still image.

~~~
wtallis
I _was_ referring primarily to the screen sharing features of the
aforementioned services. In general, they're barely adequate for slideshow
presentations, but the transitions are still going to be rough. And even when
everybody in the virtual conference has a solid internet connection, the user
experience is still a lot worse than when a PDF of the slides is emailed out
before the meeting starts.

I find it simply amazing that all these "collaboration" tools aspire to little
more than emulating the use-cases of broadcast television or a large lecture
hall, and there a so few tools that try to enhance the experience in ways that
are only possible when every participant has their own screen and computer.

~~~
formerly_proven
Their badness is unrelated to the abilities of e.g. x264 compressing a
screencast, because it really is quite good at that (near-losless quality at
about one Megabit/s).

------
bzb3
[deleted]

~~~
gregorymichael
It seems like you've been doing this long enough that you've lost empathy for
folks who are getting started. Pretty common for technical folks. OBS is not
the most intuitive piece of software. For instance, "Scenes" will be new
concept for folks. This was a great guide. Thanks OP for writing it.

------
almog
Audio-input-wise, I fail to understand why anyone whose objective is to
capture their own voice, would choose a condenser over a dynamic microphone.
Dynamic microphone hardly those fan/AC/room nearby phone calls that the author
had to reduce using software filters. Farther more, dynamic mics can deliver
your voice with a touch of radiophonic note. What's more, they're usually more
durable and cost less (you can get a very good dynamic mic like ATR2100 or Q2U
for less than $100).

~~~
geerlingguy
Getting a good level out of a solid dynamic mic requires a good pre-amp as
well as (often) a signal booster like the Cloud Lifter or Cathedral Pipes.

It’s a more expensive setup overall, but it does make for a much richer
‘radio’ sound if that’s what you’re after.

~~~
formerly_proven
No, the pre-amps of even cheap interfaces (e.g. Behringer UMC series) are good
enough for voice-overs with a dynamic mic.

------
mrkwse
Jordan was a little vague in terms of how to get the iPad as a source. I know
that QuickTime can capture i(Pad)OS devices as an input source so it might be
some built in compatibility when the device is connected via lightning/USB,
but another route is NDI. [1]

NDI is doubly useful as it:

    
    
      1. is wireless over the local network
      2. allows you to use your phone/tablet's camera as a video source, which can be a reasonable webcam stand in (although latency will never be as good, so possibly better as a sort of secondary vanity camera)
      (3. definitely works on Windows)
    

There are apps on iOS that will share the screen content and camera content
and a quick google seems to surface the same for Android.

As someone who used to work in TV too, the importance of good lighting cannot
be stressed enough. It doesn't have to be expensive, but a reasonable, ideally
diffuse source of light will make the biggest improvement to your stream vs an
expensive camera (and some webcams may need manual adjustment via OBS to best
utilise the available light).

[1]: [https://obsproject.com/forum/resources/obs-ndi-newtek-
ndi%E2...](https://obsproject.com/forum/resources/obs-ndi-newtek-
ndi%E2%84%A2-integration-into-obs-studio.528/)

~~~
jordanlewis
Whoops, you're right that I didn't mention that. Connecting it to your Mac via
Lightning makes the screen available as a video source.

~~~
Cu3PO42
Is it available as a video source directly in OBS? I know I can open it in
QuickTime, but then you'd have to add a layer of window capture...

Personally I'm looking for a Windows solution primarily, but if I can open it
directly in OBS, I might just run my MacBook and use the NDI plugin from the
parent to stream that video to my PC.

~~~
jordanlewis
Yes, it pops right up in OBS as well as QuickTime and so on.

Using another layer of window capture doesn't work very well as I'm sure you
know - it gets super laggy!

~~~
Cu3PO42
> Using another layer of window capture doesn't work very well as I'm sure you
> know - it gets super laggy!

Oh, don't I know. I last looked into this when I had to produce a video
explaining the FLP theorem. In the end I opted to just TikZ _everything_ and
avoid the iPad route because I couldn't get anything working acceptably well.

(Though I never tried just adding it as an video source directy, I assumed
there had to be secret sauce in QuickTime.)

Thank you so much for the info!

------
nickjj
One thing that I was surprised not to see in the post was how to deal with
editing files that have secrets (such as API keys or email credentials).

When I set up OBS, I overlayed a full screen image that says I'm showing
something secret which had nothing but a small webcam feed in the bottom right
so folks could still see me but not my desktop. It was assigned to a global
hotkey toggle of course.

~~~
VikingCoder
I think the best way to deal with secrets is to not live stream them, at all,
ever, in any way.

If you have secrets anywhere near your live stream, it's not a question if
"if" you will leak them but "when." Don't put yourself in that situation.

Work _hard_ to keep yourself out of that situation.

~~~
corobo
That would require no secrets. All it takes is a misclick into a .env file.

I’d assume you’re not coding on a production system so your secrets shouldn’t
be too hard to revoke, cycle them after your stream and any time you leak
them.

~~~
xxpor
Secrets should really be stored in services, not files outside of maybe a
single bootstrap file (unless you're working on the secret storage service
itself).

I generate my secrets once, send them off to the secrets service, and then my
service queries that service. I never see the secrets with my own eyes.

~~~
this-pony
This sounds like a turtles all the way down kind of think... Then is it OK to
keep the secret of the secrets service, or something in that sense.

~~~
dfee
The idea is that you keep the name of the secret, and grant access to the
secret manager via roles / policies which are generally open to devs on a
subnet for a development environment but locked down in production
environments.

------
daenz
Do a lot of programmers feel like they could be effective on a livestream? I
might be in a minority, but my preferred coding style is very non-linear and
sporadic, and wouldn't make for an enjoyable viewing experience.

~~~
saurik
I am way to self conscious for that... I dive deep into a problem for 10 hours
and I try a bunch of stupid stuff along the way or make a bunch of mistakes
and now I am broadcasting those to the world; and meanwhile either I am paying
attention to the people and not working (I always want to get lost in a
complete zone of concentration) or entirely ignoring them (which seems
weird)... I will go for long stretches--like an hour--just staring at and
reading the same data reports over and over again trying to cross reference
all of the information, which would be ridiculously boring... I don't
understand how people do these things other than as performance art, workshop
instruction, or stunts: that people seem to do it and be productive on their
own tasks indicates their brains work very different from mine ;P.

~~~
bredren
One thing you might enjoy is recording your screen for yourself, and then
replaying it at 10x speed.

I’ve done this before and it allows you to get some of the feeling of “being
watched” with none of the privacy or security problems.

Also sometimes it’s neat to see the crazy process of building something,
particularly if there is ui or visual design tools involved.

Also, I do think there is a whole additional level of understanding needed to
practice or “work out” in front of an audience. There is some flourish to it,
even if you are mostly doing your thing, you may have more round corners than
you might otherwise.

It is definitely a different experience.

~~~
justinlloyd
I run a piece of software called TimeSnapper on my machine that takes a
snapshot every 10 seconds of the entire desktop area. I have recordings going
all the way back to the very beginning of 2006. It is incredibly interesting
to watch some of those old recordings to see what I was working on that month.

~~~
ShorsHammer
This sounds amazing, essentially a video diary without the omissions of a real
diary.

I'd love to see watch my work sped up like this. At 30fps you could see your
entire day in 90 seconds.

~~~
justinlloyd
[https://otakunozoku.com/video/working.flv](https://otakunozoku.com/video/working.flv)

A month's worth of work in a couple of minutes. Captured way back in early-ish
2013. Sorry about the .flv, that's what web video kinda was back then if you
wanted it to work on multiple browsers.

