Cutting & Trimming
Cut by Time
1# Cut from 00:01:00 to 00:02:00 (1 minute duration)
2ffmpeg -i input.mp4 -ss 00:01:00 -to 00:02:00 -c copy output.mp4
3
4# Cut from 00:01:00 for 30 seconds
5ffmpeg -i input.mp4 -ss 00:01:00 -t 00:00:30 -c copy output.mp4
6
7# Fast seek (less accurate but faster)
8ffmpeg -ss 00:01:00 -i input.mp4 -t 00:00:30 -c copy output.mp4
Remove Beginning/End
1# Remove first 10 seconds
2ffmpeg -i input.mp4 -ss 00:00:10 -c copy output.mp4
3
4# Remove last 10 seconds (if duration is 60s)
5ffmpeg -i input.mp4 -t 00:00:50 -c copy output.mp4
Concatenation
1# Create file list
2echo "file 'part1.mp4'" > list.txt
3echo "file 'part2.mp4'" >> list.txt
4echo "file 'part3.mp4'" >> list.txt
5
6# Concatenate
7ffmpeg -f concat -safe 0 -i list.txt -c copy output.mp4
1ffmpeg -i part1.mp4 -i part2.mp4 -i part3.mp4 \
2 -filter_complex "[0:v][0:a][1:v][1:a][2:v][2:a]concat=n=3:v=1:a=1[v][a]" \
3 -map "[v]" -map "[a]" output.mp4
Speed Control
Speed Up
1# 2x speed (video and audio)
2ffmpeg -i input.mp4 -filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a]" \
3 -map "[v]" -map "[a]" output.mp4
4
5# 4x speed
6ffmpeg -i input.mp4 -filter_complex "[0:v]setpts=0.25*PTS[v];[0:a]atempo=2.0,atempo=2.0[a]" \
7 -map "[v]" -map "[a]" output.mp4
Slow Down
1# 0.5x speed (half speed)
2ffmpeg -i input.mp4 -filter_complex "[0:v]setpts=2.0*PTS[v];[0:a]atempo=0.5[a]" \
3 -map "[v]" -map "[a]" output.mp4
Rotation & Flipping
1# Rotate 90° clockwise
2ffmpeg -i input.mp4 -vf "transpose=1" output.mp4
3
4# Rotate 90° counter-clockwise
5ffmpeg -i input.mp4 -vf "transpose=2" output.mp4
6
7# Rotate 180°
8ffmpeg -i input.mp4 -vf "transpose=2,transpose=2" output.mp4
9
10# Flip horizontal
11ffmpeg -i input.mp4 -vf "hflip" output.mp4
12
13# Flip vertical
14ffmpeg -i input.mp4 -vf "vflip" output.mp4
Cropping
1# Crop to 1280x720 from top-left
2ffmpeg -i input.mp4 -vf "crop=1280:720:0:0" output.mp4
3
4# Crop center 1280x720
5ffmpeg -i input.mp4 -vf "crop=1280:720" output.mp4
6
7# Crop with offset (x=100, y=50)
8ffmpeg -i input.mp4 -vf "crop=1280:720:100:50" output.mp4
1# Extract audio only
2ffmpeg -i input.mp4 -vn -acodec copy audio.m4a
3
4# Extract video only (no audio)
5ffmpeg -i input.mp4 -an -vcodec copy video.mp4
6
7# Extract specific audio track
8ffmpeg -i input.mkv -map 0:a:1 -c copy audio_track2.aac
Add/Replace Audio
1# Replace audio
2ffmpeg -i video.mp4 -i audio.mp3 -c:v copy -c:a aac -map 0:v:0 -map 1:a:0 output.mp4
3
4# Add audio track (keep original)
5ffmpeg -i video.mp4 -i audio.mp3 -c copy -map 0 -map 1:a output.mkv
6
7# Remove audio
8ffmpeg -i input.mp4 -an -c:v copy output.mp4
Further Reading
Related Snippets