https://trac.ffmpeg.org/wiki/Capture/Desktop
録画対象のデバイスを列挙する。
$ ffmpeg -f avfoundation -list_devices true -i ""
...
[AVFoundation indev @ 0x7fe20a704e00] AVFoundation video devices:
[AVFoundation indev @ 0x7fe20a704e00] [0] FaceTime HD Camera
[AVFoundation indev @ 0x7fe20a704e00] [1] Capture screen 0
[AVFoundation indev @ 0x7fe20a704e00] AVFoundation audio devices:
[AVFoundation indev @ 0x7fe20a704e00] [0] MacBook Airのマイク
上記のように出た場合、入力インデックスを「1」とすることでデスクトップの録画が行える。
画像フォーマットは拡張子で指定できる。自動テストの録画であればwebmがファイルサイズが小さく取り回しやすい。
$ ffmpeg -y -f avfoundation -capture_cursor 1 -capture_mouse_clicks 1 -i "1" output.webm
- -y: 同名ファイルがある場合自動で上書きする。通常は上書きするかユーザーに確認を求める
- -capture_cursor 1: マウスカーソルをキャプチャする。AVFoundation用のオプション。
- -capture_mouse_clicks 1: マウスくりっくをキャプチャする。AVFoundation用のオプション。
mp4でも録画できる。mp4の場合は-fps_modeの指定が必要となる。
$ ffmpeg -f avfoundation -capture_cursor 1 -capture_mouse_click 1 -i "1" -fps_mode vfr -r 30 output.mp4
1秒に1回同じファイル名で静止画を保存する。
$ ffmpeg -f avfoundation -i "1" -vf fps=fps=1 -q:v 2 -update 1 output.jpeg
- FFmpeg
- FFMpeg Documentation
- ffmpegとffmpeg-allがあり、ffmpeg-allの方がより詳細に解説されている
- FFmpeg wiki
- How to形式の記述が多数ある