FFMPEG2THEORA(1)

๐Ÿ“ฆ version 0.30, in ubuntu jammy

๐ŸŒธ FFMPEG2THEORA ๐ŸŒธ

okay bestie, welcome to the ffmpeg2theora manual page ๐Ÿ’– it's a General Commands Manual entry, and it's genuinely one of the most useful little converters out here. no cap.


โœจ NAME โœจ

ffmpeg2theora โ€” a command-line converter that makes Ogg Theora files and Ogg Vorbis files ๐ŸŽ€


โœจ SYNOPSIS โœจ

ffmpeg2theora [options] inputfile

โœจ DESCRIPTION โœจ

this page is a quick lil rundown of the ffmpeg2theora command, fr fr.

ffmpeg2theora takes any media file that ffmpeg can decode and turns it into Ogg Theora for the video part and Ogg Vorbis for the audio part. that's the whole vibe ๐Ÿ’…


โœจ OPTIONS โœจ

if you wanna read from standard input, just hand it - as the input filename. iconic.

these programs follow the usual GNU command line syntax, with long options starting with two dashes (-). a summary of options is included below ๐Ÿซถ

๐Ÿ’– General output options ๐Ÿ’–

  • -o, --output โ€” pick your output filename. if you don't give one, the output just goes to inputfile.ogv. and if you wanna dump it to standard output, say /dev/stdout as the output file โœจ
  • --no-skeleton โ€” turns off Ogg Skeleton metadata output. bye bye skeleton ๐Ÿ’€
  • --seek-index โ€” turns on the keyframe index inside the skeleton track ๐Ÿ‘‘
  • -s, --starttime โ€” start encoding at this time (in seconds) โฐ
  • -e, --endtime โ€” stop encoding at this time (in seconds) ๐Ÿ›‘
  • -p, --preset โ€” encode the file with a v2v preset. right now there's preview, pro and videobin. run ffmpeg2theora -p info for more info ๐Ÿงš

๐Ÿ’– Video output options ๐Ÿ’–

  • -v, --videoquality โ€” [0 to 10] sets the encoding quality for video (default: 6). higher values = better quality, periodt ๐ŸŒˆ
  • -V, --videobitrate โ€” sets the encoding bitrate for video (in kb/s) ๐Ÿ“ผ
  • --soft-target โ€” uses a large reservoir and treats the rate as a soft target. rate control is less strict, but the resulting quality is usually higher/smoother overall. soft target also lets you optionally set -v to specify a minimum allowed quality ๐Ÿ“
  • --two-pass โ€” compresses the input using two-pass rate control. this option needs the input to the to the encoder to be seekable, and it runs both passes automatically ๐Ÿ”
  • --first-pass <filename> โ€” does the first pass of a two-pass rate controlled encoding, saving the pass data to <filename> for a later second pass ๐Ÿ’พ
  • --second-pass <filename> โ€” does the 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 for this to work properly โš ๏ธ
  • --optimize โ€” optimizes the output Theora video by using a full search for motion vectors instead of a hierarchical one. this can reduce video bitrate by about 5%, but it's slower, so it's disabled by default ๐Ÿข
  • --speedlevel โ€” encoding gets faster with higher values, and the cost is quality and bandwidth (default 1). the available values depend on the version of libtheora, so check ffmpeg2theora --help for the supported values ๐Ÿš€
  • -x, --width โ€” scale to the given width (in pixels) ๐Ÿ“
  • -y, --height โ€” scale to the given height (in pixels) ๐Ÿ“
  • --aspect โ€” define the frame aspect ratio (e.g. 4:3, 16:9) ๐Ÿ–ผ๏ธ
  • --pixel-aspect โ€” define the pixel aspect ratio (e.g. 1:1, 4:3) ๐Ÿ”
  • -F, --framerate โ€” output framerate, e.g 25:2 or 16 ๐ŸŽž๏ธ
  • --croptop, --cropbottom, --cropleft, --cropright โ€” crop the input by the given pixels before resizing โœ‚๏ธ
  • -K, --keyint โ€” [8 to 2147483647] sets the keyframe interval (default: 64) ๐Ÿ”‘
  • -d, --buf-delay โ€” buffer delay (in frames). longer delays allow smoother rate adaptation and give better overall quality, but they 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 the input is bigger than the provided parameter ๐Ÿ™…

๐Ÿ’– 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 ๐Ÿ•ถ๏ธ
  • -P, --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] sets the encoding quality for audio (default: 1). higher values = better quality ๐ŸŽง
  • -A, --audiobitrate โ€” [32 to 500] sets the encoding bitrate for audio (in kb/s) ๐Ÿ”Š
  • -c, --channels โ€” set the number of output channels ๐ŸŽš๏ธ
  • -H, --samplerate โ€” set the output samplerate (in Hz) ๐Ÿ“ป

