概要
**

一般的な構文は次のとおりです:

     ffmpeg [[infile options][-i INFILE]]... {[outfile options] OUTFILE}...

説明
**

ffmpeg はとても高速なビデオ およびオーディオコンバーターです。またライブのオーディオ/ビデオのソースを捕捉(grab)することもできます。また任意のサンプルレートから他の任意のサンプルレートへ変換することができ、そして高品質のポリフェーズフィルターで動的に映像をリサイズすることができます。

コマンドラインインターフェースは直観的になるよう設計されており、というのも ffmpeg は自動的に導くことのできるすべてのパラメーターを理解します。たいていの場合あなたが望む目標ビットレートを指定するだけで済みます。

一般的な規則として、オプションは次に並ぶ指定されたファイルに適用されます。したがって、順序は重要であり、コマンドラインに複数回同じオプションを与えることができます。それぞれ出てくるごとに次にくる入力または出力ファイルに適用されます。

  * 出力ファイルのビデオのビットレートを64kbit/sに設定するには:

          ffmpeg -i input.avi -b 64k output.avi

  * 出力ファイルのフレームレートを24fpsに強制するには:

          ffmpeg -i input.avi -r 24 output.avi

  * 入力ファイルのフレームレートを1fpsに強制し(raw フォーマットの場合のみ正しい)、出力ファイルのフレームレートを24fpsにするには:

          ffmpeg -r 1 -i input.m2v -r 24 output.avi

未加工の入力ファイルにはフォーマットオプションが必要になってくるでしょう。

デフォルトとしては、ffmpeg はできる限りロスレスに変換しようと試みます: 入力に指定されたものと同じ音声および映像のパラメーターを出力に使います。

オプション
*****

     [file avtools-common-opts.texi not included]

主なオプション
=======

-f FMT
     フォーマットを強制します。

-i FILENAME
     入力のファイル名

-y
     出力ファイルを上書きします。

-t DURATION
     コード変換/キャプチャーされるビデオシーケンスを秒単位で指定された持続時間に制限します。 hh:mm:ss[.xxx] という構文もサポートされています。

-fs LIMIT_SIZE
     ファイルサイズの上限を設定します。

-ss POSITION
     秒単位で与えられた時刻の位置を探します。 hh:mm:ss[.xxx] という構文もサポートされています。

-itsoffset OFFSET
     秒単位で入力時間のオフセットを設定します。 [-]hh:mm:ss[.xxx] という構文もサポートされています。このオプションはそれに続く全ての入力ファイルに影響します。オフセットは入力ファイルのタイムスタンプに加えられます。正のオフセットを指定するということは 'offset' 秒だけ対応するストリームが遅延させられることを意味します。

-timestamp TIME
     コンテナに記録するタイムスタンプを設定します。 TIME の構文は:

          now|([(YYYY-MM-DD|YYYYMMDD)[T|t| ]]((HH[:MM[:SS[.m...]]])|(HH[MM[SS[.m...]]]))[Z|z])

     その値が "now" なら、現在の時刻をとります。 'Z' または 'z' がついていなければ時刻はローカルタイムで、ついていれば UTC と解釈されます。 year-month-day 部分が指定されていなければ、現在の year-month-day をとります。

-metadata KEY=VALUE
     メタデータ key/value の組を設定します。

     例えば、出力ファイルにタイトルを設定するには:

          ffmpeg -i in.avi -metadata title="my title" out.flv

-v NUMBER
     ログの冗長さの水準を設定します。

-target TYPE
     目標のファイルの型("vcd"、"svcd"、"dvd"、"dv"、"dv50"、"pal-vcd"、 "ntsc-svcd"、等)を指定します。そのとき全てのフォーマットのオプション (ビットレート、コーデック、バッファサイズ)は自動的に設定されます。単に次のようにタイプできます:

          ffmpeg -i myfile.avi -target vcd /tmp/vcd.mpg

     ですが、標準のものと衝突しない限り追加のオプションを指定することができ、次のようになります:

          ffmpeg -i myfile.avi -target vcd -bf 2 /tmp/vcd.mpg

-dframes NUMBER
     録画録音されるデータフレームの数を設定します。

-scodec CODEC
     サブタイトルのコーデックを強制します('copy' ならストリームをコピーします)。

-newsubtitle
     現在の出力ストリームに新しいサブタイトルストリームを追加します。

-slang CODE
     現在のサブタイトルストリームに(3文字の)ISO 639 言語コードを設定します。

ビデオのオプション
=========

-vframes NUMBER
     録画するビデオフレームの数を設定します。

