Editing Video files using ffmpeg

In linux (Ububtu), ffmpeg is a very convenient tool for manipulating video files. For example, it is possible to use ffmpeg to extract audio tracks or video streams form a file, and combine them together, using only few lines of code. This approach is fast and reliable.If you haven’t ffmpeg installed in your system, simply type:

sudo apt install ffmpeg

In the following example, we will manipulate and combine two MP4 files. Specifically, the goals are:

  1. Extract audio from MP4 file #1
  2. Remove audio from MP4 file #2
  3. Combine video #2 with audio #1

These operations are performed as follows:

ffmpeg -i file_001.mp4 -vn -c:a copy audio_track.m4a

ffmpeg -i file_002.mp4 -c copy -an video_stream.mp4

ffmpeg -i video_stream.mp4 -i audio_track.m4a -codec copy -shortest newVideo.mp4

The last line of code simply combines together the two files, corresponding to the audio and the video. The original codec of the input files is used, so there is no re-encoding and the operation is performed in no time. the -shortest option instructs ffmpeg to trim the end of the audio track or video stream so that audio and video have the same final length.

If you want to trim the resulting file, you can use ffmpeg once again and specify the -ss (start time) and the -t (duration) parameters. If the start is the beginning of the file, simply omit the -ss parameter.

ffmpeg -i newVideo.mp4 -t 00:10:28.000 -c copy trimVideo.mp4

ffmpeg -i newVideo.mp4 -ss 00:02:40.000 -t 00:00:10.500 -c copy excerptVideo.mp4


About Author

Postdoc Research Fellow at Northwestern University (Chicago)

Leave a Comment

Your email address will not be published. Required fields are marked *