๐Ÿ’– Input options ๐Ÿ’–

  • --noaudio โ€” disable audio from the input ๐Ÿคซ
  • --novideo โ€” disable video from the input ๐Ÿ™ˆ
  • --deinterlace โ€” force deinterlace. otherwise, only material marked as interlaced will be deinterlaced ๐Ÿชฎ
  • --no-deinterlace โ€” force deinterlace off ๐Ÿšซ
  • --vhook โ€” you can use ffmpeg's vhook system, example:
ffmpeg2theora --vhook '/path/watermark.so -f wm.gif' input.dv
  • -f, --format โ€” specify the input format ๐Ÿ“ฅ
  • --inputfps โ€” 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 audio stream ๐Ÿ“น
  • --sync โ€” use A/V sync from the input container. since this does not work with all input formats, you have to manually enable it if you have issues with A/V sync ๐Ÿงฉ

๐Ÿ’– Subtitles options ๐Ÿ’–

  • --subtitles โ€” encode subtitles from the given file into a multiplexed Kate stream. the input file should be in SubRip (.srt) format, encoded in UTF-8, unless the --subtitles-encoding option is also given ๐Ÿ“
  • --subtitles-encoding encoding โ€” assumes the corresponding subtitles file is encoded in the given encoding. if ffmpeg2theora was built with iconv support, all encodings supported by iconv may be used. otherwise, UTF-8 and ISO-8859-1 (aka latin1) are supported. the default is UTF-8 ๐ŸŒ
  • --subtitles-language language โ€” sets the language of the corresponding subtitles stream. this gets set in the corresponding Kate stream so a video player may make it available to the user for language selection. language is an ISO 639-1 or RFC 3066 ASCII string and is limited to 15 characters ๐Ÿ—ฃ๏ธ
  • --subtitles-category category โ€” sets the category of the corresponding subtitles stream. this gets set in the corresponding Kate stream so a video player may make it available to the user for selection. the default category is subtitles. suggested other categories may include transcript, commentary, lyrics, etc. category is an ASCII string and is limited to 15 characters ๐Ÿท๏ธ
  • --subtitles-ignore-non-utf8 โ€” when reading a UTF-8 subtitles text file, any invalid UTF-8 sequence will be ignored. this may be useful if there are stray sequences in an otherwise UTF-8 file. note that, since those invalid sequences will be removed from the output, this option is not a substitute for converting a non UTF-8 file to UTF-8 โš ๏ธ
  • --nosubtitles โ€” disables subtitles from the input. note that subtitles explicitly loaded from external files will still be used ๐Ÿšซ
  • --subtitle-types โ€” selects which subtitle types to include from the input file. allowed types are: none, all, text, spu (spu being the image based subtitles found on DVD). by default, only text based subtitles will be included. note that subtitles explicitly loaded from external files will still be used ๐Ÿ‘€

๐Ÿ’– 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 the input ๐Ÿšซ
  • --no-oshash โ€” do not include oshash of the source file (SOURCE_OSHASH) ๐Ÿ”’

๐Ÿ’– Keyframe indexing options ๐Ÿ’–

  • --index-interval <n> โ€” set the minimum distance between indexed keyframes to <n> ms (default: 2000) โฑ๏ธ
  • --theora-index-reserve <n> โ€” reserve <n> bytes for the theora keyframe index ๐Ÿ’พ
  • --vorbis-index-reserve <n> โ€” reserve <n> bytes for the vorbis keyframe index ๐Ÿ’พ
  • --kate-index-reserve <n> โ€” reserve <n> bytes for the kate keyframe index ๐Ÿ’พ

๐Ÿ’– Other options ๐Ÿ’–

  • --nice n โ€” set niceness to n ๐Ÿ˜‡
  • -h, --help โ€” output a help message ๐Ÿ™‹
  • --info โ€” output json info about the input file; use -o to save json to file ๐Ÿงพ
  • --frontend โ€” print status information in json, one json dict per line ๐Ÿ–ฅ๏ธ

โœจ EXAMPLES โœจ

Encode Videos:

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

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 -0

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

โœจ AUTHOR โœจ

ffmpeg2theora was written by jan gerber <j@v2v.cc> ๐Ÿ’œ

this manual page was written by Hubert Chan <hubert@uhoreg.ca>, for the Debian project (but may be used by others) ๐Ÿซถ


okay that's the whole page bestie, you're officially a ffmpeg2theora girlie now ๐Ÿ‘‘ this version is dated May 14, 2010, and yeah, it's the FFMPEG2THEORA(1) page from the General Commands Manual โ€” go make some iconic ogv files, mwah ๐Ÿ’‹๐ŸŽ€โœจ

๐Ÿ“ฆ where this page comes from