[[.|[up]]]
====== ffmpeg ======
===== basic usage =====
Use output file as last argument.
ffmpeg output.mp4
File format (and its defaults) are derived from file ending.
Use -i to specify input files.
ffmpeg -i film.mp4 -i subtitles.srt
Several input files are possible.
Use -map to select streams.
ffmpeg -i film.mp4 -i subtitles.srt -map 0:0 -map 0:2 -map 1:0
i:j means take stream with index j in file with index i. File indices are given by order of -i uses in the command line.
Specify output codecs and options.
-c:v copy
-c:v mpeg4 -b:v 8000k
-c:v libx264 -crf 17 (lower numbers = higher quality)
-c:a copy
-c:a libmp3lame -b:a 320k
-c:a libfdk_aac -b:a 384k
-c:a aac -b:a 384k
-c:s mov_text
====== useful options ======
===== cutting off borders =====
centred:
-vf crop=in_w-20:in_h-100
positioned:
-vf crop=in_w-20:in_h-100:20:100
means cut off 10px off top, 10px off bottom, 50px off left, 50px off right.
===== starting and ending at a specific position =====
-ss 00:03:40 -t 00:01:12
or
-ss 220 -t 72
numbers in seconds (float)
===== concatenate same-codec files =====
Create file containing file names, e.g.:
file 'file1.mp4'
file 'file2.mp4'
Then:
ffmpeg -f concat -safe 0 -i .files -c copy output.mp4
===== extract d frames per second =====
ffmpeg -i input.mp4 -q:v 2 -r d output-%03d.png
Prefer png for higher quality (does not need -q:v).
To extract only key frames:
ffmpeg -skip_frame nokey -i input.mp4 -q:v 2 -r d output-%03d.png
===== remove metadata =====
-map_metadata -1
===== dump metadata =====
ffmpeg -i input.mp3 -f ffmetadata metadata.txt