Man Linux: Main Page and Category List


       lavpipe - creates raw YUV streams from pipe list scripts


       lavpipe [-o num] [-n num] pipe-list


       lavpipe  reads  a  script  file called ’pipe list’ that is of a similar
       structure as the edit lists that can be fed  into  lav2yuv.   For  info
       about the pipe list format see below.

       The  pipe  list  defines  several  video  sources  and filters that are
       combined by lavpipe to produce a single output  YUV  stream  on  stdout
       (which for example can be compressed and stored to disk via mpeg2enc(1)
       or yuv2lav(1)).


       The command line options are used to output  a  specific  part  of  the
       resulting  video  stream.   That  means  you  can tell lavpipe how many
       frames to skip and how many frames to deliver from that point on.

       -o num This is the frame offset of the  output  video.  The  first  num
              frames  of the resulting video simply are neither calculated nor
              written to stdout. This value defaults to 0.

       -n num This is the frame count. If the input files or  streams  defined
              in  the  pipe list script are long enough, the output will be of
              exactly num frames length. A value of 0 means  that  all  frames
              until  the  last one as defined in the pipe list will be written
              out, as long as there’s some input (0 is the default).

              This is name of the pipe list file that lavpipe will  ’execute’.
              For information about this file’s format see below.

       -?     Display a synopsis of the command syntax.


       lavpipe -o 100 -n 25 film.pli
              would  calculate  and  output  to  stdout  frames  100 to 124 as
              defined in film.pli (in PAL this would be the 5th second of  the

       lavpipe input.pli | yuv2lav -q80 output.avi
              would  save the movie assembled by lavpipe as a single AVI file.


       In this section the format of  lavpipe’s  input  files  the  pipe  list
       scripts  is  explained.  If  you  need some examples or a more detailed
       tutorial,  please  read  the  mjpegtools(1)  manpage’s  section   about
       CREATING  MOVIE TRANSITIONS. and the file README.lavpipe that should be
       included in the distribution.  Also feel free to  contact  us  via  the
       mailing list (see below).

       A  pipe list contains of two parts: the YUV source list and after this,
       as many sequence descriptions as wanted.  It  always  begins  with  the
       following two lines:

       LAV Pipe List
              This  is the first line in every pipe list script. It is used as
              a simple test if lavpipe really was given a pipe list script and
              not your PhD thesis as input.

              This is the second line in every pipe list and can be either PAL
              or NTSC, depending on what  video  standard  you  use.  I  don’t
              remember if this is used at the moment.

       Now follows the source list:

       num    This is the number of input commands. lavpipe will read the next
              num lines and interpret them as input stream commands.

       command (num times)
              This is a valid command line with two variables $o and  $n  that
              will be replaced by lavpipe with the offset and number of frames
              that the program has to output. Example:
              lav2yuv -o $o -f $n input.avi

       Thus, an example source list could look like this:
       lav2yuv -o $o -f $n scene1.avi
       lav2yuv -o $o -f $n scene2.avi

       after this you can append as many sequence descriptions as needed. Each
       of them is built up as follows:

       num    The number of frames that this sequence will last.

       num    The  number  of inputs that will be used in this sequence.  This
              number must of course be less than or equal  to  the  number  of
              inputs that are defined above.

       idx [ofs] (num times)
              These  are  the  indices  to the sources that are defined at the
              beginning of the file (first source is 0) with an optional frame
              offset  (i.e.  sequence  starts  with  frame  number ofs of this
              input.) - this value defaults to 0. Example:
              0 150

              This is a valid command line to a YUV filter tool that reads num
              input  streams  and  writes  one  output  stream,  combining its
              inputs. Optionally, the filter tool can be given the two $o  and
              $n  variables  that will be replaced by lavpipe as in the source
              commands (see above). For further info  read  README.lavpipe  or
              the  documentation  for  the  filter programs (if available). An
              example filter could look like this:
              transist.flt -o 0 -O 255 -s $o -n $n -d 50
              And if the sequence only has one input  that  simply  should  be
              copied  to  the  output, you can use a dash instead of a command

       And here’s an example for  a  complete  pipe  list  that  implements  a
       transistion from scene1.avi to scene2.avi


       LAV Pipe List
       lav2yuv -o $o -f $n scene1.avi
       lav2yuv -o $o -f $n scene2.avi
       50            # first sequence: 50 frames
       1             #   contains one input:
       0 0           #     scene1.avi, offset 0
       -             #   simple output
       25            # second sequence: 25 frames
       2             #   contains two inputs:
       0 50          #     scene1.avi, offset 50
       1             #     scene2.avi, offset 0
       transist.flt -o 0 -O 255 -s $o -n $n -d 50 # transistion
       50            # third sequence: 50 frames
       1             #   contains one input:
       1 25          #     scene2.avi, offset 25
       -             #   simple output


       I’m sure there are enough of them. lavpipe often accepts malformed pipe
       lists and then writes out a video that was all but intended  -  without

       The mention of $n above is wrong. At one time there were two parameters
       but now a program is allowed to produce as many frames as it wants. THe
       author of the program hard coded, for reasons unknown, $n to be 0.


       There  are  also some serious limitations in the system, such as frame-
       by-frame processing. But as the  goal  when  writing  lavpipe  was  the
       simplicity  of  the pipeline, other tools will have to be written to do
       more interesting tasks.
       But I want to note that it is very well possible to write a  pipe  list
       that  combines  several  files, and then use that pipe list as an input
       for another pipe list by simply using the lavpipe command in the source
       list  (see above) - this can be already used to do some nice things, if
       you have some nice filters.

       Comments are NOT allowed in pipelist files. The comments (text after #)
       above are for illustration only.


       This man page was written by Philipp Zabel.
       If  you  have  questions, remarks, problems or you just want to contact
       the developers, the main mailing list for the MJPEG-tools is:

       For more info, see our website at


       lav2yuv(1),    lavplay(1),    lavrec(1),    mpeg2enc(1),    yuv2lav(1),