-r FPS
     フレームレート(Hz での値、分数または省略形)を設定します(既定値は25)。

-s SIZE
     フレームサイズを設定します。書式はwxh(avserver の既定値は160x128、ffmpeg の既定値は元と同じ)です。次の省略形も認識できます:

     sqcif
          128x96

     qcif
          176x144

     cif
          352x288

     4cif
          704x576

     16cif
          1408x1152

     qqvga
          160x120

     qvga
          320x240

     vga
          640x480

     svga
          800x600

     xga
          1024x768

     uxga
          1600x1200

     qxga
          2048x1536

     sxga
          1280x1024

     qsxga
          2560x2048

     hsxga
          5120x4096

     wvga
          852x480

     wxga
          1366x768

     wsxga
          1600x1024

     wuxga
          1920x1200

     woxga
          2560x1600

     wqsxga
          3200x2048

     wquxga
          3840x2400

     whsxga
          6400x4096

     whuxga
          7680x4800

     cga
          320x200

     ega
          640x350

     hd480
          852x480

     hd720
          1280x720

     hd1080
          1920x1080

-aspect ASPECT
     ASPECT によって映像画面アスペクト比を設定します。

     ASPECT は浮動小数点数の文字列、または NUM:DEN の形の文字列、ただし NUM および DEN はアスペクト比の分子および分母です。例えば、"4:3"、"16:9"、"1.3333"、および "1.7777" は適正な引数の値です。

-croptop SIZE

-cropbottom SIZE

-cropleft SIZE

-cropright SIZE
     これらの切り取りオプションは全て削除されました。代わりに -vf crop=width:height:x:y を使ってください。

-padtop SIZE

-padbottom SIZE

-padleft SIZE

-padright SIZE

-padcolor HEX COLOR
     pad オプションは全て削除されました。代わりに -vf pad=width:height:x:y:color を使ってください。

-vn
     映像の録画を無効にします。

-bt TOLERANCE
     ビデオのビットレート誤差許容量(bit/sで、既定値は4000k)を設定します。最小値として (target_bitrate/target_framerate) を持ちます。 1-パスモードでは、ビットレート誤差許容量はどのくらい目標平均ビットレート値から外れることを許すかということを指定します。これは最小/最大ビットレートには関係しません。過度に許容量を下げることは品質の点で不利な影響を及ぼします。

-maxrate BITRATE
     ビデオの最大ビットレートを(bit/sで)設定します。 -bufxize が設定されいてる必要があります。

-minrate BITRATE
     ビデオの最小ビットレートを(bit/sで)設定します。 CBR エンコードを設定する場合に最も有用です:

          ffmpeg -i myfile.avi -b 4000k -minrate 4000k -maxrate 4000k -bufsize 1835k out.m2v

     それ以外ではあまり使途がありません。

-bufsize SIZE
     video buffer verifier バッファサイズを(bitsで)設定します。

-vcodec CODEC
     ビデオのコーデックを CODEC に強制します。未加工のコーデックデータをありのままコピーするには copy という特別な値を使ってください。値を使ってください。

-sameq
     ソースと同じ量子化器を使います(暗に VBR になります)。

-pass N
     パス数(1または2)を選択します。2パスビデオエンコーディングをするのに使われます。映像の統計情報が最初のパスでログファイル(オプション -passlogfile も参照してください)に記録されます。そして2番目のパスでこのログファイルを使って正確に要求されたビットレートに映像が生成されます。パス1では、ちょうど音声を無効にし出力を null にすることもできます。 Windows や Unix での例:

          ffmpeg -i foo.mov -vcodec libxvid -pass 1 -an -f rawvideo -y NUL
          ffmpeg -i foo.mov -vcodec libxvid -pass 1 -an -f rawvideo -y /dev/null

-passlogfile PREFIX
     2パスのログファイル名の接頭辞を PREFIX に設定します。既定の名前の接頭辞は ``ffmpeg2pass'' です。完全なファイル名は PREFIX-N.log で、ただし N は出力ストリーム別の番号です。

-newvideo
     現在の出力ストリームに新しいビデオストリームを追加します。

-vlang CODE
     現在の映像ストリームの ISO 639 言語コード(3文字)を設定します。

-vf FILTER_GRAPH
     FILTER_GRAPH は入力映像に適用されるフィルターグラフの説明です。 (ソースとシンクを含んだ)利用可能な全てのフィルターを表示するには "-filters" オプションを使ってください。

高度なビデオのオプション
============

-pix_fmt FORMAT
     ピクセルフォーマットを設定します。全てのサポートされているピクセルフォーマットを表示するためには、パラメーターとして 'list' を使ってください。

