FFmpeg is a powerful command-line tool for handling multimedia data. Whether you're trimming, splitting, or editing videos, FFmpeg provides an efficient way to achieve your goals. In this article, we’ll explore common FFmpeg recipes for video manipulation.
Installing FFmpeg
Before diving into the recipes, ensure you have FFmpeg installed on your system. Here’s how you can install it on Ubuntu and Windows:
On Ubuntu:
- Update the package list:
sudo apt update
- Install FFmpeg:
sudo apt install ffmpeg
- Verify the installation:
ffmpeg -version
On Windows:
- Download the FFmpeg executable from the official website.
- Extract the downloaded ZIP file to a directory (e.g.,
C:\ffmpeg
). - Add FFmpeg to your system PATH:
- Go to System Properties > Advanced > Environment Variables.
- Under System Variables, select
Path
and click Edit. - Add the path to the FFmpeg
bin
directory (e.g.,C:\ffmpeg\bin
).
- Verify the installation by opening a command prompt and running:
ffmpeg -version
Now that you have FFmpeg installed, let’s explore some essential recipes for video manipulation.
1. Removing the First 5 Minutes
To remove the first 5 minutes of a video:
ffmpeg -i input.mp4 -ss 00:05:00 -c copy output.mp4
-
-ss 00:05:00
: Skips the first 5 minutes. -
-c copy
: Copies the streams without re-encoding for speed.
2. Removing the Last 5 Minutes
To remove the last 5 minutes, you need to calculate the duration of the video and extract everything except the last 5 minutes:
ffmpeg -i input.mp4 -to $(($(ffmpeg -i input.mp4 2>&1 | grep Duration | awk '{print $2}' | tr -d , | cut -d: -f1)*3600 + $(ffmpeg -i input.mp4 2>&1 | grep Duration | awk '{print $2}' | tr -d , | cut -d: -f2)*60 + $(ffmpeg -i input.mp4 2>&1 | grep Duration | awk '{print $2}' | tr -d , | cut -d: -f3) - 300)) -c copy output.mp4
Here, 300
represents the last 5 minutes in seconds.
3. Copying the First 5 Minutes
To extract only the first 5 minutes of a video:
ffmpeg -i input.mp4 -t 00:05:00 -c copy output.mp4
-
-t 00:05:00
: Specifies the duration to copy.
4. Copying the Last 5 Minutes
To copy the last 5 minutes of a video, calculate the starting time:
ffmpeg -i input.mp4 -ss <start_time> -c copy output.mp4
Replace <start_time>
with the total duration minus 5 minutes. Use the following command to calculate the duration:
ffmpeg -i input.mp4
5. Removing a Section Between 5 Minutes and 8 Minutes
To remove a specific section of the video:
- Extract the part before 5 minutes:
ffmpeg -i input.mp4 -to 00:05:00 -c copy part1.mp4
- Extract the part after 8 minutes:
ffmpeg -i input.mp4 -ss 00:08:00 -c copy part2.mp4
- Concatenate the parts:
Create a text file (file_list.txt
) with the following content:
file 'part1.mp4'
file 'part2.mp4'
Run:
ffmpeg -f concat -safe 0 -i file_list.txt -c copy output.mp4
6. Copying Video Between 5 Minutes and 8 Minutes
To copy only a specific section:
ffmpeg -i input.mp4 -ss 00:05:00 -to 00:08:00 -c copy output.mp4
7. Splitting a Large Video into 20MB Chunks
To split a video into chunks of approximately 20MB:
ffmpeg -i input.mp4 -f segment -segment_size 20M -c copy output%03d.mp4
-
-segment_size 20M
: Specifies the maximum size of each segment.
8. Splitting a Large Video into 5-Minute Chunks
To split a video into 5-minute segments:
ffmpeg -i input.mp4 -f segment -segment_time 300 -c copy output%03d.mp4
-
-segment_time 300
: Specifies the duration of each segment in seconds (5 minutes = 300 seconds).
Final Thoughts
These FFmpeg recipes provide a foundation for common video editing tasks. By combining options and filters, you can customize these commands for more advanced use cases. Explore the FFmpeg documentation to dive deeper into its capabilities.
Happy editing!
Top comments (0)