ScreenFlow works pretty well for me for all kinds of screencasts. Its default settings are pretty bad though, when I want to upload the exported video to YouTube and have is played back with decent quality. The problem is the default scale setting: The “Web – High” preset suggests to scale the video down by 50%. That reduces the file size a lot, but also produces output that will show up as “240p” on YouTube, which looks pretty awful.
For 720p videos, you want to set the resolution to exactly 1280×720. Export and upload that and YouTube will be able to play back the video with 720p “HD”, which looks so much better.
I’m recording videos on my MacBook Air 13″, which has a native resolution of 1440×900. That’s not the same ratio as 1280×720. For a recent recording I resized the canvas of the recording from 1440×900 to 1440×810. That cuts of some stuff at the top, bottom or both, but that worked fine in my case. The end result is a ratio that matches the 720p ratio, so scaling it down won’t distort the result at all.
Note that you need a verified YouTube account to upload videos longer than 15 minutes. Make sure you have that before attempting to upload an hour long screencast, and having to start over after the video gets rejected as too long.