Ffmpeg2theora

From Ed's Mediawiki
Revision as of 23:24, 21 September 2011 by Eburdick (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
ffmpeg2theora 0.28 - Xiph.Org libtheora 1.2.0alpha 20100924 (Ptalarbvorm)

  Usage: ffmpeg2theora [options] input

General output options:
  -o, --output           alternative output filename
      --no-skeleton      disables ogg skeleton metadata output
      --skeleton-3       outputs Skeleton Version 3, without keyframe indexes
  -s, --starttime        start encoding at this time (in sec.)
  -e, --endtime          end encoding at this time (in sec.)
  -p, --preset           encode file with preset.
                          Right now there is preview, pro and videobin. Run
                          'ffmpeg2theora -p info' for more informations

Video output options:
  -v, --videoquality     [0 to 10] encoding quality for video (default: 6)
                                   use higher values for better quality
  -V, --videobitrate     encoding bitrate for video (kb/s)
      --soft-target      Use a large reservoir and treat the rate
                         as a soft target; rate control is less
                         strict but resulting quality is usually
                         higher/smoother overall. Soft target also
                         allows an optional -v setting to specify
                         a minimum allowed quality.

      --two-pass         Compress input using two-pass rate control
                         This option requires that the input to the
                         to the encoder is seekable and performs
                         both passes automatically.

      --first-pass <filename> Perform first-pass of a two-pass rate
                         controlled encoding, saving pass data to
                         <filename> for a later second pass

      --second-pass <filename> Perform second-pass of a two-pass rate
                         controlled encoding, reading first-pass
                         data from <filename>.  The first pass
                         data must come from a first encoding pass
                         using identical input video to work
                         properly.

      --optimize         optimize video output filesize (slower)
                         (same as speedlevel 0)
      --speedlevel       encoding is faster with higher values
                         the cost is quality and bandwidth (default 1)
                         available values depend on the version of libtheora
                         your version supports speedlevels 0 to -1
  -x, --width            scale to given width (in pixels)
  -y, --height           scale to given height (in pixels)
      --max_size         scale output frame to be within box of
                         given size, height optional (%d[x%d], i.e. 640x480)
      --aspect           define frame aspect ratio: i.e. 4:3 or 16:9
      --pixel-aspect     define pixel aspect ratio: i.e. 1:1 or 4:3,
                         overwrites frame aspect ratio
  -F, --framerate        output framerate e.g 25:2 or 16
      --croptop, --cropbottom, --cropleft, --cropright
                         crop input by given pixels before resizing
  -K, --keyint           [1 to 2147483647] keyframe interval (default: 64)
  -d --buf-delay <n>     Buffer delay (in frames). Longer delays
                         allow smoother rate adaptation and provide
                         better overall quality, but require more
                         client side buffering and add latency. The
                         default value is the keyframe interval for
                         one-pass encoding (or somewhat larger if
                         --soft-target is used) and infinite for
                         two-pass encoding. (only works in bitrate mode)
      --no-upscaling     only scale video or resample audio if input is
                         bigger than provided parameters
      --resize-method <method>    Use this method for rescaling the video
                         See --resize-method help for a list of available
                         resizing methods

Video transfer options:
  --pp                   Video Postprocessing, denoise, deblock, deinterlacer
                          use --pp help for a list of available filters.
  -C, --contrast         [0.1 to 10.0] contrast correction (default: 1.0)
                          Note: lower values make the video darker.
  -B, --brightness       [-1.0 to 1.0] brightness correction (default: 0.0)
                          Note: lower values make the video darker.
  -G, --gamma            [0.1 to 10.0] gamma correction (default: 1.0)
                          Note: lower values make the video darker.
  -Z, --saturation       [0.1 to 10.0] saturation correction (default: 1.0)
                          Note: lower values make the video grey.

Audio output options:
  -a, --audioquality     [-2 to 10] encoding quality for audio (default: 1)
                                    use higher values for better quality
  -A, --audiobitrate     [32 to 500] encoding bitrate for audio (kb/s)
  -c, --channels         set number of output channels
  -H, --samplerate       set output samplerate (in Hz)
      --noaudio          disable audio from input
      --novideo          disable video from input

Input options:
      --deinterlace      force deinterlace, otherwise only material
                          marked as interlaced will be deinterlaced
      --no-deinterlace   force deinterlace off
  -f, --format           specify input format
      --inputfps fps     override input fps
      --audiostream id   by default the first audio stream is selected,
                          use this to select another audio stream
      --videostream id   by default the first video stream is selected,
                          use this to select another video stream
      --nosync           do not use A/V sync from input container.
                         try this if you have issues with A/V sync
Subtitles options:
      --subtitles file                 use subtitles from the given file (SubRip (.srt) format)
      --subtitles-encoding encoding    set encoding of the subtitles file
             supported are utf-8, utf8, iso-8859-1, latin1
      --subtitles-language language    set subtitles language (de, en_GB, etc)
      --subtitles-category category    set subtitles category (default "subtitles")
      --subtitles-ignore-non-utf8      ignores any non UTF-8 sequence in UTF-8 text
      --nosubtitles                    disables subtitles from input
                                       (equivalent to --subtitles=none)
      --subtitle-types=[all,text,spu,none]   select what subtitle types to include from the
                                             input video (default text)

Metadata options:
      --artist           Name of artist (director)
      --title            Title
      --date             Date
      --location         Location
      --organization     Name of organization (studio)
      --copyright        Copyright
      --license          License
      --contact          Contact link
      --nometadata       disables metadata from input
      --no-oshash        do not include oshash of source file(SOURCE_OSHASH)

Keyframe indexing options:
      --index-interval <n>         set minimum distance between indexed keyframes
                                   to <n> ms (default: 2000)
      --theora-index-reserve <n>   reserve <n> bytes for theora keyframe index
      --vorbis-index-reserve <n>   reserve <n> bytes for vorbis keyframe index
      --kate-index-reserve <n>     reserve <n> bytes for kate keyframe index

Other options:
  -P, --pid fname        write the process' id to a file
  -h, --help             this message
      --info             output json info about input file, use -o to save json to file
      --frontend         print status information in json, one json dict per line


Examples:
  ffmpeg2theora videoclip.avi (will write output to videoclip.ogv)

  ffmpeg2theora videoclip.avi --subtitles subtitles.srt (same, with subtitles)

  cat something.dv | ffmpeg2theora -f dv -o output.ogv -

  Encode a series of images:
    ffmpeg2theora frame%06d.png -o output.ogv

  Live streaming from V4L Device:
    ffmpeg2theora --no-skeleton /dev/video0 -f video4linux \
                  --inputfps 15 -x 160 -y 128 -o - \
                  | oggfwd icast2server 8000 password /theora.ogv

     (you might have to use video4linux2 depending on your hardware)

  Live encoding from a DV camcorder (needs a fast machine):
    dvgrab - | ffmpeg2theora -f dv -x 352 -y 288 -o output.ogv -

  Live encoding and streaming to icecast server:
   dvgrab --format raw - \
    | ffmpeg2theora --no-skeleton -f dv -x 160 -y 128 -o /dev/stdout - \
    | oggfwd icast2server 8000 password /theora.ogv