-sws_flags FLAGS
     SwScaler フラグを設定します。

-g GOP_SIZE
     gop(the group of pictures) の大きさを設定します。

-intra
     イントラフレームのみを用います。

-vdt N
     出発点を破棄します。

-qscale Q
     固定されたビデオ量子化スケールを使います(VBR)。

-qmin Q
     最小のビデオ量子化スケール(VBR)

-qmax Q
     最大のビデオ量子化スケール(VBR)

-qdiff Q
     ビデオ量子化スケール間の最大の差分(VBR)

-qblur BLUR
     ビデオ量子化スケールブラー(VBR) (範囲 0.0 - 1.0)

-qcomp COMPRESSION
     ビデオ量子化スケール圧縮(VBR) (既定値 0.5)。レートコントロール方程式の定数。既定の rc_eq について推奨される範囲: 0.0-1.0

-lmin lambda
     最小のビデオラグランジュ因子(VBR)

-lmax LAMBDA
     最大のビデオラグランジュ因子(VBR)

-mblmin LAMBDA
     最小のマクロブロック量子化スケール(VBR)

-mblmax LAMBDA
     最大ののマクロブロック量子化スケール(VBR)

     これらの4つのオプション(lmin、lmax、mblmin、mblmax)は 'lambda' 単位を使いますが、 'q' 単位から簡単に変換するには QP2LAMBDA 定数を使えます:

          ffmpeg -i src.ext -lmax 21*QP2LAMBDA dst.ext

-rc_init_cplx COMPLEXITY
     単一パスエンコーディングのための初期複雑度

-b_qfactor FACTOR
     P- および B-フレーム間の qp 因子

-i_qfactor FACTOR
     P- および I-フレーム間の qp 因子

-b_qoffset OFFSET
     P- および B-フレーム間の qp オフセット

-i_qoffset OFFSET
     P- および I-フレーム間の qp オフセット

-rc_eq EQUATION
     レート制御方程式を設定する(セクション "式の評価" を見てください) (既定値は tex^qComp)。

     レート制御方程式の式を計算する際、セクション "式の評価" で定義されている標準的な関数とともに、以下の関数が利用できます:

     bits2qp(bits)

     qp2bits(qp)

     かつ以下の定数が利用できます:

     iTex

     pTex

     tex

     mv

     fCode

     iCount

     mcVar

     var

     isI

     isP

     isB

     avgQP

     qComp

     avgIITex

     avgPITex

     avgPPTex

     avgBPTex

     avgTex

-rc_override OVERRIDE
     特定のインターバルに対するレート制御の変更

-me_method METHOD
     モーション推定手法を METHOD に設定する。利用できる手法は次のとおり(順に最低から最高品質へ):

     zero
          単に(0, 0)ベクトルを試す。

     phods

     log

     x1

     hex

     umh

     epzs
          (既定の手法)

     full
          網羅的な探索(遅く、わずかに epzs より良い)

-dct_algo ALGO
     DCT アルゴリズムを ALGO に設定する。利用可能な値は次のとおり:

     0
          FF_DCT_AUTO (既定値)

     1
          FF_DCT_FASTINT

     2
          FF_DCT_INT

     3
          FF_DCT_MMX

     4
          FF_DCT_MLIB

     5
          FF_DCT_ALTIVEC

-idct_algo ALGO
     IDCT アルゴリズムを ALGO に設定する。利用可能な値は次のとおり:

     0
          FF_IDCT_AUTO (既定値)

     1
          FF_IDCT_INT

     2
          FF_IDCT_SIMPLE

     3
          FF_IDCT_SIMPLEMMX

     4
          FF_IDCT_LIBMPEG2MMX

     5
          FF_IDCT_PS2

     6
          FF_IDCT_MLIB

     7
          FF_IDCT_ARM

     8
          FF_IDCT_ALTIVEC

     9
          FF_IDCT_SH4

     10
          FF_IDCT_SIMPLEARM

-er N
     エラー回復を N に設定する。

     1
          FF_ER_CAREFUL (既定値)

     2
          FF_ER_COMPLIANT

     3
          FF_ER_AGGRESSIVE

     4
          FF_ER_EXPLODE

-ec BIT_MASK
     エラー補正を BIT_MASK に設定する。 BIT_MASK は次の値のビットマスクです:

     1
          FF_EC_GUESS_MVS (既定値では有効)

     2
          FF_EC_DEBLOCK (既定値では有効)

-bf FRAMES
     'frames' の B-フレームを使います(MPEG-1、MPEG-2、および MPEG-4 でサポート)。

-mbd MODE
     マクロブロック判定

     0
          FF_MB_DECISION_SIMPLE: mb_cmp を使います(ffmpeg ではまだ変更できません)。

     1
          FF_MB_DECISION_BITS: 最小のビットが必要になるものを選びます。

     2
          FF_MB_DECISION_RD: レート歪曲。

-4mv
     マクロブロックによって4つのモーションベクトルを使います(MPEG-4 のみ)。

-part
     データパーティションを使います(MPEG-4 only)。

-bug PARAM
     自動検出されないエンコーダーのバグへの対処。

-strict STRICTNESS
     どのくらい厳密に標準に従っているか。

-aic
     高度なイントラコーディングを有効にします(h263+)。

-umv
     非限定モーションベクトルを有効にします(h263+)。

-deinterlace
     画像のインターレースを外します。

-ilme
     エンコーダーのインターレースサポートを強制します(MPEG-2 と MPEG-4 のみ)。入力ファイルがインターレースされており、かつ最小のロスでインターレースされたフォーマットを維持したい時に、このオプションを使ってください。代替案として入力ストリームのインターレースを -deinterlace で外すことがありますが、インターレースを外すとロスが生まれます。

-psnr
     圧縮されたフレームの PSNR を計算します。

-vstats
     映像のコーディング統計情報を vstats_HHMMSS.log にダンプします。

-vstats_file FILE
     映像のコーディング統計情報を FILE にダンプします。

-top N
     top=1/bottom=0/auto=-1 領域を最初に

-dc PRECISION
     イントラ DC 精度。 pp-vtag FOURCC/TAG ビデオタグ/fourcc を強制します。

-qphist
     QP 棒グラフを見せます。

-vbsf BITSTREAM FILTER
     ビットストリームフィルター。"dump_extra"、"remove_extra"、"noise"、"h264_mp4toannexb"、"imxdump"、"mjpegadump"、"mjpeg2jpeg" が利用できます。

          ffmpeg -i h264.mp4 -vcodec copy -vbsf h264_mp4toannexb -an out.h264

-force_key_frames TIME[,TIME...]
     キーフレームを指定されたタイムスタンプに強制します、より正確にはその最初のフレームを指定された各タイムスタンプの後に強制します。このオプションはチャプターマークやその他の出力ファイルの中で指示された場所にシークポイントが示されることを保証するために便利となります。このタイムスタンプは昇順に指定される必要があります。

オーディオのオプション
===========

-aframes NUMBER
     録音するオーディオフレームの数を設定します。

-ar FREQ
     オーディオサンプリング頻度を設定します。出力ストリームに対しては既定では入力ストリームの頻度が設定されます。入力ストリームに対してはこのオプションは音声グラブデバイスおよび生のデミュクサーに対してのみ意味があり、対応するデミュクサーオプションにマップされます。

-aq Q
     オーディオ品質を設定します(コーデック別、VBR)。

-ac CHANNELS
     オーディオチャンネルの数を設定します。出力ストリームについては、既定では入力にあるオーディオチャンネルと同じ数に設定されます。入力ストリームについては、このオプションは音声グラブデバイスおよび生のデミュクサーに対してのみ意味があり、対応するデミュクサーにマップされます。

-an
     音声の録音を無効にします。

-acodec CODEC
     オーディオのコーデックを CODEC に強制します。未加工のコーデックデータをありのままコピーするには copy という特別な値を使ってください。値を使ってください。

-newaudio
     出力ファイルに新しいオーディオトラックを追加氏増す。パラメーターを指定したい場合には、 -newaudio の前にそうしてください(-acodec、-ab、など)。

     出力ストリームの数が入力ストリームの数と等しい場合には、対応づけは自動的にされます。そうでない場合には、マッチする最初のものが選ばれます。いつものように対応づけは -map を使って変更できます。

     例:

          ffmpeg -i file.mpg -vcodec copy -acodec ac3 -ab 384k test.mpg -acodec mp2 -ab 192k -newaudio

-alang CODE
     現在の音声ストリームの ISO 639 言語コード(3文字)を設定します。

-sn
     サブタイトルの記録を無効にします。

-sbsf BITSTREAM_FILTER
     ビットストリームフィルター。"mov2textsub"、"text2movsub" が利用できます。

          ffmpeg -i file.mov -an -vn -sbsf mov2textsub -scodec copy -f rawvideo sub.txt

高度なオーディオのオプション:
===============

-atag FOURCC/TAG
     オーディオのタグ/fourcc を強制します。

