FFMPEG commands to process Behavioral Videos

A collection of ffmpeg snippets to perform routine video processing tasks.


Convert to FIJI/ImageJ-friendly format (.avi + mpeg)

ffmpeg -i input.mpg -g 60 -vcodec msmpeg4v2 -f avi output.avi

Requires both ffmpeg and FIJI ffmpeg importer plugin


Speed-up / Slow-down movies with ffmpeg

ffmpeg -i input.mkv -r 16 -filter:v "setpts=0.25*PTS" output.mkv

Without dropping frames (if original fps was 4) - see source


Convert movies to web-ready format (html5 video tag)

ffmpeg -i shape.mov -vcodec h264 -strict -2 output.mp4


Crop video

ffmpeg -i in.mp4 -filter:v "crop=300:300:0:0" -c:a copy out.mp4 - see source


Scaling

ffmpeg -i input.jpg -vf scale=400:-1 output_400.png - see source


Clip (in time)

ffmpeg -ss 00:00:00.0 -i input.wmv -c copy -t 00:00:10.0 output.wmv

Example starts from beginning and it encodes only 10 seconds


Convert to MP4

ffmpeg -i input.avi -c:v mpeg4 -vtag xvid output.avi


Specify the bitrate (in MP4)

ffmpeg -i input.avi -b:v 100000 -c:v mpeg4 -vtag xvid output.avi


MP4 format + No Audio

ffmpeg -i input.avi -b:v 100000 -c:v mpeg4 -an -vtag xvid output.avi


Convert to sequence of frames + resize

ffmpeg -i input.avi -vf scale=256:144 %d_filename.png

Example rescales to 256 x 144 pixels


Scale + Crop to single frames

ffmpeg -i in.mp4 -filter:v "crop=300:300:0:0,scale=256:144" %d_filename.png


Overlay frame number on video

ffmpeg -i session_s.avi -vf "drawtext=fontfile=Arial.ttf: text='%{frame_num}': x=100: y=100: fontcolor=white: fontsize=52" -c:a copy session_2_frames.avi


Overlay frame number + Crop + Scale + Save to images + Convert to grayscale (8-bit)

ffmpeg -i cylinder_2.avi -filter:v "crop=560:500:0:0,scale=280:250, drawtext=fontfile=Arial.ttf: text='%{frame_num}': x=10: y=10: fontcolor=white: fontsize=22" -pix_fmt gray ../frames/cylinder_2/2_%4d.png


Extract movie from a split-screen movie

ffmpeg -i input_movie.mpg -filter:v "crop=iw*(5/10):ih*(5/10):iw:0" output_movie.mp4

cropping is done via : ffmpeg -i in.mp4 -filter:v "crop=out_w:out_h:x:y" out.mp4 where: