It is useful to be able to rapidly share computer activity with a screencast. Tools available such as Screenflow, while powerful can be heavyweight for sharing a few seconds of a window to a colleague over an instant message. The following are some tools I have encountered.
Recording Terminal SeMssions
This is a doddle to setup and is free/open source. Get started with as little as three commands:
sudo pip install --upgrade asciinema asciinema rec asciinema auth
See the asciinima docs.
ttycast allows you to broadcast your terminal sessions in real-time using a headless terminal emulator and socket.io
Terminal Sharing with Tmate
On a related note, tmate is a fork of tmux and allows you to share terminal sessions which is useful for remote pairing. tmate
Fortunately QuickTime which ships with all Macs has the ability to record the screen1. For enhanced productivity, I have assigned a hotkey in Alfred to call an Applescript to perform the action quickly2.
Similarly you can re-map the in-built screenshot tool (Grab) shortcuts3 under keyboard preferences -\> shortcuts -\> screenshots - thereby providing an optimal way to share both video and pictures of your current screen.
The Alfred workflow can be downloaded here: record screen with quicktime - alfred workflow.
The best part of this workflow compared to alternatives is that it allows you to draw a square around the area you would like to record as opposed to recording just the full screen, which can also be chosen by clicking anywhere on the screen rather than drawing a box.
If you experience issues with Soundflower give wavtap a go
Want more GIFS?
GIFS are a convenient format for conveying information, predominantly about cats. As a side benefit, they are useful for sharing code.
The following screen recording tools help you to share GIFS of your activity easily:
The fastest utility I have found for sharing screen activity is recordit which can quickly record an area of the screen and copies a shareable link to the clipboard when complete. The result can be shared as an animated gif. I can not yet find a way to erase recordings from their server so caution is required.
Screenmailer Record and send by email screenmailer - updated: 2014-05-29-1-20
Great utility for sharing GIFS which has the added ability to add titles, pause and resume and shift the target area while recording is Licecap
If you are more adventurous or want morem control you can convert videos to GIF too:
2015-11-06 Drop to Gif http://mortenjust.github.io/droptogif/
The Manual Way
You can convert various format to GIF for further customizing and control.
Quicktime video to GIF
install ffmpeg or use
brew install ffmpeg and then run:
ffmpeg -i video.mp4 -an -f image2 "%d.jpg"
read the manual for other options available:
ffmpeg -i in.mov -s 600x400 -pix_fmt rgb24 -r 10 -f gif - | gifsicle --optimize=3 --delay=3 > out.gif
Drag and drop video to GIF
An easier way to perform the above conversion is using GifRocket; drag and drop a video and out pops a gif.
Convert an Image sequence to GIF
If you have a directory of images created using something like TTY or maybe by a script polling a web camera you can use imagemagick to string them together into a GIF.
convert -delay 1 -loop 0 *.png animation.gif convert -delay 0 -fuzz 30% -layers Optimize* .png animation.gif
Convert Youtube video to GIF
Come across a youtube video and want to GIF it up? The french have heard your crygifff.fr
2014-08-22 YouTube to gif
Terminal to gif
git clone https://github.com/icholy/ttygif.git cd && make [aside: 2014-02-25-3-07 - installation issues for me were resolved by running rm -f ~/.zcompdump*] You might want to move the ttygif onto somewhere on your path for easy access.
cp ~/Desktop/ttygif/ttygif /usr/local/bin/
install ttyrec using brew
brew install ttyrec
now simply run ```ttyrec``` to record your terminal activity. Press ctrl+d to cancel the recording session. This will output a file ttyrecord into the same directory. To turn this recording into a gif then run
ttygif ttyrecord ```
Installing ImageMagick 2014-02-25-3-21
brew install imagemagick
I personally had issues installing this way so here is how to manually install it:
cd /tmp curl -OL ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick.tar.gz tar -xzf ImageMagick.tar.gz cd ImageMagick-6.8.8-7 ./configure --prefix=/usr/local --disable-static --with-modules --without-perl --without-magick-plus-plus --with-quantum-depth=8 --disable-openmp --with-gs-font-dir=/usr/local/share/ghostscript/fonts