概要
**

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

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

説明
**

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

avconv は、-i オプションで指定されている任意の数の入力"ファイル" (これらは通常のファイル、パイプ、ネットワークストリーム、捕捉しているデバイスなどがあり得ます)を読み取り、単純な出力ファイル名でしてい されている任意の数の出力"ファイル"に書き出します。コマンドライン上にあるオプションとして解釈されないものは全て、1つの出力ファイル名と見なされます。

各入力または出力ファイルは原則として異なる種類(映像/音声/字幕/アタッチメント/データ) のストリームを複数含むことが可能です。含まれるストリームの数や種類はコンテナフォーマットによって制限されます。どのストリームが入力から出力へ行くかの選択は、自動または -map オプションでなされます(ストリーム選択の章を見てください)。

オプションで入力ファイルを参照するには、それらの(0から始まる)インデックスを用いなければなりません。例えば、最初の入力ファイルは0、次の入力ファイルは 1などです。同様に、ファイル内のストリームもそれらのインデックスによって参照されます。例えば、2:3は3番目の入力ファイルの中の4番目のストリームを指します。ストリーム指定子の章も見てください。

一般的な規則として、オプションは次に並ぶ指定されたファイルに適用されます。したがって、順序は重要であり、コマンドラインに複数回同じオプションを与えることができます。それぞれ出てくるごとに次にくる入力または出力ファイルに適用されます。この規則の例外はグローバルオプション(例えば、ログの詳細度のレベル)で、これらは最初に指定されるべきです。

入力と出力ファイルを混ぜないようにしてください -- 最初に全ての入力ファイルを指定し、それから出力ファイルを指定してください。また異なるファイルに属するオプションを混ぜないようにしてください。全てのオプションは次の入力もしくは出力ファイルにのみ適用され、ファイルの間でリセットされます。

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

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

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

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

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

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

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

詳細な説明
*****

avconv における各出力のトランスコーディング過程は以下の図によって表されます:

      _______              ______________               _________              ______________            ________
     |       |            |              |             |         |            |              |          |        |
     | input |  demuxer   | encoded data |   decoder   | decoded |  encoder   | encoded data |  muxer   | output |
     | file  | ---------> | packets      |  ---------> | frames  | ---------> | packets      | -------> | file   |
     |_______|            |______________|             |_________|            |______________|          |________|

avconv は、入力ファイルを読み取ってそれらからエンコードされたデータを含むパケットを得るために libavformat ライブラリ(デミュクサーを含む)を呼び出します。複数の入力ファイルがある場合には、avconv はアクティブな入力ストリームの最も低いタイムスタンプを追跡することによって、それらが同期を維持しようとします。

エンコードされたパケットは次にデコーダーに渡されます(そのストリームについて streamcopy が選択されていなければ。詳しくはのちほどの説明を読んでください)。デコーダーは圧縮されていないフレーム(raw 映像/PCM 音声/...)を生成し、フィルタリングでさらに処理(次の節を見てください)できるようにします。フィルタリングののち、フレームはエンコーダーに渡され、ここで再度エンコードされエンコードされたパケットとして出力されます。最後にこれらはミュクサーに渡され、そこでエンコードされたパケットは出力ファイルに書き出されます。

フィルタリング
=======

エンコーディングされる前に、avconv はlibavfilter ライブラリのフィルターを使って raw 音声および映像フレームを処理できます。いくつか鎖状になったフィルターが 1つのフィルターグラフを構成します。avconv は2種類のフィルターグラフを区別します - 単純なものと複雑なものです。

単純フィルターグラフ
----------

単純フィルターグラフはただ1つの入力とただ1つの出力を、どちらも同じ種類でもつものです。上記の図でこれらは単にデコーディングとエンコーディングの間に追加のステップを挿入することで表現できます:

      _________                        __________              ______________
     |         |                      |          |            |              |
     | decoded |  simple filtergraph  | filtered |  encoder   | encoded data |
     | frames  | -------------------> | frames   | ---------> | packets      |
     |_________|                      |__________|            |______________|

単純フィルターグラフはストリームごとの -filter オプションで構成されます (それぞれ映像向けおよび音声向けの -vf および -af という別名とともに)。例えば映像向けの単純フィルターグラフは以下のように見えます:

      _______        _____________        _______        _____        ________
     |       |      |             |      |       |      |     |      |        |
     | input | ---> | deinterlace | ---> | scale | ---> | fps | ---> | output |
     |_______|      |_____________|      |_______|      |_____|      |________|

