lavpipe(1)


NAME

   lavpipe - creates raw YUV streams from pipe list scripts

SYNOPSIS

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

DESCRIPTION

   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)).

OPTIONS

   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).

   pipe-list
          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.

EXAMPLES

   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
          film).

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

USAGE

   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.

   NTSC|PAL
          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:
   2
   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

   command
          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
          line:
          -

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

   REMOVE THE COMMENTS AFTER The #

   LAV Pipe List
   PAL
   2
   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

BUGS

   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
   warning.

   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.

NOTES

   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.

AUTHOR

   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:
     mjpeg-users@lists.sourceforge.net

   For more info, see our website at
          http://mjpeg.sourceforge.net

SEE ALSO

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


More Linux Commands

manpages/XFreeFontSet.3.html
XFreeFontSet(3) - create and free an international text draw
The XCreateFontSet function creates a font set for the specified display. The font set is bound to the current locale when XCreateFontSet is called. The font se

manpages/Mail::SPF::Mod::Redirect.3pm.html
Mail::SPF::Mod::Redirect(3pm) - SPF record "redirect" modifi
An object of class Mail::SPF::Mod::Redirect represents an SPF record modifier of type redirect. Constructors The following constructors are provided: new(%optio

manpages/unlocked_stdio.3.html
unlocked_stdio(3) - nonlocking stdio functions (Man Page)...
Each of these functions has the same behavior as its counterpart without the _unlocked suffix, except that they do not use locking (they do not set locks themse

manpages/vfs_tsmsm.8.html
vfs_tsmsm(8) VFS module for handling offline files with Tivo
This VFS module is part of the samba(7) suite. The tsmsm VFS module is an extension for handling offline files with Tivoli Storage Manager Space Management. It

manpages/path_resolution.2.html
path_resolution(2) - how a pathname is resolved to a file...
Some UNIX/Linux system calls have as parameter one or more filenames. A filename (or pathname) is resolved as follows. Step 1: Start of the resolution process I

manpages/SDL_DisplayYUVOverlay.3.html
SDL_DisplayYUVOverlay(3) - Blit the overlay to the display
Blit the overlay to the surface specified when it was created. The SDL_Rect structure, dstrect, specifies the position and size of the destination. If the dstre

manpages/ldap_value_free_len.3.html
ldap_value_free_len(3) - LDAP attribute value handling routi
These routines are used to retrieve and manipulate attribute values from an LDAP entry as returned by ldap_first_entry(3) or ldap_next_entry(3). ldap_get_values

manpages/cg_merge.1.html
cg_merge(1) merges multiple Cachegrind output files into one
cg_merge sums together the outputs of multiple Cachegrind runs into a single output file. OPTIONS -o outfile Write the profile data to outfile rather than to st

manpages/xdr_char.3.html
xdr_char(3) - library routines for external data representat
These routines allow C programmers to describe arbitrary data structures in a machine-independent fashion. Data for remote procedure calls are transmitted using

manpages/clog10.3.html
clog10(3) - base-10 logarithm of a complex number (ManPage)
The call clog10(z) is equivalent to clog(z)/log(10). The other functions perform the same task for float and long double. Note that z close to zero will cause a

manpages/dconf-service.1.html
dconf-service(1) DBus service for writes to the dconf databa
The dconf-service program provides the ca.desrt.dconf name on the session or system bus. Users or administrators should never need to start the service, as it w

manpages/XSetErrorHandler.3.html
XSetErrorHandler(3) - default error handlers (Man Page).....
Xlib generally calls the programs supplied error handler whenever an error is received. It is not called on BadName errors from OpenFont, LookupColor, or AllocN





We can't live, work or learn in freedom unless the software we use is free.