ViCuTo can only be used from the command-line at the moment. A GUI is planned for the future release series 0.3.x. Call
:::bash
vicuto-cli --help
to view the help.
vicuto-cli can either print some information about media files or cut video files. The input files will be cut according to the specified cuts and appended to each other if there is more than one input file. Use the -c/--cut option to specify a cut with start and stop timecodes given in seconds. Each cut option will be applied to the next input file that appears on the command line. All specified cuts will be appended into a single file in the order that they appear on the command line. An input file is given using the -i/--input option. Choose the location for the new file with -o/--output. The container is chosen via the file ending (avi, mkv, mka, mp4). In summary you can cut a single file like this:
:::bash
vicuto-cli -c 12.36:242.04 -c 3600:3700.64 -i file.avi -o result.avi
If you have more than one input file and both files have the same number of audio and video streams use:
:::bash
vicuto-cli -c 12.36:242.04 -i file1.avi -c 3600:3700.64 -i file2.avi -o result.avi
If no cuts are specified for an input file it is assumed that it should be appended as a whole, i.e. you can append two files with
:::bash
vicuto-cli -i file1.avi -i file2.avi -o result
If you want to append another cut from the same file at some later point you have to give that file as another argument again:
:::bash
vicuto-cli -c 12.36:242.04 -i file1.avi -c 3600:3700.64 -i file2.avi\
-c 480:560 -i file1.avi -o result.avi
In the examples above ViCuTo will try to determine automatically how to append the tracks of the different files. This works reliably only when each file contains only one video and one audio track. If the files contain e.g. several audio tracks for different languages the languages might get mixed up. In such cases you should explicitly choose which track to append to which. For this purpose you can select single tracks of a file using the stream-ids of the tracks as in file1.avi:stream-id. To get the stream-ids use the --info option. The specified track can be appended to a specific track in the resulting file by passing along a destination id as in dest-id:file1.avi:stream-id. dest-id can be any string that does not contain any colons. At the first occurence of a new dest-id a new track will be created. Every time that dest-id is used again the cuts will be appended to that track. This way any track constellation can be created:
:::bash
vicuto-cli -c 12.36:242.04 -i v:file1.avi:001 -c 3600:3700.64 -i v:file2.avi:001\
-c 12.36:242.04 -i a1:file1.avi:002 -c 3600:3700.64 -i a1:file2.avi:003\
-c 12.36:242.04 -i a2:file1.avi:003 -c 3600:3700.64 -i a2:file2.avi:002\
-o result.avi
Since a new track will be created for each new dest-id you can add an additional audio track by giving a new dest-id after specifying the cuts for a file with only one video and audio track:
:::bash
vicuto-cli -c 12.36:242.04 -c 3600:3700.64 -i file.avi\
-c 12.36:242.04 -c 3600:3700.64 -i a2:audio.mka -o result.avi
Remember that each new dest-id starts a new track at the start of the output file. If you have an additional audio track for the second input file but not for the first you need to specify some audio for the first file, e.g. a copy of the first audio track:
:::bash
vicuto-cli -c 12.36:242.04 -i file1.avi -c 3600:3700.64 -i file2.avi\
-c 12.36:242.04 -i a2:file1.avi:002 -c 3600:3700.64 -i a2:audio.mka -o result.avi
ViCuTo will try to convert the video/audio formats in a way so that the least amount of reencoding is required. This will fail with some negotiation failure if you are using a codec that is not working with ViCuTo, yet. Right now only raw video plus some codecs that could be implemented without codec specific code are working. ViCuTo will also try to reencode only groups of pictures at the boundaries of the cuts if the streams are encoded.
When the --info option is used, information like number of streams, their format, and their stream-ids will be printed. Use these stream-ids to select a single track with -i/--input. No cutting will be performed if an --info option is present on the command line, even if -i and -o options are given. The following example will replace the audio track of a video file with some other audio while cutting both video and audio. The first command gives the required stream-id to select the video stream.
:::bash
vicuto-cli --info file1.avi
ViCuTo v0.1.0 using GStreamer v1.4.5
http://sourceforge.net/projects/vicuto/
Empty container list.
Caps: (NULL)
Streams: {
Stream-Id: 002:
Type: Audio
Caps: audio/mpeg, mpegversion=(int)1, mpegaudioversion=(int)1, layer=(int)3, rate=(int)48000, channels=(int)2, parsed=(boolean)true
Tags: taglist, encoder=(string)Lavf54.25.104, container-format=(string)AVI, audio-codec=(string)"MPEG-1\ Layer\ 3\ \(MP3\)", nominal-bitrate=(uint)192000, has-crc=(boolean)false, channel-mode=(string)joint-stereo;
Duration: 572640000000,
Stream-Id: 001:
Type: Video
Caps: video/x-h264, variant=(string)itu, framerate=(fraction)25/1, width=(int)720, height=(int)576, pixel-aspect-ratio=(fraction)64/45
Tags: taglist, encoder=(string)Lavf54.25.104, container-format=(string)AVI, video-codec=(string)"ITU\ H.264";
Duration: 572640000000
}
vicuto-cli -c 12:600 v:file1.avi:001 -c 12:600 a:audio-only-file.mka -o result.avi