フィルターによってはフレームの内容でなくフレームの属性を変更することに注意してください。例えば、上の例の中の fps フィルターはフレームの個数を変ますが、フレームの内容には触れません。もう1つの例としては setpts フィルターがあり、これはタイムスタンプだけを設定しフレームを変更せずに渡します。

複雑フィルターグラフ
----------

複雑フィルターグラフは、単に直列な処理のつながりを1つのストリームに適用するだけでは表現できないものです。これは例えばグラフが複数の入力もしくは出力をもつ場合、あるいは出力ストリームが入力と種類が異なる場合に該当します。これらは次のような図で表現できます:

      _________
     |         |
     | input 0 |\                    __________
     |_________| \                  |          |
                  \   _________    /| output 0 |
                   \ |         |  / |__________|
      _________     \| complex | /
     |         |     |         |/
     | input 1 |---->| filter  |\
     |_________|     |         | \   __________
                    /| graph   |  \ |          |
                   / |         |   \| output 1 |
      _________   /  |_________|    |__________|
     |         | /
     | input 2 |/
     |_________|

複雑フィルターグラフは -filter_complex オプションで構成されます。このオプションはグローバルであることに注意してください、というのも複雑フィルターグラフは本来的に単一のストリームまたはファイルに曖昧さなしに関連づけることができないからです。

複雑フィルターグラフの自明な例としては、overlay フィルターがあります。これは2つの映像入力を1つの映像出力をもち、出力では一方の映像の上に他方の映像がオーバーレイされます。音声でこれに対応するのが amix フィルターです。

ストリームコピー
========

ストリームコピーは -codec オプションにパラメーター copy を与えて選択するモードです。こうすると avconv はその指定されたストリームに対するデコーディングおよびエンコーディングのステップを省略します。これはコンテナの形式を変更したりコンテナレベルのメタデータを修正する際に便利です。上記の図はこの場合次のように単純になります:

      _______              ______________            ________
     |       |            |              |          |        |
     | input |  demuxer   | encoded data |  muxer   | output |
     | file  | ---------> | packets      | -------> | file   |
     |_______|            |______________|          |________|

デコーディングもエンコーディングもないため、高速そのものでかつ品質のロスがありません。しかし多くの要因でうまく動作しない場合もあります。また、フィルターは圧縮されていないデータを扱うため、フィルターを適用することも明らかに不可能です。

ストリーム選択
*******

既定では avconv は入力ファイルにある各種のストリームのうち"最善"のものを取り出し、各出力ファイルに追加しようとします。映像については、これは最高の解像度のものを意味し、音声については最高のチャンネル数のものを意味します。字幕については単に最初の字幕ストリームです。

-vn/-an/-sn オプションを使ってこれらの既定値のいくつかを無効にすることができます。完全なマニュアル操作のためには、-map オプションを使ってください、これは上に書いた既定値を無効にします。

オプション
*****

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

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

-f FMT (input/output)
     入力もしくは出力ファイルの形式を強制します。通常なら形式は、入力ファイルについては自動で検出され、出力ファイルについてはファイルの拡張子から推測されます。そのため大抵の場合にはこのオプションは必要ありません。

-i FILENAME (input)
     入力のファイル名

-y (global)
     確認することなく出力ファイルを上書きします。

-c[:STREAM_SPECIFIER] CODEC (input/output,per-stream)
-codec[:STREAM_SPECIFIER] CODEC (input/output,per-stream)
     1つまたはそれ以上のストリームについて(出力ファイルの前で使われる場合) エンコーダー、または(入力ファイルの前に使われる場合)デコーダーを選択します。 CODEC はデコーダー/エンコーダーの名前、もしくは(出力の場合のみ) そのストリームを再エンコードしないことを指示する特殊な値 copy です。

     STREAM_TYPE は映像なら 'v'、音声なら 'a'、字幕なら 's'、そしてデータストリームなら 'd' です。STREAM_INDEX は、STREAM_TYPE が与えられていない場合、0から始まるグローバルなストリームインデックスで、与えられている場合はその種類のストリームのみをカウントしたインデックスです。 STREAM_INDEX が省略された場合、このオプションは与えられた種類の全てのストリーム、または STREAM_TYPE もない場合にはあらゆる種類のストリームに適用されます(これは全てのストリームが同じ種類のときか、 CODEC が copy のときのみ意味があります)。

     例えば

          avconv -i INPUT -map 0 -c:v libx264 -c:a copy OUTPUT

     は全ての映像ストリームを libx264 でエンコードし、全ての音声ストリームをコピーします。

     各ストリームに対し、最後にマッチする c オプションが適用されるので、

          avconv -i INPUT -map 0 -c copy -c:v:1 libx264 -c:a:137 libvorbis OUTPUT

     では、libx264 でエンコードされる2番目の映像と、libvorbis でエンコードされる138番目の音声を除き、これら以外の全てのストリームはコピーされます。

