I had to extract a small clip from a very long video and I wanted to do it from the command line (of course!).
To do that we will use
avconv (it is part of libav, an open source audio and video tools). It is a very fast audio and video converter that can be used to extract a clip from a video.
To install it in debian based distros:
$ sudo apt-get install libav-tools
In RedHat based distros there isn’t any source with a decent RPM package so the simplest way is build it from source.
In OS X there is a command called avconvert but its functionality is very limited. There is very good answer in Superuser about how to install libav/avconv in OS X.
Once you have
avconv in your system let’s say you would like to take a 50 second clip starting at 25 minutes and 30 seconds from a video called
original_video.mp4 then you would run the following command:
avconv -ss 00:25:30 -t 00:00:50 -i original_video.mp4 -codec copy video_clip.mp4
That would create a new video called
video_clip.mp4 which duration would be 50 seconds and the clip would be the content of the
original_video.mp4 from 00:25:30 to 00:26:20.
-ss seeks in the input file to position;
-t exists after
avconv has been running for duration seconds;
-i is the input filename;
-codec selects a decoder but the value copy is a special value to indicate that the stream is not to be reencoded.
As you can see in aconv manual it has a lot of capabilities.