-audio_service_type TYPE
     音声ストリームが含むサービスのタイプを設定します。

     ma
          メインの音声サービス(既定値)

     ef
          エフェクト

     vi
          視覚障害者向け

     hi
          聴覚障害者向け

     di
          ダイアログ

     co
          コメンタリー

     em
          緊急放送

     vo
          ボイスオーバー

     ka
          カラオケ

-absf BITSTREAM_FILTER
     ビットストリームフィルター。"dump_extra"、"remove_extra"、"noise"、"mp3comp"、"mp3decomp" が利用できます。

サブタイトルのオプション:
=============

-scodec CODEC
     サブタイトルのコーデックを強制します('copy' ならストリームをコピーします)。

-newsubtitle
     現在の出力ストリームに新しいサブタイトルストリームを追加します。

-slang CODE
     現在のサブタイトルストリームの ISO 639 言語コード(3文字)を設定します。

オーディオ/ビデオのグラブのオプション
===================

-vc CHANNEL
     ビデオのグラブチャンネルを設定します(DV1394 のみ)。

-tvstd STANDARD
     テレビ放送方式を設定します(NTSC、PAL (SECAM))。

-isync
     入力を同期読み込みします。

高度なオプション
========

-map INPUT_FILE_ID.INPUT_STREAM_ID[:SYNC_FILE_ID.SYNC_STREAM_ID]

     出力ファイルのソースとして1つの入力ストリームを指定します。各入力ストリームは入力ファイルインデックス  INPUT_FILE_ID と、その入力ファイル内の入力ストリームインデックス INPUT_STREAM_ID によって識別されます。それぞれのインデックスは0から始まります。指定されていれば、 SYNC_FILE_ID.SYNC_STREAM_ID はプレゼンテーションシンク参照としてどの入力ストリームが使われるかを設定します。

     -map オプションは出力ファイルの直後に指定されなければなりません。どの -map オプションが使われる場合でも、コマンドライン上の -map オプションの個数は出力ファイルのストリームの個数と一致していなければなりません。コマンドライン上の最初の -map オプションは出力ストリーム0のソースを指定し、その次の -map オプションは出力ストリーム1のソースを指定する、というようになります。

     例えば、最初の出力ファイル内に2つの音声ストリームがある場合、これらのストリームは "0.0" および "0.1" として識別されます。-map を使ってどのストリームが出力ファイルに配置されるか選びます。例えば:

          ffmpeg -i INPUT out.wav -map 0.1

     は INPUT 内の "0.1" で識別される入力ストリームを out.wav 内の(単一の)出力ストリームにマップします。

     例えば、入力ファイル a.mov から(識別子 "0.2" を指定することによって) インデックス2のストリームを選択し、かつ(識別子 "1.6" を指定することによって) 入力 b.mov のインデックス6のストリームを選択して、それらを出力ファイル out.mov にコピーするには:

          ffmpeg -i a.mov -i b.mov -vcodec copy -acodec copy out.mov -map 0.2 -map 1.6

     出力ファイルにさらにストリームを追加するには、-newaudio、 -newvideo、-newsubtitle オプションが使えます。

-map_meta_data OUTFILE[,METADATA]:INFILE[,METADATA]
     非推奨です。代わりに -MAP_METADATA を使ってください。

-map_metadata OUTFILE[,METADATA]:INFILE[,METADATA]
     INFILE から OUTFILE のメタデータ情報を設定します。これらは (0から始まる)ファイルのインデックスであり、ファイル名ではないことに注意してください。省略可能な METADATA パラメータはどのメタデータをコピーするか - (g)lobal (つまり、ファイル全体に適用されるメタデータ)、per-(s)tream、per-(c)hapter または per-(p)rogram です。global 以外の全てのメタデータ指定子では stream/chapter/program 番号が続かなければなりません。メタデータ指定子が省略された場合、既定の global になります。

     既定では、global メタデータは最初の入力ファイルから全ての出力ファイルにコピーされ、 per-stream および per-chapter メタデータは stream/chapter に合わせてコピーされます。これらの既定のマッピングは関連する種類のマッピングを作成することで無効になります。自動的なコピーを無効にするだけのダミーのマッピングを作成するために、負のファイルインデックスが利用できます。

     例えばメタデータを入力ファイルの最初のストリームから出力ファイルの global メタデータにコピーするには:

          ffmpeg -i in.ogg -map_metadata 0:0,s0 out.mp3

-map_chapters OUTFILE:INFILE
     INFILE から OUTFILE へチャプターをコピーします。チャプターマッピングが指定されていなければ、少なくとも1つチャプターがある最初の入力ファイルから全ての出力ファイルへコピーされます。チャプターのコピーを一切無効にするには負のファイルインデックスを使ってください。