-t DURATION (output)
     時間が DURATION に達した時点で出力を書き出すのを止めます。 DURATION は秒単位での数値か、hh:mm:ss[.xxx] という形です。

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

-ss POSITION (input/output)
     入力オプションとして(-i の前で)利用された場合には、この入力ファイルに対し POSITION へシークします。出力オプションとして(出力ファイルの前で) 利用された場合には、タイムスタンプが POSITION に到達するまでの入力をデコードしますが捨てます。これはより遅くなりますが、より正確です。

     POSITION は秒、または hh:mm:ss[.xxx] という形です。

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

-metadata[:metadata_specifier] KEY=VALUE (output,per-metadata)
     メタデータ key/value の組を設定します。

     省略可能な METADATA_SPECIFIER はストリームもしくはチャプターにメタデータを設定するために与えられます。詳しくは -map_metadata のドキュメンテーションを見てください。

     このオプションは -map_metadata で設定されるメタデータにより上書きされます。空の値を使ってメタデータを削除することもできます。

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

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

     最初の音声ストリームの言語を設定するには:

          avconv -i INPUT -metadata:s:a:0 language=eng OUTPUT

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

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

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

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

-dframes NUMBER (output)
     録画録音されるデータフレームの数を設定します。これは -frames:d の別名です。

-frames[:STREAM_SPECIFIER] FRAMECOUNT (output,per-stream)
     FRAMECOUNT フレーム以降ストリームに書き込むのを止めます。

-q[:STREAM_SPECIFIER] Q (output,per-stream)
-qscale[:STREAM_SPECIFIER] Q (output,per-stream)
     固定品質スケール(VBR)を使います。Q の意味はコーデック依存です。

-filter[:STREAM_SPECIFIER] FILTER_GRAPH (output,per-stream)
     FILTER_GRAPH はストリームに適用されるフィルターグラフの説明です。 (ソースやシンクを含めて)利用できる全てのフィルターを表示するには -filters を使ってください。

     複数の入力または出力でフィルターグラフを作成する場合、-filter_complex オプションも見てください。

-pre[:STREAM_SPECIFIER] PRESET_NAME (output,per-stream)
     合致したストリームのプリセットを指定します。

-stats (global)
     エンコーディングの進捗や統計を表示します。既定では有効です。

-attach FILENAME (output)
     出力ファイルにアタッチメントを追加します。これは、例えば字幕を表示するために使われるフォントのために、Matroska など限られたフォーマットでサポートされています。アタッチメントは特殊な種類のストリームとして実装されており、このためこのオプションはファイルに新しいストリームを追加します。そこでこのストリームに対して、いつものようにストリームごとのオプションを使うことができます。このオプションで作成されるアタッチメントのストリームは他のあらゆるストリーム (つまり、-map または自動マッピングで作成されたもの)の後で作成されます。

     Matroska について mimetype のメタデータタグも設定しなければならないことに注意してください:

          avconv -i INPUT -attach DejaVuSans.ttf -metadata:s:2 mimetype=application/x-truetype-font out.mkv

     (出力ファイルの3番目がアタッチメントのストリームになると仮定しています)。

-dump_attachment[:STREAM_SPECIFIER] FILENAME (input,per-stream)
     合致するアタッチメントのストリームを FILENAME という名前のファイルに取り出します。FILENAME が空なら、filename メタデータタグの値が使われます。

     例えば、最初のアタッチメントを 'out.ttf' というファイルに取り出すには:

          avconv -dump_attachment:t:0 out.ttf INPUT

     全てのアタッチメントを filename タグによって決まるファイルに取り出すには:

          avconv -dump_attachment:t "" INPUT

     技術的な注意 -- アタッチメントはコーデックのエクストラデータとして実装されており、そのためこのオプションで実際には、アタッチメントだけでなく、あらゆるストリームからエクストラデータを抽出するために使うことができます。

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

-vframes NUMBER (output)
     録画するビデオフレームの数を設定します。これは -frames:v の別名です。

-r[:STREAM_SPECIFIER] FPS (input/output,per-stream)
     フレームレート(Hz での値、分数または省略形)を設定します。

     入力ストリームとしては、ファイルに保存されているタイムスタンプをどれも無視し、代わりに定数フレームレート FPS を仮定してタイムスタンプを生成します。

     出力ストリームとしては、入力フレームを重複させる、もしくは落とすなどして定数フレームレート FPS にしようとします(これは実際には、対応するフィルターグラフの末尾に fps フィルターを挿入することに注意してください)。

-s[:STREAM_SPECIFIER] SIZE (input/output,per-stream)
     フレームサイズを設定します。

     入力オプションとしては、これは video_size プライベートオプションのショートカットであり、フレームサイズがファイルに保存されているわけでも構成可能でもないようなデミュクサーによって認識されます。例えば、生の映像や映像グラバーなどです。

     出力オプションとしては、これは対応するフィルターグラフの末尾に scale 映像フィルターを挿入します。最初あるいは別のところで scale フィルターを直接使ってください。

     書式は wxh です(既定では、ソースと同じです)。以下の省略形が認識されます:

     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[:STREAM_SPECIFIER] ASPECT (output,per-stream)
     ASPECT によって映像画面アスペクト比を設定します。

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

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

-vcodec CODEC (output)
     映像コーデックを設定します。これは -codec:v の別名です。

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

     注意: これは同じ品質ではありません。必要だと分かっているとき以外は使わないでください。

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

          avconv -i foo.mov -c:v libxvid -pass 1 -an -f rawvideo -y NUL
          avconv -i foo.mov -c:v libxvid -pass 1 -an -f rawvideo -y /dev/null

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

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

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

-pix_fmt[:STREAM_SPECIFIER] FORMAT (input/output,per-stream)
     ピクセルフォーマットを設定します。全てのサポートされているピクセルフォーマットを表示するためには、-pix_fmts を使ってください。

-sws_flags FLAGS (input/output)
     SwScaler フラグを設定します。

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

-rc_override[:STREAM_SPECIFIER] OVERRIDE (output,per-stream)
     特定のインターバルに対するレート制御の変更

-deinterlace
     画像のインターレースを外します。このデインターレースはとても低い品質のため、このオプションは非推奨です。 -filter:v yadif のようにして yadif フィルターを使ってください。

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

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

-top[:STREAM_SPECIFIER] N (output,per-stream)
     top=1/bottom=0/auto=-1 領域を最初に

-dc PRECISION
     イントラ DC 精度。

-vtag FOURCC/TAG (output)
     ビデオタグ/fourcc を強制します。これは -tag:v の別名です。

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

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

-copyinkf[:STREAM_SPECIFIER] (output,per-stream)
     ストリームのコピーをする際に、、最初に見つかった non-key フレームもコピーします。

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

-aframes NUMBER (output)
     録音するオーディオフレームの数を設定します。これは -frames:a の別名です。

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

-aq Q (output)
     オーディオ品質を設定します(コーデック別、VBR)。これは -q:a の別名です。

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

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

-acodec CODEC (input/output)
     音声コーデックを設定します。これは -codec:a の別名です。

-sample_fmt[:STREAM_SPECIFIER] SAMPLE_FMT (output,per-stream)
     音声サンプルフォーマットを設定します。サポートされているサンプルフォーマットの一覧を得るには -sample_fmts を使ってください。

-af FILTER_GRAPH (output)
     FILTER_GRAPH は入力音声に適用されるフィルターグラフの表現です。 (ソースやシンクを含め)利用できる全てのフィルターを表示するためにはオプション "-filters" を使ってください。これは -filter:a の別名です。

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

-atag FOURCC/TAG (output)
     オーディオのタグ/fourcc を強制します。これは -tag:a の別名です。

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

-scodec CODEC (input/output)
     サブタイトルのコーデックを設定します。これは -codec:s の別名です。

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

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

