Snippets

Change container

ffmpeg \
-i input.avi \
-y output.mkv

Record video device

List formats

ffmpeg \
-f v4l2 -list_formats all \
-i /dev/video0

Acquire fastly

ffmpeg \
-f v4l2 -use_wallclock_as_timestamps true \
-video_size 1920x1080 -framerate 60 \
-input_format bgr24 \
-i /dev/video0 \
-vf vflip \
-codec:v libx264 -preset ultrafast -qp 0 \
-y ultrafast.mkv

Windows desktop:

-f 'gdigrab' -i 'desktop'

Cut and shrink

ffmpeg -i ultrafast.mkv \
-ss 00:00:01.000 -to 00:00:02.000 \
-codec:v libx264 -preset veryslow -qp 0 \
-y uf.mkv

Compress for web

ffmpeg -i uf.mkv \
-codec:v libx264 -preset veryslow -qp 23 \
-movflags +faststart -pix_fmt yuv420p \
-y uf.23.mp4
ffmpeg -i uf.mkv \
-codec:v libx265 -preset veryslow -qp 28 \
-movflags +faststart -pix_fmt yuv420p \
-y uf.28.mp4

Cut file

ffmpeg \
-i input.mkv \
-ss 00:00:01.000 \
-to 00:00:02.000 \
-codec copy \
-y output.mkv

Closest I frames

ffmpeg \
-ss 00:00:01.000 \
-i input.mkv \
-to 00:00:02.000 \
-codec copy \
-y output.mkv

Filter

  • comma separated

Crop

-filter:v "crop=1280:720:0:0"

Speed

-r 120 \
-filter:v "setpts=0.5*PTS"
-filter:a "atempo=2.0"