FFMPEG – Usage

Screen Capture (H264)

Windows

ffmpeg -f gdigrab -i desktop -r [FrameRate] -pix_fmt yuv420p -c:v libx264 -crf 20 -preset ultrafast [OutputFile]

MacOSX

ffmpeg -f avfoundation -i [ScreenID] -r [FrameRate] -pix_fmt yuv420p -s [Resolution] -c:v libx264 -preset ultrafast [OutputFile]

# Example.
ffmpeg -f avfoundation -i 1 -r 30 -pix_fmt yuv420p -s 640x480 -c:v libx264 -preset ultrafast Recording.mp4

Unix

# Usage:
ffmpeg -f x11grab -i :[DisplayID].[ScreenID] -r [FrameRate] -pix_fmt yuv420p -s [Resolution] -c:v libx264 -preset ultrafast [OutputFile]

# Example.
ffmpeg -f avfoundation -i :0.0 -r 30 -pix_fmt yuv420p -s 640x480 -c:v libx264 -preset ultrafast Recording.mp4

Screen Capture with File Segmentation

# Windows
ffmpeg -f gdigrab -i desktop -r [FrameRate] -pix_fmt yuv420p -c:v libx264 -crf 20 -preset ultrafast -f segment -segment_time [SegmentTime] -reset_timestamps 1 [OutputName]_%%04d.mp4

Concatinate into One File

# VideoFiles.txt (contains list of files to process):
file Recordings_0000.mp4
file Recordings_0001.mp4
file Recordings_0002.mp4
file Recordings_0003.mp4

# Concatinate into one file.
ffmpeg -f concat -i VideoFiles.txt -c copy [OutputFile]

# Convert to H264 encoding.
ffmpeg -i [InputFile]-vcodec libx264 [OutputFile]

# Speed up the video.
ffmpeg -i [InputFile] -filter:v "setpts=0.01*PTS" [OutputFile]

Converting

# Convert into MKV with audio scaling.
ffmpeg -i [INPUT] -r 30 -vcodec libx264 -acodec aac -filter:a "volume=10.0" -ss 00:00:04 -s 1920x1080 [OUTPUT]

TIPS

# Speed up
ffmpeg -i [file] -filter:v "setpts=0.01*PTS" [output]

# Merge
ffmpeg -f concat -i [listFile] -c copy [output]

# Split
ffmpeg -i [file] -ss 00:00:10 -to 00:00:20 -async 1 [output]