Creating screen recordings on macOS doesn’t have to be difficult, time consuming or expensive. You may be surprised to learn that pre-installed applications and tools in macOS can be used to quickly create high quality screen recordings and animated screenshots of your Mac, iPhone and iPad.

QuickTime Player, which ships with macOS out of the box, includes built-in screen recording functionality. If you’re looking to create and share a short screen capture that does not require advanced video editing, QuickTime is an ideal solution.

To create a new screen recording, open QuickTime Player, and select File > New Screen Recording or use the N keyboard shortcut.

If you frequently need to create screen recordings, the following shell function may be used to quickly initiate a new recording:

##
# Activate new QuickTime screen recording
# Note: Assistive access must be enabled for "automated start" to work
##
function rec {
  osascript -e "tell application \"QuickTime Player\" to activate new screen recording" \
            -e "tell application \"System Events\" to tell process \"QuickTime Player\" \
                to tell window \"Screen Recording\" to click button 1" >/dev/null
}

Tip: An active screen recording may be stopped with the keyboard shortcut.

The QuickTime screen recorder has options that can be set both through the GUI and on the command line.

# Set recording quality
# High:    MGCompressionPresetHighQuality
# Maximum: MGCompressionPresetMaximumQuality
defaults write com.apple.QuickTimePlayerX MGRecordingCompressionPresetIdentifier -string 'MGCompressionPresetMaximumQuality'

# Show mouse clicks in screen recordings
defaults write com.apple.QuickTimePlayerX MGScreenRecordingDocumentShowMouseClicksUserDefaultsKey -bool true

QuickTime provides some very basic, easy-to-use video editing functions like trimming and clipping. Unfortunately, more advanced functions like changing the video dimensions and speed are not available, and QuickTime can only export videos in predefined formats (which are not optimized for sharing).

Optimizing with Automator

It is possible, however, to automatically optimize screen recordings for sharing by using an Automator workflow. Automator, another application that ships with macOS by default, is a very powerful tool that allows you to easily automate actions on your machine.

To run a script automatically whenever a new file is added to a particular folder, use Automator to create a new Folder Action. Once you’ve opened a new Folder Action, select a folder where you will save your video files to (I use ~/Movies/). In the Library panel locate the Filter Finder Items action (found within the Files & Folders actions), and drag-and-drop the action into the workflow. You now have the ability to filter out files that you do not wish to optimize. I filter by files created today, of type movie, with a mov file extension. Next, locate the Run Shell Script action (found within the Utilities actions), ensure input is passed as arguments, and in the body of the action, call the automated script you wish to run on the files.

The following script uses gifv to create an optimized video file that is half the resolution and 2.5× faster than the original video. This can significantly reduce file size, and make the video file easier to share.

source $HOME/.exports
export PATH=$PATH:/usr/local/bin:/usr/local/var/rbenv/shims

# Optimize videos at double speed and half resolution
# Minimum resolution
min_res=480
gifv -p "trunc(max(min($min_res\,iw)\,iw/2)/2)*2:-2" -s 2.5 "$1"

gifv

gifv is a command-line wrapper around ffmpeg that converts video files and GIFs into videos optimized for GIF-like playback on the web.

The gifv tool was based on two “competing formats”, imgur’s GIFV and gfycat’s GFY (both pronounced “jiffy”). Essentially, these “formats” are wrappers around compressed video files (h.264 encoded MP4s or WebMs).

Whenever possible, video files should be preferred to GIFs, as video codecs offer superior compression, which results in smaller filesizes, better quality, and includes built-in playback controls.

Installation

Install gifv, add the script above to your ~/bin/ directory and install the Automator Folder Action workflow below by downloading it and moving it to ~/Library/Workflows/Applications/Folder Actions, and all videos created by QuickTime, saved to ~/Movies/ will be automatically optimized.

Optimize Screen Recording

Other Tools

gifify

Some services do not allow video files to be used, but do accept animated GIFs. In these cases, you can use gifify to convert the video file to an animated GIF.

The version of gifify linked above if a fork of Jonathan Clem’s gifify which provides some additional options such as reversed and parametric (or patrol) playback, as well as a number of different options for quality and compression/generation speed.

Another option is to use the node package of the same name, which offers even more options.