-debug
     特定のデバグ情報を印字します。

-benchmark
     エンコードの終了時にベンチマーク情報を表示します。 CPU 時間と最大メモリ消費を表示します。最大メモリ消費は全てのシステムでサポートされているわけではなく、サポートされていない場合にはたいてい 0 として表示します。

-dump
     各入力パケットをダンプします。

-hex
     パケットをダンプする際に、ペイロードもダンプします。

-bitexact
     (コーデックのテストのために)bit exact アルゴリズムのみを使います。

-ps SIZE
     バイト単位で RTP ペイロードサイズを設定します。

-re
     ネイティブのフレームレートで入力を読み込みます。主にグラブデバイスをシミュレートするために使います。

-loop_input
     入力ストリームをループします。現時点では画像ストリームに対してのみ動作します。このオプションは自動的な AVserver テストに使われます。このオプションは非推奨です、代わりに -loop を使ってください。

-loop_output NUMBER_OF_TIMES
     アニメーション GIF のようなループをサポートしているフォーマット向けに繰り返しループして出力します(0 で無限にループ出力します)。このオプションは非推奨です、代わりに -loop を使ってください。

-threads COUNT
     スレッド数。

-vsync PARAMETER
     ビデオ同期方式。

     0
          demuxer から muxer へタイムスタンプとともに各フレームを渡します。

     1
          要求された定数フレームレートを実現するためにフレームを重複させたり抜かしたりします。

     2
          フレームはタイムスタンプとともに渡されますが、同じタイムスタンプの2つのフレームがあれば抜かします。

     -1
          muxer の能力に応じて 1 か 2 を選択する。これが既定の方法です。

     -map を併用することでどのストリームからタイムスタンプを取得するべきか選択できます。ビデオまたはオーディオを変更せずにおいておくことができ、その変更しないものに対し残りのストリームを同期することができます。

-async SAMPLES_PER_SECOND
     オーディオ同期方式。タイムスタンプに合わせて音声ストリームを``伸長/圧縮''し、パラメーターは音声を変更するときに用いられる秒間最大サンプル数です。 -async 1 は音声ストリームの開始のみを補正し以後補正しないという特殊な場合です。

-copyts
     入力から出力へタイムスタンプをコピーします。

-copytb
     ストリームをコピーする際入力ストリームのタイムベースを入力から出力へコピーします。

-shortest
     最も短い入力ストリームが終わり次第エンコーディングを終えます。

-dts_delta_threshold
     タイムスタンプを不連続差分閾値にする。

-muxdelay SECONDS
     demux-デコード遅延の最大値を設定する。

-muxpreload SECONDS
     初期 demux-デコード遅延を設定する。

-streamid OUTPUT-STREAM-INDEX:NEW-VALUE
     出力ストリームに新しい stream-id の値を割り当てます。このオプションはこれが適用される出力ファイル名より先に指定されるべきです。複数の出力ファイルがある場合、stream-id は異なる値に再割り当てされることがあります。

     例えば、ある出力 mpegts ファイルに対して stream 0 PID に33を、そして stream 1 PID に36を設定するためには:

          ffmpeg -i infile -streamid 0:33 -streamid 1:36 out.ts

プリセットファイル
=========

プリセットファイルには OPTION=VALUE の組の列が含まれています。それぞれの組は行ごとになっており、コマンドラインで指定するには扱いにくいオプションの列を指定します。ハッシュ('#')で始まる行は無視され、コメントを与えるために使われます。例としては Libav のソースツリーにある presets ディレクトリを確認してください。

プリセットファイルは vpre、apre、spre、および fpre オプションとともに指定されます。 fpre オプションは入力としてプリセット名の代わりにプリセットのファイル名をとり、どんな種類のコーデックでも利用できます。vpre、apre、および spre オプションでは、プリセットファイルの中で指定されるこれらのオプションはプリセットオプションと同じ種類の現時点で選択しているコーデックに対して適用されます。

vpre、apre、および spre プリセットオプションに渡される引数は、次の規則に従って利用するプリセットファイルを定めます:

まず ffmpeg は ARG.ffpreset という名前のファイルをディレクトリ $AVCONV_DATADIR (設定されていれば)、$HOME/.avconv、および　configuration 時に定義された datadir(大抵の場合 PREFIX/share/avconv)の中からこの順序で探します。例えば、引数が libx264-max なら、libx264-max.ffpreset というファイルを探します。