-map [-]INPUT_FILE_ID[:STREAM_SPECIFIER][,SYNC_FILE_ID[:STREAM_SPECIFIER]] | [LINKLABEL] (output)

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

     INPUT_STREAM_TYPE が指定されている場合(映像には 'v'、音声には 'a'、字幕には 's'、データには 'd')、INPUT_STREAM_ID はその種類のストリームだけカウントします。 SYNC_STREAM_TYPE についても同じです。

     INPUT_STREAM_ID は省略でき、その場合与えられた種類の全てのストリームがマップされます(種類が指定されていない場合は、そのファイルの全てのストリームがマップされます)。

     コマンドライン上の最初の -map オプションは出力ストリーム0のソースを指定し、その次の -map オプションは出力ストリーム1のソースを指定する、というようになります。

     ストリーム識別子の前に - があると、"ネガティブ"マッピングを作成します。これは既に作成されているマッピングからマッチするストリームを無効にします。

     [LINKLABEL] による別の形では、出力を複雑なフィルターグラフ(-filter_complex を見てください)から出力ファイルへマップします。 LINKLABEL はグラフ内の定義された出力リンクラベルと対応していなければなりません。

     例えば、最初の入力ファイルから出力へ全てのストリームをマップするには

          avconv -i INPUT -map 0 output

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

          avconv -i INPUT -map 0:1 out.wav

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

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

          avconv -i a.mov -i b.mov -c copy -map 0:2 -map 1:6 out.mov

     入力ファイルから全ての映像と3番目の音声ストリームを選択するには:

          avconv -i INPUT -map 0:v -map 0:a:2 OUTPUT

     2番目の音声以外の全てのストリームをマップするには、ネガティブマッピングを使います

          avconv -i INPUT -map 0 -map -0:a:1 OUTPUT

     注意として、このオプションを使うとこの出力ファイルに対する既定のマッピングが無効になります。

-map_metadata[:METADATA_SPEC_OUT] INFILE[:METADATA_SPEC_IN] (output,per-metadata)

     INFILE の次の出力ファイルのメタデータ情報を設定します。これらは (0から始まる)ファイルのインデックスであり、ファイル名ではないことに注意してください。省略可能な METADATA_SPEC_IN/OUT パラメータはどのメタデータをコピーするかを指定します。メタデータ指定子は以下のいずれかの形が可能です:

     G
          グローバルメタデータ、つまりファイル全体に適用されるメタデータ

     S[:STREAM_SPEC]
          ストリームごとのメタデータ。STREAM_SPEC は Stream specifiers の章で説明されているストリーム指定子です。入力メタデータの指定子では、最初に合致したストリームがそこからコピーされます。出力メタデータ指定子では、合致した全てのストリームがそこにコピーされます。

     C:CHAPTER_INDEX
          チャプターごとのメタデータ。CHAPTER_INDEX は0から始まるチャプターのインデックスです。

     P:PROGRAM_INDEX
          プログラムごとのメタデータ。PROGRAM_INDEX は0から始まるプログラムのインデックスです。

     メタデータ指定子が省略された場合、既定では global になります。

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

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

          avconv -i in.ogg -map_metadata 0:s:0 out.mp3

     逆をする、つまりグローバルなメタデータを全ての音声ストリームへコピーするには:

          avconv -i in.mkv -map_metadata:s:a 0:g out.mkv

     この例では単に0とすることでうまくいくことに注意してください。なぜなら既定でグローバルメタデータが仮定されるからです。

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

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

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

-timelimit DURATION (global)
     avconv が DURATION 秒間実行された時点で終了します。

-dump (global)
     各入力パケットを標準エラー出力にダンプします。

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

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

-vsync PARAMETER
     ビデオ同期方式。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

-bsf[:STREAM_SPECIFIER] BITSTREAM_FILTERS (output,per-stream)
     対応するストリームにビットストリームフィルターを設定します。BISTREAM_FILTERS はビットストリームフィルターのコンマで区切られたリストです。ビットストリームフィルターのリストを得るには -bsfs オプションを使ってください。

          avconv -i h264.mp4 -c:v copy -bsf:v h264_mp4toannexb -an out.h264

          avconv -i file.mov -an -vn -bsf:s mov2textsub -c:s copy -f rawvideo sub.txt

