I stream some of my coding sessions: https://www.livecoding.tv/brainzap, with the following software and settings.
To capture the screen I use OBS. It is free. It also is pretty good for just screen recording.
OBS supports Chroma Key Filter, which means you can add a video or webcam that was filmed in front of a Green Screen. For example:
OS X has no built in way to capture all audio so I use the free tool Sound Siphon. The demo allows you to capture the system audio for free.
Output > Advanced you can now set the Encoder to Apple Hardware, which will reduce the CPU usage by a magnitude.
Before streaming do a testrun and check the following: * Check that no frames are dropped. (At the bottom of the app) * Correct aspect ratio and resolution. * Audio not too low or too loud. * Quality, is the displayed text readable.
To display the current song in the stream I have a small Applescript that writes the current song into a text file, which I will display inside OBS.
set oldTrack to "" set current_user to do shell script "whoami" set the_file to "/Users/" & current_user & "/NowPlaying.txt" do shell script "touch " & POSIX path of the_file -- create file set oldSong to "" repeat if application "Spotify" is not running then say "spotify is not running" return end if tell application "Spotify" try if player state is playing then set theTrack to name of the current track set theArtist to artist of the current track set theAlbum to album of the current track if oldTrack is not equal to theTrack then set oldTrack to theTrack tell application "Finder" try set eof of the_file to 0 set theSong to "\"" & theTrack & "\"" & " by " & theArtist -- only save when new song is played to protect SSD if (theSong is not equal to oldSong) then write (theSong) to the_file as «class utf8» end if set oldSong to theSong end try end tell end if end if end try end tell delay 5 end repeat