そういったファイルが見つからなければ、ffmpeg は CODEC_NAME-ARG.ffpreset という名前のファイルを先ほど述べたディレクトリの中から探します。ここで CODEC_NAME はプリセットファイルオプションが適用されるであろうコーデックの名前です。たとえば、ビデオコーデックを -vcodec libx264 で選択し、-vpre max を使っていた場合、libx264-max.ffpreset というファイルを探します。

ヒント
***

  * 非常に低いビットレートのアプリケーションでストリーミングするためには、低いフレームレートと小さな GOP サイズを使ってください。これは特に、Linux のプレイヤーがあまり速くないらしくその結果フレームを抜かす場合の RealVideo に当てはまります。例は次のようになります:

          ffmpeg -g 3 -r 3 -t 10 -b 50k -s qcif -f rv10 /tmp/b.rm

  * エンコーディング中に表示されるパラメーター 'q' は現在の量子化器です。値 1 は非常に良い品質が達成されるであろうということを示します。値 31 は最悪の品質を示します。q=31 があまりに頻繁に見られるときには、エンコーダーがあなたのビットレートに見合うほど十分に圧縮できていないことを意味しています。ビットレートを増やすか、フレームレートを減らすか、フレームサイズを減らすかのいずれかをしなければなりません。

  * 計算機が十分に速くないときには、圧縮率を犠牲にして圧縮の速度を上げることができます。モーション推定を速くするために '-me zero'、モーション推定を完全に無効にするために '-intra' を使うことができます (I-フレームのみが得られます、これはほぼ JPEG 圧縮と同様な水準のものになることを意味しています)。

  * 非常に低い音声ビットレートを得るためには、サンプル頻度を減らしてください (MPEG audio 向けには22050 Hz、AC-3 向けには22050または11025に落としてください)。

  * (可変ビットレートで)一定の品質を得るためには、オプション '-qscale n' を使ってください、ただし 'n' は1(非常に高品質)から31(最悪の品質)の間です。

  * ビデオファイルを変換するときには、エンコーダーでデコーダーと同じ品質の要因をを使うオプション '-sameq' を使うことができます。これによってほぼロスレスのエンコーディングが可能です。

例
*

ビデオおよびオーディオを捕捉する
================

入力フォーマットおよびデバイスを指定すると ffmpeg はビデオおよびオーディオを直接捕捉することができます。

     ffmpeg -f oss -i /dev/dsp -f video4linux2 -i /dev/video0 /tmp/out.mpg