-tag[:STREAM_SPECIFIER] CODEC_TAG (output,per-stream)
     対応するストリームに タグ/fourcc を強制します。

-cpuflags mask (global)
     自動検出された CPU フラグに適用されるマスクを設定します。このオプションはテスト目的のものです。何をしているか知らない場合には使わないでください。

-filter_complex FILTERGRAPH (global)
     複雑なフィルターグラフを定義します。例えば、任意の数の入力または出力をもつものです。単純なグラフ -- 同じ種類の1つの入力と1つの出力をもつもの -- については、-filter オプションを見てください。FILTERGRAPH はフィルターグラフの記述で、Filtergraph syntax で説明されているとおりです。

     入力リンクラベルは [file_index:stream_specifier] 構文(つまり、-map が使うのと同じように)を使って入力ストリームを参照していなければなりません。 STREAM_SPECIFIER が複数のストリームに合致する場合には、最初のものが使われます。ラベルづけられていない入力は、種類が合致する使われていない入力ストリームの最初のものにつながれます。

     出力リンクラベルは -map で参照されます。ラベルづけられていない出力は最初の出力ファイルに加えられます。

     このオプションによって通常の入力ファイルなしに lavfi ソースだけで使えることに注意してください。

     例えば、映像に画像をオーバーレイするには

          avconv -i video.mkv -i image.png -filter_complex '[0:v][1:v]overlay[out]' -map
          '[out]' out.mkv

     ここで [0:v] は最初の入力ファイルの最初の映像ストリームを参照し、これはオーバーレイフィルターの最初の(主な)入力にリンクされます。同様に、2番目の入力の最初の映像ストリームはオーバーレイの2番目の(オーバーレイ)入力にリンクされます。

     各入力ファイルにただ1つだけ映像ストリームがあると仮定した場合、入力ラベルを省略できます。このため上は以下と同じです:

          avconv -i video.mkv -i image.png -filter_complex 'overlay[out]' -map
          '[out]' out.mkv

     さらに出力ラベルを省略でき、フィルターグラフからの単一の出力はその出力ファイルに自動的に追加されるので、単に次のように書けます:

          avconv -i video.mkv -i image.png -filter_complex 'overlay' out.mkv

     lavfi color ソースを使って5秒間の純粋な赤い映像を生成するには:

          avconv -filter_complex 'color=red' -t 5 out.mkv

ヒント
***

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

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

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

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

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

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

例
*

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

プリセットファイルは各行に1つ OPTION=VALUE という組の列を含んでおり、コマンドライン上で指定できるオプションの列を指定します。ハッシュ記号('#') で始まる行は無視されコメントを提供するために用いられます。空行も無視されます。例としては Libav ソースツリーにある  presets ディレクトリを確認してください。

プリセットファイルは pre オプションによって指定され、このオプションは入力としてプリセットの名前をとります。Avconv は PRESET_NAME.avpreset という名前のファイルを(あれば)ディレクトリ $AVCONV_DATADIR、または $HOME/.avconv、または configure 時に定義されたデータディレクトリ (大抵の場合 $PREFIX/share/avconv です)から、この順番に探します。例えば、引数が libx264-max なら、libx264-max.avpreset というファイルを探します。

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

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

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

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

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

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

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

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

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

0.0 は X11 サーバーの  display.screen 番号で、DISPLAY 環境変数と同じものです。 10は捕捉のための x-オフセット、20は y-オフセットです。

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

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

例:

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

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

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

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

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

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

          avconv -i mydivx.avi hugefile.yuv

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

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

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

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

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

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

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

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

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

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

          avconv -i snatch_1.vob -f avi -c:v mpeg4 -b:v 800k -g 300 -bf 2 -c:a libmp3lame -b:a 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 コード変換のために特に便利です。

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

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

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

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

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

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

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

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

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

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

          avconv -i test1.avi -i test2.avi -map 0.3 -map 0.2 -map 0.1 -map 0.0 -c copy test12.nut

     結果の出力ファイル test12.avi は、入力ファイルから逆順に最初の4つのストリームを含みます。

  * CBR 映像出力を強制するには:

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

  * 4つのオプション lmin、lmax、mblmin および mblmax は単位 'lambda' を用いますが、単位 'q' から簡単に変換するために QP2LAMBDA 定数を使えます:

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

     [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]