[[.|[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