Gerd Knorr による xawtv (http://linux.bytesex.org/xawtv/) のようなテレビビューアとともに ffmpeg を動作させる前に、正しい映像のソースとチャンネルを有効にしなければならないことに注意してください。また標準的なミキサーを用いて正確に音声録音水準を設定しなければなりません。

X11 を捕捉する
=========

ffmpeg は X11 ディスプレイを捕捉することができます。

     ffmpeg -f x11grab -s cif -r 25 -i :0.0 /tmp/out.mpg

0.0はあなたの X11 サーバのディスプレイ.スクリーン番号であり、DISPLAY 環境変数と同じものです。

     ffmpeg -f x11grab -s cif -r 25 -i :0.0+10,20 /tmp/out.mpg

10は捕捉のための x-オフセット、20は y-オフセットです。

     ffmpeg -f x11grab -follow_mouse centered -s cif -r 25 -i :0.0 /tmp/out.mpg

捕捉領域はマウスポインターに追随し、ポインターがその領域の中央になるようにします。

     ffmpeg -f x11grab -follow_mouse 100 -s cif -r 25 -i :0.0 /tmp/out.mpg

領域の端に対して100ピクセル以内に近付いたときだけマウスポインターに追随します。

     ffmpeg -f x11grab -show_region 1 -s cif -r 25 -i :0.0+10,20 /tmp/out.mpg

捕捉領域はスクリーンで指示されます。

     ffmpeg -f x11grab -follow_mouse centered -show_region 1 -s cif -r 25 -i :0.0 /tmp/out.mpg

捕捉領域の指示はマウスポインターに従います。

ビデオおよびオーディオのファイルフォーマット変換
========================

任意のサポートしているファイルフォーマットおよびプロトコルを ffmpeg への入力に使うことができます:

例:

  * 入力として YUV ファイルが使えます:

          ffmpeg -i /tmp/test%d.Y /tmp/out.mpg

     これで次のファイルを使います:

          /tmp/test0.Y、/tmp/test0.U、/tmp/test0.V、
          /tmp/test1.Y、/tmp/test1.U、/tmp/test1.V、など

     この Y ファイルは U ファイルと V ファイルの解像度を2度使います。これらは未加工のファイルで、ヘッダーがありません。全てのまともなビデオデコーダーでこれらが生成できます。 ffmpeg が推測できない場合には -s オプションで画像のサイズを指定しなければなりません。

  * 未加工の YUV420P ファイルを入力することができます:

          ffmpeg -i /tmp/test.yuv /tmp/out.avi

     test.yuv は未加工の YUV 平面データを含むファイルです。各フレームは Y 平面と、それに続く U および V 平面から半水平および垂直解像度で合成される。

  * 未加工の YUV420P ファイルを出力することができます:

          ffmpeg -i mydivx.avi hugefile.yuv

  * 複数の入力ファイルと複数の出力ファイルを設定できます:

          ffmpeg -i /tmp/a.wav -s 640x480 -i /tmp/a.yuv /tmp/a.mpg

     上は音声ファイル a.wav と未加工の YUV 映像ファイル a.yuv を MPEG ファイル a.mpg に変換します。

  * また同時に音声と映像の変換ができます:

          ffmpeg -i /tmp/a.wav -ar 22050 /tmp/a.mp2

     上は a.wav を22050 Hzのサンプルレートで MPEG 音声に変換します。

  * 同時に複数のフォーマットへ変換でき、入力ストリームから出力ストリームへの対応を定義できます:

          ffmpeg -i /tmp/a.wav -ab 64k /tmp/a.mp2 -ab 128k /tmp/b.mp2 -map 0:0 -map 0:0

     上は a.wav を a.mp2 へ64kbitsで変換し、b.mp2へ128 kbitsで変換します。 '-mapfile:index' は各出力ストリームに対してどの入力ストリームが使われるかを指定し、出力ストリームの定義の順に対応されます。

  * 解読された VOB をコード変換できます:

          ffmpeg -i snatch_1.vob -f avi -vcodec mpeg4 -b 800k -g 300 -bf 2 -acodec libmp3lame -ab 128k snatch.avi

     これは典型的な DVD リッピングの例です; 入力は VOB ファイルで、出力は MPEG-4 ビデオと MP3 オーディオからなる AVI ファイルです。このコマンドでは B-フレームを使っているため MPEG-4 ストリームは DivX5 互換であり、 GOP サイズが300(29.97fpsの入力ビデオに対して10秒毎に1つの intra フレームを意味する)になっていることに注意してください。さらに、音声ストリームは MP3-エンコードされているため、 --enable-libmp3lame を渡して configure することで LAME サポートを有効にする必要があります。このマッピングはお望みの音声言語を得るための DVD コード変換のために特に便利です。

     注意: サポートされている入力フォーマットを見るには、ffmpeg -formats を使ってください。

  * ビデオから画像を引き出すことができ、また多数の画像からビデオを作ることができます:

     ビデオから画像を抽出するには:

          ffmpeg -i foo.avi -r 1 -s WxH -f image2 foo-%03d.jpeg

     これはビデオから毎秒1つのビデオフレームを引き出し、それらを foo-001.jpeg、foo-002.jpeg などの名前をつけたファイルに出力します。新しい WxH 値に合うように再スケールされます。

     限られた数のフレームだけを引き出したい場合には、上記のコマンドを -vframes オプションまたは -t オプションと組み合わせて、もしくは特定の時刻の点から引き出しを始めるように -ss を組み合わせて使うことができます。

     多数の画像からビデオを作成するには:

          ffmpeg -f image2 -i foo-%03d.jpeg -r 12 -s WxH foo.avi

     構文 foo-%03d.jpeg は列番号を表現する0を並べて3つの桁に揃えられた10進数字を使うことを指定します。これは C の printf 関数によってサポートされているのと同じ構文ですが、標準の整数1つを受け付ける書式のみが適しています。

  * 出力に同じタイプの多くのストリームを含めることができます:

          ffmpeg -i test1.avi -i test2.avi -vcodec copy -acodec copy -vcodec copy -acodec copy test12.avi -newvideo -newaudio

     1番目のビデオおよびオーディオストリームに加えて、結果の出力ファイル test12.avi は入力ストリームリストのうちに見つかる2番目のビデオおよび2番目のオーディオストリームも含むことになります。

     -newvideo および -newaudio、-newsubtitle オプションはそれを追加したい出力ファイルの名前の直後に指定しなければなりません。

     [file eval.texi not included]
     [file encoders.texi not included]
     [file demuxers.texi not included]
     [file muxers.texi not included]
     [file indevs.texi not included]
     [file outdevs.texi not included]
     [file protocols.texi not included]
     [file bitstream_filters.texi not included]
     [file filters.texi not included]
     [file metadata.texi not included]