---
name: "avisplit"
section: "1"
platform: "linux"
package: "transcode"
version: "3:1.1.7-9+b4"
release: "Debian 8 (Jessie)"
platforms: ["linux"]
url: "https://new.carta.tech/avisplit"
---

# avisplit(1)

split AVI-files into chunks of a maximum size

## NAME

avisplit - split AVI-files into chunks of a maximum size

## SYNOPSIS

**avisplit** \[ **-i** *file* **-o** *base* \[ **-s** *size* \] \[ **-H** *num* \] \[ **-t** *s1-s2\[,s3-s4,..\]* **-c** **-m** **-b** *num* **-f** *commentfile* \] \] \[ **-v** \]

## COPYRIGHT

**avisplit** is Copyright (C) by Thomas Oestreich.

## DESCRIPTION

**avisplit** splits a single AVI-file into chunks of size *size*.\
 Each of the created chunks will be an independent file, i.e. it can be played without needing any other of the chunk.

## OPTIONS

- **-i** *file*

  Specify the filename of the file to split into chunks.

- **-o** *base*

  Specify the base of the output filename(s) **avisplit** will then split to **base-%04d.avi**

- **-s** *size*

  Use this option to specify the maximum size (in units of MB) of the chunks **avisplit** should create. *0* means dechunk, create as many files as possible.

- **-H** *num*

  Create only the first *num* chunks then exit.

- **-t** *s1-s2\[,s3-s4,..\]*

  Split the input file based on time/framecode (hh:mm:ss.ms)

- **-c**

  Together with **-t**. Merge all segments into one AVI-File again instead generating seperate files.

- **-m**

  Together with **-t**. Force split at upper bondary instead of lower border.

- **-b** *num*

  Specify if avisplit should write an VBR mp3 header into the AVI file. Default is 1 because it does not hurt. *num* is either 1 or 0.

- **-f** *commentfile*

  Read AVI tombstone data for header comments from *commentfile*. See /docs/avi\_comments.txt for a sample.

- **-v**

  Print only version information and exit.

## EXAMPLES

The command

**avisplit -s 700 -i my\_file.avi**

will split the file *my\_file.avi* into chunks which's maximum size will not exceed 700 MB, i.e. they will fit onto a CD, each.  The created chunks will be named my\_file.avi-0000, my\_file.avi-0001, etc.

**avisplit -i my\_file.avi -c -o out.avi -t 00:10:00-00:11:00,00:13:00-00:14:00**

will grab Minutes 10 to 11 and 13 to 14 from my\_file.avi and merge it into out.avi

## BAD SYNCH

When you split a file with **avisplit** and the A/V sync for the first file is OK but the sync on all successive files is bad then have a look at the output of [tcprobe(1)](/tcprobe/1.md) (shortend).

 \| V: 25.000 fps, codec=dvsd, frames=250, width=720, height=576\
\
  \| A: 48000 Hz, format=0x01, bits=16, channels=2, bitrate=1536 kbps,\
\
  \|    *10* chunks, 1920000 bytes\

You'll see the AVI file has only 10 Audio chunks but 250 video chunks. That means one audio chunk spans several video frames. avisplit can not cut a chunk in half, it only handles complete chunks. If you do, say, avisplit -s 20, it is possible that the first file will have 6 audio chunks and the second one only 4 meaning there is too much audio in the first AVI file.

The solution is to remux the AVI file with

**transcode -i in.avi -P1 -N 0x1 -y raw -o out.avi**

(of course -N 0x1 is not correct for all AVI files). Now look at tcprobe again

 \| V: 25.000 fps, codec=dvsd, frames=250, width=720, height=576\
\
  \| A: 48000 Hz, format=0x01, bits=16, channels=2, bitrate=1536 kbps,\
\
  \|   *250* chunks, 1920000 bytes\

The data in this file is *exactly* the same (its bit-identical) as it was in in.avi; the AVI file was just written in a different way, we do now have 250 audio chunks which makes splitting much easier and more accurate for avisplit.

## AUTHORS

**avisplit** was written by Thomas Oestreich\
 \<ostreich@theorie.physik.uni-goettingen.de\> with contributions from many others.  See AUTHORS for details.

## SEE ALSO

[**aviindex**(1)](/aviindex/1.md), [**avifix**(1)](/avifix/1.md), [**avimerge**(1)](/avimerge/1.md), [**tccat**(1)](/tccat/1.md), [**tcdecode**(1)](/tcdecode/1.md), [**tcdemux**(1)](/tcdemux/1.md), [**tcextract**(1)](/tcextract/1.md), [**tcprobe**(1)](/tcprobe/1.md), [**tcscan**(1)](/tcscan/1.md), [**transcode**(1)](/transcode/1.md)
