[Top] [Contents] [Index] [ ? ]

ffplay Documentation


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1. 概要

 
ffplay [options] ‘input_file

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2. 説明

FFplay は非常に単純で移植可能な Libav ライブラリと SDL ライブラリ を利用するメディアプレイヤーです。主にさまざまな Libav API のための 叩き台として利用されています。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3. オプション

数値のオプションは全て(そうではないと明記していない限り) 1つの数を表す入力文字列を受け取ります。それには国際単位系の接頭辞 (例えば ’K’、’M’、’G’)を1つ含めてもかまいません。 この接頭辞の直後に ’i’ を付け加えると、10の累乗の代わりに2の累乗 が使われます。 ’B’ という接尾辞は値を8倍し、また他の接尾辞に付け加えても単独でも どちらでも使えます。これによって例えば ’KB’、’MiB’、’G’ や ’B’ が接尾辞として許されます。

引数をとらないオプションはブール値のオプションであり、対応する値を true にします。オプション名の前に "no" をつけることで false に できます。例えば、コマンドラインで "-nofoo" とすることで "foo" という 名前のブール値のオプションが false になります。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.1 一般的なオプション

これらのオプションは ff* ツールの間で共有されます。

-L

ライセンスを表示します。

-h, -?, -help, --help

ヘルプを表示します。

-version

バージョンを表示します。

-formats

利用可能なフォーマットを表示します。

フォーマット名の前にあるフィールドは次のような意味があります:

D

デコーディングが利用できる

E

エンコーディングが利用できる

-codecs

利用可能なコーデックを表示します。

コーデック名の前にあるフィールドは次のような意味があります:

D

デコーディングが利用できる

E

エンコーディングが利用できる

V/A/S

映像/音声/サブタイトルコーデック

S

コーデックがスライスをサポートしている

D

コーデックが direct rendering をサポートしている

T

コーデックがフレーム境界でだけでなくランダムな場所での切り取られた入力を扱える

-bsfs

利用可能な bitstream フィルターを表示します。

-protocols

利用可能なプロトコルを表示します。

-filters

利用可能な libavfilter フィルターを表示します。

-pix_fmts

利用可能な pixel フォーマットを表示します。

-loglevel loglevel

そのライブラリで使用されるログの冗長さを設定します。 loglevel は以下の値の1つを含んだ数値または文字列:

quiet
panic
fatal
error
warning
info
verbose
debug

既定ではプログラムは標準エラー出力にログを出力し、端末が色付けに 対応していれば、エラーと警告に印をつけるように色が使われます。 ログの色付けは環境変数 FFMPEG_FORCE_NOCOLOR または NO_COLOR をセットすることで無効にでき、 また環境変数 FFMPEG_FORCE_COLOR をセットすることで強制できます。 環境変数 NO_COLOR の利用は非推奨で、今後の Libav のバージョンでは なくなる予定です。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.2 主なオプション

-x width

表示される横幅を強制する。

-y height

表示される縦幅を強制する。

-s size

このオプションは削除された。入力映像サイズを指定するには プライベート形式オプションを使うこと。

-an

オーディオを無効にする。

-vn

ビデオを無効にする。

-ss pos

秒単位で与えられた位置を探す。

-t duration

音声/映像を <duration> 秒再生する。

-bytes

バイトで探す。

-nodisp

グラフィカル表示を無効にする。

-f fmt

フォーマットを強制する。

-window_title title

ウィンドウのタイトルを設定する(既定値は入力ファイル名)。

-loop number

<number> 回動画再生を繰り返す。0 は無制限繰り返しを意味する。

-vf filter_graph

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


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.3 高度なオプション

-pix_fmt format

このオプションは削除された。入力ピクセル形式を指定するには プライベートオプションを使うこと。

-stats

ストリーム所要時間、コーデックパラメーター、ストリーム内の現在位置、 およびオーディオ/ビデオ同期ドリフトを見せる。

-debug

特定のデバグ情報を印字する。

-bug

バグに対処する。

-vismv

モーションベクターを可視化する。

-fast

仕様に準拠しない最適化。

-genpts

pts を生成する。

-rtp_tcp

RTP/UDP の代わりに RTP/TCP プロトコル利用を強制する。 RTSP プロトコルでストリーミングしている場合にのみ意味を持つ。

-sync type

マスター時計をオーディオ(type=audio)、またはビデオ(type=video)、 または外部(type=ext)に設定する。既定値はオーディオ。マスター 時計はオーディオ-ビデオ同期を制御するために利用される。ほとんどの メディアプレイヤーはオーディオをマスター時計として利用するが、 (ストリーミングまたは高品質ブロードキャストのような)場合によっては それを変更する必要がある。このオプションは主にデバッグ目的のために 使用される。

-threads count

スレッド数を設定する。

-ast audio_stream_number

希望する音声ストリーム番号(0からカウントされる)を選択する。 この番号は全ての入力音声ストリームのリストを参照する。 番号が音声ストリームの数-1より大きければ、最後のものが選ばれる。 番号が負であれば音声再生が無効になる。

-vst video_stream_number

希望する映像ストリーム番号(0からカウントされる)を選択する。 この番号は全ての入力映像ストリームのリストを参照する。 番号が映像ストリームの数-1より大きければ、最後のものが選ばれる。 番号が負であれば映像再生が無効になる。

-sst subtitle_stream_number

希望するサブタイトルストリーム番号(0からカウントされる)を選択する。 この番号は全ての入力サブタイトルストリームのリストを参照する。 番号がサブタイトルストリームの数-1より大きければ、最後のものが選ばれる。 番号が負であればサブタイトルのレンダリングが無効になる。

-autoexit

ビデオが再生し終わったら終了する。

-exitonkeydown

キーが押されたら終了する。

-exitonmousedown

マウスのボタンが押されたら終了する。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

3.4 再生しているときには

<q, ESC>

停止する。

<f>

フルスクリーンに切替える。

<p, SPC>

一時停止する。

<a>

オーディオチャンネルを切替える。

<v>

ビデオチャンネルを切替える。

<t>

サブタイトルチャンネルを切替える。

<w>

オーディオ波形を見せる。

<left/right>

前方/後方に10秒シークする。

<down/up>

前方/後方に1分シークする。

<mouse click>

横幅の割合に応じてファイル内のパーセンテージでシークする。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4. 式の評価

算術的な式を評価する際に、Libav は内部の数式評価器を使います。 これは ‘libavutil/eval.h’ インターフェイスを通じて実装されて います。

式は1引数および2引数演算子、定数および関数を含みます。

2つの式 expr1expr2 を結合して別の式 "expr1;expr2" を構成することができます。 expr1expr2 が順に評価され、この新しい式は expr2 の値を自身の値とします。

次の2引数演算子が利用できます: +-*/^

次の1引数演算子が利用できます: +-

次の関数が利用できます:

sinh(x)
cosh(x)
tanh(x)
sin(x)
cos(x)
tan(x)
atan(x)
asin(x)
acos(x)
exp(x)
log(x)
abs(x)
squish(x)
gauss(x)
isnan(x)

x が NAN なら1.0、さもなくば0.0。

mod(x, y)
max(x, y)
min(x, y)
eq(x, y)
gte(x, y)
gt(x, y)
lte(x, y)
lt(x, y)
st(var, expr)

expr の値を内部の変数に格納できます。 var は値を格納する変数を示す番号で、 0から9までの範囲の値です。 この関数は内部の変数に格納される値を返します。

ld(var)

番号 var を持つ内部の変数の値をロードできます。 これは以前に st(var, expr) で格納されたものです。 この関数はロードされた値を返します。

while(cond, expr)

cond が0でない間、式 expr を評価します。 そして最後の expr の評価の値を返します。 cond がいつも false なら NAN を返します。

ceil(expr)

expr の値を大きくなる方向に最も近い整数に丸めます。 例えば、"ceil(1.5)" は "2.0" です。

floor(expr)

expr の値を小さくなる方向に最も近い整数に丸めます。 例えば、"floor(-1.5)"はs "-2.0 です。

trunc(expr)

expr の値を0の方向に最も近い整数に丸めます。 例えば、"trunc(-1.5)" は "-1.0" です。

以下の点に注意してください:

* は AND のように動作します

+ は OR のように動作します

したがって

 
A ならば B、さもなくば C

は次と同値です:

 
A*B + not(A)*C

A が1または0に評価されるなら、これは次と同じです:

 
A*B + eq(A,0)*C

C のコードでは、1引数および2引数関数の一覧を広げることができ、 解読される定数を定義することができるので、それらを式で利用することが できます。

評価器はまた International System number postfix を解読します。 ’i’ が postfix の直後に追加されると、10の累乗の代わりに2の累乗が 用いられます。’B’ postfix によって8倍になり、他の postfix の直後 または単独で利用できます。これによって例えば ’KB’、’MiB’、’G’ および ’B’ が postfix として許されます。

以下は利用できる International System postfix の一覧で、 10の累乗および2の累乗に対応する表示をともないます。

y

-24 / -80

z

-21 / -70

a

-18 / -60

f

-15 / -50

p

-12 / -40

n

-9 / -30

u

-6 / -20

m

-3 / -10

c

-2

d

-1

h

2

k

3 / 10

K

3 / 10

M

6 / 20

G

9 / 30

T

12 / 40

P

15 / 40

E

18 / 50

Z

21 / 60

Y

24 / 70


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5. デミュクサー

デミュクサーは特定の種類のファイルからマルチメディアストリームを 読むことを可能にする Libav での構成される要素です。

Libav のビルドを構成する際、既定では全ての対応されるデミュクサーが 有効になります。全ての利用可能なデミュクサーを configure オプション "–list-demuxers" を使って一覧できます。

configure オプション "–disable-demuxers" を使って全てのデミュクサーを 無効にできます。そしてオプション "–enable-demuxer=DEMUXER" で 1つのデミュクサーを選択的に有効にでき、オプション "–disable-demuxer=DEMUXER" で1つのデミュクサーを選択的に無効にできます。

ff* ツールの "-formats" オプションは有効になっているデミュクサーの 一覧を表示します。

現在利用可能なデミュクサーのいくつかの説明は以下の通りです。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.1 image2

画像ファイルデミュクサー。

このデミュクサーはパターンで指定された画像ファイルのリストを読みます。

パターンは文字列 "%d" または "%0Nd" を含めることができ、 これがこのパターンにマッチする各ファイル名の連番を表す文字の位置を 指定します。"%d0Nd" という形が使われた場合、各ファイル名の 番号を表す文字列は0で埋められており、N は番号を表す0で埋められた 桁の総数です。リテラル文字 ’%’ は文字列 "%%" を含むパターンで指定 されます。

このパターンが "%d" または "%0Nd" を含む場合、このパターンによって 指定されたファイル列の最初のファイル名は0から4までの間の番号を含まなければ ならず、後に続く全ての番号は連番でなければなりません。 この制限は取り払われる見込みです。

このパターンにはファイルに含まれる画像の形式によって自動的に決まる 接尾辞を含んでもよいです。

例えばパターン "img-%03d.bmp" は ‘img-001.bmp’, ‘img-002.bmp’, ..., ‘img-010.bmp’, などの形をしたファイル名の列にマッチします; パターン "i%%m%%g-%d.jpg" は ‘i%m%g-1.jpg’, ‘i%m%g-2.jpg’, ..., ‘i%m%g-10.jpg’, などの形をしたファイル名の列にマッチします。

各画像のサイズ、ピクセル形式、および形式は列にある全てのファイルで 同じでなければなりません。

次の例は、秒間10フレームの入力フレームレートとして、ファイル列 ‘img-001.jpeg’, ‘img-002.jpeg’, ..., の画像から映像を作るための ‘ffmpeg’ の使い方です:

 
ffmpeg -r 10 -f image2 -i 'img-%03d.jpeg' out.avi

このパターンは "%d" または "%0Nd" を含む必要はないことに 注意してください。例えば単一の画像ファイル ‘img.jpeg’ を 変換するために次のコマンドが使えます:

 
ffmpeg -f image2 -i img.jpeg img.png

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

5.2 applehttp

Apple HTTP Live Streaming デミュクサー。

このデミュクサーは全ての種類のストリームから全ての AVStreams を取り出します。 id フィールドはそのビットレートに応じたインデックス番号に設定されます。 AVStreams の discard フラグを設定する(ffplay では ’a’ または ’v’ を押す) ことによって、呼び出し側が実際に受け取るストリームの種類を決定できます。 ストリームが属する種類の全体のビットレートは "variant_bitrate" と名付け られているメタデータキーで取れます。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

6. ミュクサー

ミュクサーはマルチメディアストリームを特定の種類のファイルに 書き出すことを可能にする Libav での構成される要素です。

Libav のビルドを構成する際、既定ではサポートしているミュクサーが全て 有効になります。全ての利用可能なミュクサーを configure オプション --list-muxers を使って一覧できます。

configure オプション --disable-muxers を使って全てのミュクサーを 無効にできます。そしてオプション --enable-muxer=MUXER / --disable-muxer=MUXER で1つのミュクサーを選択的に有効 / 無効にできます。

ff* ツールの -formats オプションは有効になっているミュクサーの 一覧を表示します。

現在利用可能なミュクサーのいくつかの説明は以下の通りです。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

6.1 crc

CRC (Cyclic Redundancy Check) 検査形式。

このミュクサーは全ての入力音声および映像フレームの Adler-32 CRC を計算し表示します。既定では、CRC を計算する前に音声フレームは 符号付き16ビット raw audio に変換され、映像フレームは raw video に変換されます。

ミュクサーの出力は次の形をした単一の行からなります: CRC=0xCRC、ただし CRC は全てのデコードされた入力フレーム についての CRC を含む8桁になるように0埋めされた16進数です。

入力の CRC を計算し、それをファイル ‘out.crc’ に保存する 例として:

 
ffmpeg -i INPUT -f crc out.crc

次のコマンドで CRC を標準出力に書き出すことができます:

 
ffmpeg -i INPUT -f crc -

ffmpeg’ では、音声および映像コーデックおよび形式を指定することで 各フレームに対する出力形式を選択できます。PCM unsigned 8-bit に変換された 入力音声および MPEG-2 video に変換された入力映像の CRC を計算する 例として、 次のコマンドを使ってください:

 
ffmpeg -i INPUT -acodec pcm_u8 -vcodec mpeg2video -f crc -

framecrc ミュクサーも参照してください。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

6.2 framecrc

フレームごとの CRC (Cyclic Redundancy Check) 検査形式。

このミュクサーは各デコードされた音声および映像フレームに対する Adler-32 CRC を計算し表示します。既定では、CRC を計算する前に 音声フレームは符号付き16ビット raw audio に変換され、映像フレームは raw video に変換されます。

ミュクサーの出力は各音声および映像フレームにつき1行からなります: stream_index, frame_dts, frame_size, 0xCRC、 ただし CRC はデコードされたフレームの CRC を含む0埋めされた 8桁の16進数です。

入力のデコードされた各フレームの CRC を計算し、それをファイル ‘out.crc’ に保存する例として:

 
ffmpeg -i INPUT -f framecrc out.crc

次のコマンドで各デコードされたフレームの CRC を標準出力に書き出せます:

 
ffmpeg -i INPUT -f framecrc -

ffmpeg’ では、音声および映像コーデックおよび形式を指定することで 各フレームに対する出力形式を選択できます。PCM unsigned 8-bit に変換された デコードされた入力音声フレームおよび MPEG-2 video に変換されたデコードされた 入力映像フレームの CRC を計算するためには、次のコマンドを使ってください:

 
ffmpeg -i INPUT -acodec pcm_u8 -vcodec mpeg2video -f framecrc -

crc ミュクサーも参照してください。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

6.3 image2

画像ファイルのミュクサー。

このミュクサーは映像フレームを画像ファイルに書き出します。

出力ファイル名はパターンによって指定されます。このパターンは 順番に番号が振られているファイルの並びを生成するために使えます。 パターンは文字列 "%d" または "%0Nd" を含めることができ、 これがこのパターンにマッチする各ファイル名の連番を表す文字の位置を 指定します。"%0Nd" という形が使われた場合、各ファイル名の 番号を表す文字列は0で埋められており、N は番号を表す0で埋められた 桁の総数です。リテラル文字 ’%’ は文字列 "%%" を含むパターンで指定 されます。

このパターンが "%d" または "%0Nd" を含む場合、このパターンによって 指定されたファイル列の最初のファイル名は1を含み、あとに続く全ての番号は 連続していることになります。

このパターンにはファイルに含まれる画像の形式によって自動的に決まる 接尾辞を含んでもよいです。

例えばパターン "img-%03d.bmp" は ‘img-001.bmp’, ‘img-002.bmp’, ..., ‘img-010.bmp’, などの形をしたファイル名の列にマッチします。 パターン "img%%-%d.jpg" は ‘img%-1.jpg’, ‘img%-2.jpg’, ..., ‘img%-10.jpg’, などの形をしたファイル名の列にマッチします。

次の例は入力映像から各秒につき1つの画像を取得し ファイルの列 ‘img-001.jpeg’, ‘img-002.jpeg’, ...を を作るための ‘ffmpeg’ の使い方を示します;

 
ffmpeg -i in.avi -r 1 -f image2 'img-%03d.jpeg'

ffmpeg’ では、-f オプションで形式が指定されておらず、 かわりに出力ファイル名が画像ファイル形式を指定している場合は、 image2 ミュクサーが自動的に選択されることにに注意してください。 ですので上のコマンドは次のように書けます:

 
ffmpeg -i in.avi -r 1 'img-%03d.jpeg'

また、パターンは "%d" または "%0Nd" を含んでいなくてもよく、 例えば入力映像から単一の画像ファイル ‘img.jpeg’ を作成するには 次のコマンドが使えます:

 
ffmpeg -i in.avi -f image2 -vframes 1 img.jpeg

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

6.4 mpegts

MPEG トランスポートストリームミュクサー。

このミュクサーは ISO 13818-1 と ETSI EN 300 468 の一部を実装しています。

このミュクサーのオプションは以下のとおりです:

-mpegts_original_network_id number

original_network_id を設定します(既定では 0x0001)。 これは DVB でのネットワークの一意な識別子です。主な利用法は パス Original_Network_ID, Transport_Stream_ID を通じたサービスの 一意な識別にあります。

-mpegts_transport_stream_id number

transport_stream_id を設定します(既定では 0x0001)。これは DVB での transponder を識別します。

-mpegts_service_id number

DVB での program として知られている service_id を設定します(既定では 0x0001)。

-mpegts_pmt_start_pid number

PMT のための最初の PID を設定します(既定では 0x1000, 最大で 0x1f00)。

-mpegts_start_pid number

データパケットのための最初の PID を設定します(既定では 0x0100, 最大で 0x0f00)。

mpegts ミュクサーで認識できるメタデータの設定は service_providerservice_name です。これらが設定されていなければ、 service_provider の既定値は "Libav" であり、 service_name の既定値は "Service01" です。

 
ffmpeg -i file.mpg -acodec copy -vcodec copy \
     -mpegts_original_network_id 0x1122 \
     -mpegts_transport_stream_id 0x3344 \
     -mpegts_service_id 0x5566 \
     -mpegts_pmt_start_pid 0x1500 \
     -mpegts_start_pid 0x150 \
     -metadata service_provider="Some provider" \
     -metadata service_name="Some Channel" \
     -y out.ts

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

6.5 null

Null ミュクサー。

このミュクサーは出力ファイルを全く生成しません。主にテストや ベンチマークの目的で有用です。

例えば、‘ffmpeg’ でのデコーディングのベンチマークを取るには、 次のコマンドが使えます:

 
ffmpeg -benchmark -i INPUT -f null out.null

上のコマンドは ‘out.null’ ファイルを読み書きしませんが、 しかし ‘ffmpeg’ の構文で必要とされている出力ファイルを指定している ことに注意してください。

あるいはこのコマンドを次のようなに書くこともできます:

 
ffmpeg -benchmark -i INPUT -f null -

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

6.6 matroska

Matroska コンテナーミュクサー。

このミュクサーは matroska および webm コンテナー仕様を実装しています。

このミュクサーが理解できるメタデータ設定は以下のものです:

title=title name

シングルトラックに与える名前

language=language name

Matroska 言語フォームでトラックの言語を指定します

STEREO_MODE=mode

シングル映像トラックでの2つのビューのステレオ 3D レイアウト

mono

映像はステレオでない

left_right

Both views are arranged side by side, Left-eye view is on the left

bottom_top

Both views are arranged in top-bottom orientation, Left-eye view is at bottom

top_bottom

Both views are arranged in top-bottom orientation, Left-eye view is on top

checkerboard_rl

Each view is arranged in a checkerboard interleaved pattern, Left-eye view being first

checkerboard_lr

Each view is arranged in a checkerboard interleaved pattern, Right-eye view being first

row_interleaved_rl

Each view is constituted by a row based interleaving, Right-eye view is first row

row_interleaved_lr

Each view is constituted by a row based interleaving, Left-eye view is first row

col_interleaved_rl

Both views are arranged in a column based interleaving manner, Right-eye view is first column

col_interleaved_lr

Both views are arranged in a column based interleaving manner, Left-eye view is first column

anaglyph_cyan_red

All frames are in anaglyph format viewable through red-cyan filters

right_left

Both views are arranged side by side, Right-eye view is on the left

anaglyph_green_magenta

All frames are in anaglyph format viewable through green-magenta filters

block_lr

Both eyes laced in one Block, Left-eye view is first

block_rl

Both eyes laced in one Block, Right-eye view is first

例えば、以下のコマンドラインを使って 3D WebM クリップを作成できます:

 
ffmpeg -i sample_left_right_clip.mpg -an -vcodec libvpx -metadata STEREO_MODE=left_right -y stereo_clip.webm

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

7. Input Devices

入力デバイスは、Libav 上でシステムに取り付けられたマルチメディアデバイスから やって来るデータにアクセスすることを許す構成された要素です。

Libav のビルドを構成(configure)する際は、既定ではサポートされている全ての 入力デバイスが有効になっています。configure オプション "–list-indevs" を使うと 全ての利用可能な入力デバイスがリストアップされます。

configure オプション "–disable-indevs" を使えば全ての入力デバイスを無効にする ことができ、 "–enable-indev=INDEV" で特定の入力デバイスを選択して有効にでき、 または "–disable-indev=INDEV" で特定の入力デバイスを無効にできます。

ff* ツールのオプション "-formats" は(demuxer と一緒に)サポートされている入力デバイス のリストを表示します。

現在利用可能な入力デバイスの説明は以下の通りです。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

7.1 alsa

ALSA (Advanced Linux Sound Architecture) 入力デバイス。

configure でこの入力デバイスを有効にするには、システムに libasound がインストールされて いる必要があります。

このデバイスによって ALSA デバイスからキャプチャすることができます。キャプチャする デバイスの名前は ALSA カード識別子でなくてはなりません。

ALSA 識別は次の構文をもちます:

 
hw:CARD[,DEV[,SUBDEV]]

ただし DEVSUBDEV という成分は省略できます。

この3つの引数(順に: CARD,DEV,SUBDEV)は カード番号もしくは識別子、デバイス番号、そしてサブデバイス番号を 特定します。(-1 はいずれかを意味します)。

現時点でシステムによって認識されるカードのリストを見るには、ファイル ‘/proc/asound/cards’ および ‘/proc/asound/devices’ を確認してください。

例えば ‘ffmpeg’ によってある card id 0 の ALSA デバイスから キャプチャするためには、次のコマンドを実行します:

 
ffmpeg -f alsa -i hw:0 alsaout.wav

さらなる情報については、次を見てください: http://www.alsa-project.org/alsa-doc/alsa-lib/pcm.html


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

7.2 bktr

BSD 映像入力デバイス。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

7.3 dv1394

Linux DV 1394 入力デバイス。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

7.4 fbdev

Linux フレームバッファ入力デバイス。

Linux フレームバッファはコンピュータモニター上に、典型的にはコンソール上に グラフィックスを表示するためのハードウェアに依存しないグラフィック抽象 レイヤーです。フレームバッファはファイルデバイスノードを通じてアクセス され、たいていの場合は ‘/dev/fb0’ です。

より詳細な情報については、Linux ソースツリー内に含まれるファイル Documentation/fb/framebuffer.txt を読んでください。

ffmpeg’ でフレームバッファデバイス ‘/dev/fb0’ から記録する には:

 
ffmpeg -f fbdev -r 10 -i /dev/fb0 out.avi

以下のコマンドで単一のスクリーンショットイメージを撮ることができます:

 
ffmpeg -f fbdev -vframes 1 -r 1 -i /dev/fb0 screenshot.jpeg

http://linux-fbdev.sourceforge.net/ および fbset(1) も参照してください。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

7.5 jack

JACK 入力デバイス。

configure でこの入力デバイスを有効にするには、システムに libjack がインストールされて いる必要があります。

JACK 入力デバイスは1つまたはそれ以上の JACK 書き込み可能クライアントを 各音声チャンネルごとに1つ、client_name:input_N という名前で 作成します。ただし client_name はアプリケーションによって提供される 名前で、N はそのチャンネルを識別する番号です。 各書き込み可能なクライアントは Libav 入力デバイスに対して取得したデータ を送信します。

一旦1つまたはそれ以上の JACK 読み取り可能クライアントを作成すると、 1つまたはそれ以上の JACK 書き込み可能クライアントにそれらを接続する必要 があります。

JACK クライアントに接続をつないだり切ったりするためには、 ‘jack_connect’ や ‘jack_disconnect’ プログラムが使えます。 または、例えば ‘qjackctl’ のようなグラフィカルインターフェイスを 通じて行えます。

JACK クライアントやそのプロパティをリストアップするには、コマンド ‘jack_lsp’ を実行します。

以下は ‘ffmpeg’ で JACK 読み取り可能クライアントをキャプチャする やり方を示す例です。

 
# "ffmpeg" という名前のついた JACK 書き込み可能クライアントを作成します。
$ ffmpeg -f jack -i ffmpeg -y out.wav

# サンプルの jack_metro 読み取りクライアントを開始します。
$ jack_metro -b 120 -d 0.2 -f 4000

# 現在の JACK クライアントをリストアップします。
$ jack_lsp -c
system:capture_1
system:capture_2
system:playback_1
system:playback_2
ffmpeg:input_1
metro:120_bpm

# ffmpeg 書き込み可能クライアントに metro を接続します。
$ jack_connect metro:120_bpm ffmpeg:input_1

さらなる情報については、次を読んでください: http://jackaudio.org/


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

7.6 libdc1394

IIDC1394 入力デバイス、libdc1394 および libraw1394 に基づいています。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

7.7 oss

Open Sound System 入力デバイス。

入力デバイスに充てられるファイル名はその OSS 入力 を表すデバイスノードで、 それはたいていの場合 ‘/dev/dsp’ になります。

例えば ‘ffmpeg’ から ‘/dev/dsp’ をグラブするためには、 次のコマンドを使います。

 
ffmpeg -f oss -i /dev/dsp /tmp/oss.wav

OSS についてのさらなる情報には、次を見てください: http://manuals.opensound.com/usersguide/dsp.html


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

7.8 sndio

sndio 入力デバイス。

この入力デバイスを configure を通じて有効にするには、システムに libsndio がインストールされていなければなりません。

入力デバイスに与えるファイル名は sndio 入力デバイスを表すデバイス ノードであり、たいていの場合 ‘/dev/audio0’ に設定されます。

例えば、‘ffmpeg’ を使って ‘/dev/audio0’ からグラブするには 次のコマンドを使ってください:

 
ffmpeg -f sndio -i /dev/audio0 /tmp/oss.wav

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

7.9 video4linux および video4linux2

Video4Linux および Video4Linux2 入力映像デバイス。

グラブするデバイスの名前はファイルデバイスノードです。たいていの Linux システムは、デバイス(例えば USB ウェブカム)をシステムに差し込んだ際、 そういったノードを自動的に作成するようになっています。そして ‘/dev/videoN’ のような名前を持ちます。ただし N は そのデバイスに結びつけられた番号です。

Video4Linux と Video4Linux2 デバイスは限られた種類の widthxheight サイズとフレームレートのみに対応しています。いずれに対応しているかを確認するために、 例えば Video4Linux デバイスならコマンド ‘dov4l’、そして Video4Linux2 デバイスならコマンド ‘v4l-info’ が使えます。

デバイスのサイズが 0x0 に設定されている場合、入力デバイスは使用するサイズを 自動検出しようとします。 video4linux2 デバイスに限っては、フレームレートが0/0に設定されている場合、 入力デバイスはドライバーで既に設定されているフレームレートの値を使います。

Video4Linux 対応は Linux 2.6.30 から非推奨になっており、今後のバージョンで 無くなるでしょう。

以下が ff* ツールで video4linux デバイスを使う例です。

 
# Video4linux デバイスの入力をグラブし表示します。
# フレームレートは既定の25/1です。
ffplay -s 320x240 -f video4linux /dev/video0

# Video4linux2 デバイスの入力をグラブし表示します。サイズは自動調整です。
ffplay -f video4linux2 /dev/video0

# Video4linux2 デバイスの入力をグラブし録画します。サイズは自動調整です。
# フレームレートは既定で0/0なので、video4linux2 ドライバーから読み取ります。
ffmpeg -f video4linux2 -i /dev/video0 out.mpeg

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

7.10 vfwcap

VfW (Video For Windows) キャプチャ入力デバイス。

入力として渡すファイル名はキャプチャドライバー番号で、0から9の範囲です。 ドライバーの一覧を表示するために "list" をファイル名に使えます。 それ以外のファイル名はデバイス番号0として解釈されます。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

7.11 x11grab

X11 映像入力デバイス。

このデバイスで X11 ディスプレイの領域をキャプチャすることができます。

入力として渡すファイル名は次の構文を持ちます:

 
[hostname]:display_number.screen_number[+x_offset,y_offset]

hostname:display_number.screen_number でグラブする スクリーンlの X11 ディスプレイ名を指定します。hostname は省略 されてもよく、既定では "localhost" です。環境変数 DISPLAY が既定のディスプレイ名を含みます。

x_offset および y_offset でグラブされる領域の X11 スクリーン イメージの左上端からオフセットを指定します。これらは既定では0です。

さらなる細かい情報については X11 ドキュメンテーション(例えば man X)を 参照してください。

X11 ディスプレイのプロパティについての基本情報(例えば "name" または "dimensions" を grep する)を得るためには、‘dpyinfo’ プログラムを使ってください。

例えば ‘ffmpeg’ を使って ‘:0.0’ からグラブするには

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

# 位置 10,20 でグラブします。
ffmpeg -f x11grab -25 -s cif -i :0.0+10,20 out.mpg

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

8. Output Devices

出力デバイスは、Libav 上でシステムに取り付けられた出力デバイスへ マルチメディアデータを書き出すことを許す構成された要素です。

Libav のビルドを構成(configure)する際は、既定ではサポートされている全ての 出力デバイスが有効になっています。configure オプション "–list-outdevs" を使うと 全ての利用可能な出力デバイスがリストアップされます。

configure オプション "–disable-outdevs" を使えば全ての出力デバイスを無効にする ことができ、 "–enable-outdev=OUTDEV" で特定の出力デバイスを選択して有効にでき、 または "–disable-outdev=OUTDEV" で特定の出力デバイスを無効にできます。

ff* ツールのオプション "-formats" は(muxer と一緒に)サポートされている出力デバイス のリストを表示します。

現在利用可能な出力デバイスの説明は以下の通りです。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

8.1 alsa

ALSA (Advanced Linux Sound Architecture) 出力デバイス。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

8.2 oss

OSS (Open Sound System) 出力デバイス。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

8.3 sndio

sndio 音声出力デバイス。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9. プロトコル

プロトコルは、特定のプロトコルを使用するために必要になるリソースへの アクセスを可能にする Libav 上の構成される要素です。

Libav のビルドを構成(configure)する際は、既定ではサポートされている全ての プロトコルが有効になっています。configure オプション "–list-protocols" を使うと 全ての利用可能なプロトコルがリストアップされます。

configure オプション "–disable-protocols" を使えば全てのプロトコルを無効にする ことができ、 "–enable-protocol=PROTOCOL" で特定のプロトコルを選択して有効にでき、 または "–disable-protocol=PROTOCOL" で特定のプロトコルを無効にできます。

ff* ツールのオプション "-protocols" はサポートされているプロトコル のリストを表示します。

現在利用可能なプロトコルの説明は以下の通りです。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.1 applehttp

定型的なものとして、Apple HTTP Live Streaming 準拠のセグメント化 ストリーム。セグメントを表す M3U8 プレイリストとしては、標準ファイル プロトコルによってアクセスされるリモートの HTTP リソースや ローカルファイルになります。 既定では HTTP ですが、applehttp URI スキーム名の後に "+proto" のように指定することで、別の特定のプロトコルを宣言することもできます。 ただし proto は "file" もしくは "http" です。

 
applehttp://host/path/to/remote/resource.m3u8
applehttp+http://host/path/to/remote/resource.m3u8
applehttp+file://path/to/local/resource.m3u8

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.2 concat

物理的な連結プロトコル。

多くのリソースから順に、1つの独自のリソースであるかのように 読んだりシークしたりできます。

このプロトコルが受け取る URL は次の構文を持ちます:

 
concat:URL1|URL2|...|URLN

ただし URL1URL2、...、URLN は連結されるリソースの URL で、それぞれは異なるプロトコルを指定していてもかまいません。

例えばファイル列 ‘split1.mpeg’、‘split2.mpeg’、‘split3.mpeg’ を ‘ffplay’ で読むには、次のコマンドを使ってください:

 
ffplay concat:split1.mpeg\|split2.mpeg\|split3.mpeg

多くのシェルで特別扱いされる文字 "|" をエスケープしなけばならないかもしれない ことに注意してください。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.3 file

ファイルアクセスプロトコル。

1つのファイルから、または1つのファイルに向けて読むことができます。

例えば ‘ffmpeg’ でファイル ‘input.mpeg’ から読むには、次のコマンドを 使ってください:

 
ffmpeg -i file:input.mpeg output.mpeg

ff* ツールは既定ではこのファイルプロトコルを使います。 すなわち "FILE.mpeg" という名前で指定されたリソースは URL "file:FILE.mpeg" であるかのように解釈されます。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.4 gopher

Gopher プロトコル。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.5 http

HTTP (ハイパーテキストトランスファープロトコル)。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.6 mmst

TCP 越しの MMS (マイクロソフトメディアサーバー)プロトコル。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.7 mmsh

HTTP 越しの MMS (マイクロソフトメディアサーバー)プロトコル。

要求される構文は:

 
mmsh://server[:port][/app][/playpath]

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.8 md5

MD5 出力プロトコル。

書き出されるデータの MD5 ハッシュを計算し、クローズ時にそれを指示された 出力もしくは(指定されていなければ)標準出力に書き出します。実際のファイルに 書き出すことなく muxer をテストするために使えます。

いくつかの例を以下に挙げます。

 
# エンコードされる AVI ファイルの MD5 ハッシュをファイル output.avi.md5 に書き出します。
ffmpeg -i input.flv -f avi -y md5:output.avi.md5

# エンコードされる AVI ファイルの MD5 ハッシュを標準出力に書き出します。
ffmpeg -i input.flv -f avi -y md5:

フォーマットによっては(典型的には MOV)出力プロトコルがシーク可能である必要が あり、したがって MD5 出力プロトコルが一緒だと失敗することに注意してください。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.9 pipe

UNIX パイプアクセスプロトコル。

UNIX パイプに書き出したり読み込んだりすることができます。

受け取る構文は:

 
pipe:[number]

number はパイプのファイル記述子に対応する番号 (例えば標準入力なら0、標準出力なら1、標準エラー出力なら2)です。 number が指定されていなければ、既定ではこのプロトコルが 書き出しに用いられるときには標準出力が利用され、このプロトコルが 読み込みに用いられるときには標準入力が利用されます。

例えば ‘ffmpeg’ で標準入力から読むには:

 
cat test.wav | ffmpeg -i pipe:0
# ...これは次と同じです...
cat test.wav | ffmpeg -i pipe:

ffmpeg’ で標準出力に書くには:

 
ffmpeg -i test.wav -f avi pipe:1 | cat > test.avi
# ...これは次と同じです...
ffmpeg -i test.wav -f avi pipe: | cat > test.avi

フォーマットによっては(典型的には MOV)出力プロトコルがシーク可能である必要が あり、したがってパイプ出力プロトコルが一緒だと失敗することに注意してください。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.10 rtmp

リアルタイムメッセージングプロトコル。

リアルタイムメッセージングプロトコル(RTMP)は TCP/IP ネットワーク越しの マルチメディアコンテントのストリーミングに用いられます。

必要となる構文は:

 
rtmp://server[:port][/app][/playpath]

受け取るパラメータは以下の通りです:

server

RTMP サーバーのアドレスです。

port

利用される TCP ポートの番号です(既定では1935です)。

app

アクセスするアプリケーションの名前です。たいていの場合 RTMP サーバー にそのアプリケーションがインストールされているパスになります。 (例えば ‘/ondemand/’、‘/flash/live/’、など)。

playpath

app で指定されうアプリケーションから参照され再生される リソースのパスまたは名前です。"mp4:"が先頭につくかもしれません。

例えば ‘ffplay’ で RTMP サーバー "myserver" からアプリケーション "vod" で "sample" という名前のマルチメディアリソースを読むには:

 
ffplay rtmp://myserver/vod/sample

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.11 rtmp、rtmpe、rtmps、rtmpt、rtmpte

librtmp を通じてサポートされるリアルタイムメッセージングプロトコルとその バリエーションです。

構成(configure)の際に librtmp のヘッダとライブラリが存在しなければなりません。 "–enable-librtmp" で明示的にビルドを configure する必要があります。 有効にされるとネイティブの RTMP プロトコルは置き替えられます。

このプロトコルは、RTMP、HTTP トンネルによる RTMP (RTMPT)、暗号化 RTMP (RTMPE)、SSL/TLS オーバー RTMP (RTMPS)、そしてこれら暗号化タイプの トンネル版(RTMPTE、RTMPTS)をサポートするために必要ななるほとんどの クライアント機能と少数のサーバー機能を提供します。

必要となる構文は:

 
rtmp_proto://server[:port][/app][/playpath] options

ただし rtmp_proto は各 RTMP バリエーションに対応する文字列 "rtmp"、"rtmpt"、"rtmpe"、"rtmps"、"rtmpte"、"rtmpts" の1つで、 serverportapp および playpath は RTMP ネイティブプロトコルで指定されるものと同じ意味を持ちます。 options は空白で区切られた key=val の形のオプション のリストを含みます。

さらなる情報については librtmp のマニュアルページ(man 3 librtmp)を見てください。

例えば、‘ffmpeg’ を使ってリアルタイムに RTMP サーバーに向けてファイルをストリームするには:

 
ffmpeg -re -i myfile -f flv rtmp://myserver/live/mystream

ffplay’ を使って同じストリーミングを行なうには:

 
ffplay "rtmp://myserver/live/mystream live=1"

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.12 rtp

リアルタイムプロトコル。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.13 rtsp

RTSP は技術的には libavformat でのプロトコルハンドラではなく、demuxer であり かつ muxer です。この demuxer は通常の RTSP (RTP 越しにデータが転送される; これは例えば Apple や Microsoft で用いられています)も Real-RTSP (RDT 越しに データが転送される)もどちらにも対応しています。

muxer はストリームを RTSP ANNOUNCE を用いて、それに対応しているサーバー (現時点では Darwin Streaming Server と Mischa Spiegelmock の RTSP server) に向けて送信するために利用できます。

RTSP のために必要となる構文は:

 
rtsp://hostname[:port]/path[?options]

options& で区切られたリストです。以下のオプションが サポートされています:

udp

下位トランスポートプロトコルに UDP を使います。

tcp

下位トランスポートプロトコルに(RTSP コントロールチャンネル内で交互にした) TCP を使います。

multicast

下位トランスポートプロトコルに UDP マルチキャストを使います。

http

下位トランスポートプロトコルに http トンネリングを使います。これは 受動的なプロキシに対して便利です。

filter_src

ネゴシエーションしたピアのアドレスとポートのみからパケットを受け取ります。

複数の下位トランスポートプロトコルを指定することが許されており、その場合 一度に1つだけ試されます(1つの設定に失敗したら、次のものが試されます)。 muxer については、tcpudp のみがサポートされています。

UDP 越しにデータを受け取る際に、demuxer は受け取ったパケットを並べ直そうと します(これらが順番になっていない、もしくは全体的にパケットが失われている かもしれないからです)。これを有効にするためには、 AVFormatContext の max_delay フィールドで最大の遅延を指定しなければなりません。

ffplay’ でマルチビットレート Real-RTSP ストリームを観る際、 表示するストリームとして -vst n および -ast n で 映像と音声それぞれを選択できます。そして作動中に va を押すことで切り替えることが可能です。

コマンドラインの例:

UDP 越しのストリームを観る、並べ直しの最大遅延は0.5秒:

 
ffplay -max_delay 500000 rtsp://server/video.mp4?udp

HTTP トンネル経由のストリームを観る:

 
ffplay rtsp://server/video.mp4?http

他人に観せるために、RTSP サーバーにストリームをリアルタイムで送信する:

 
ffmpeg -re -i input -f rtsp -muxdelay 0.1 rtsp://server/live.sdp

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.14 sap

セッションアナウンスメントプロトコル(RFC 2974)。これは技術的には libavformat のプロトコルハンドラではなく、muxer および demuxer です。 分離されたポート上で定期的にストリームに対して SDP を通知することによって、 RTP ストリームのシグナリングのために使用されます。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.14.1 Muxer

muxer に渡される SAP url のための構文は次の通りです:

 
sap://destination[:port][?options]

RTP パケットはポート portdestination に対して送信され、 ポートが指定されていない場合にはポート 5004 に対して送信されます。 options& で区切られたリストです。以下のオプションを サポートしています:

announce_addr=address

通知を送りつける送信先の IP アドレスを指定する。 省略されていれば、通知は共通して利用されている SAP アナウンスメント マルチキャストアドレス 224.2.127.254 (sap.mcast.net)に、もしくは destination が IPv6 アドレスならば ff0e::2:7ffe に送信される。

announce_port=port

通知を送りつけるポートを指定する、指定されなければ 既定で 9875。

ttl=ttl

通知と RTP パケットのための time to live 値を指定する、 既定では 255。

same_port=0|1

1が設定されれば、全ての RTP ストリームを同じポート対で送る。0(既定) ならば、全てのストリームは独自のポートに送られ、各ストリームは先のものより 2つ数字の大きいポート番号になる。 VLC/Live555 では、ストリームを受け取れるように、これを1に設定することが求められる。 libavformat で受信するための RTP スタックは各ストリームが一意なポートで送られる 必要がある。

コマンドラインの例は以下の通り。

VLC で観るために、ローカルサブネットにストリームをブロードキャストするためには:

 
ffmpeg -re -i input -f sap sap://224.0.0.255?same_port=1

同様に、ffplay で観るには:

 
ffmpeg -re -i input -f sap sap://224.0.0.255

そして IPv6 越しに ffplay で観るには:

 
ffmpeg -re -i input -f sap sap://[ff0e::1:2:3:4]

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.14.2 Demuxer

demuxer に与える SAP url のための構文は:

 
sap://[address][:port]

address は通知のために待ち受けるマルチキャストアドレスであり、 省略されれば、既定の 224.2.127.254 (sap.mcast.net)が用いられる。 port は待ち受けるポートであり、省略された場合9875である。

demuxer は与えられたアドレスとポートで通知を待ち受ける。 いったん通知を受け取るとすぐに、特定のストリームを受信しようとする。

コマンドラインの例は以下の通り。

通常の SAP マルチキャストアドレスで通知される最初のストリームを再生するには:

 
ffplay sap://

既定の IPv6 SAP マルチキャストアドレスで通知される最初のストリームを再生するには:

 
ffplay sap://[ff0e::2:7ffe]

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.15 tcp

トランスミッションコントロールプロトコル。

TCP url のために要求される構文は以下のとおり:

 
tcp://hostname:port[?options]
listen

外から入ってくる接続を待ち受ける

 
ffmpeg -i input -f format tcp://hostname:port?listen
ffplay tcp://hostname:port

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

9.16 udp

ユーザーデータグラムプロトコル。

UDP url に要する構文は:

 
udp://hostname:port[?options]

options は & で区切られた key=val の形のオプションのリストを含む。 サポートされているオプションのリストは以下の通り:

buffer_size=size

UDP バッファサイズをバイト数で設定する

localport=port

バインドするローカル UDP ポートを上書きする

pkt_size=size

UDP パケットのバイトサイズを設定する

reuse=1|0

UDP ソケットの再利用を明示的に有効または無効にする

ttl=ttl

time to live 値を設定する(マルチキャストについてのみ)

connect=1|0

UDP ソケットを connect() で初期化する。 この場合、送り先アドレスは後から ff_udp_set_remote_url で変えることができない。 送り先のアドレスが開始時に分からない場合、このオプションを ff_udp_set_remote_url で指定することもできる。 これによって getsockname でパケットの送り元アドレスを見つけることができ、 書き出しの際 "destination unreachable" を受け取った場合には AVERROR(ECONNREFUSED) を返す。 受信にlについては、これによって指定されているピアのアドレス/ポートからのパケット のみを受け取るという効用がある。

udp プロトコルの ‘ffmpeg’ での利用例は以下の通り。

UDP 越しにリモートエンドポイントへストリームするには:

 
ffmpeg -i input -f format udp://hostname:port

188 サイズの UDP パケットを使い、大きい入力バッファで UDP 越しに mpegts 形式でストリームするには:

 
ffmpeg -i input -f mpegts udp://hostname:port?pkt_size=188&buffer_size=65535

UDP 越しにリモートエンドポイントから受け取るには:

 
ffmpeg -i udp://[multicast-address]:port

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

10. フィルターグラフの説明

フィルターグラフは結びつけられたフィルターの有向グラフです。サイクルを含んで いてもよく、フィルターの対の間で複数のリンクがあってもかまいません。 それぞれのリンクは、入力を受け取るフィルター側に結びつけられた1つの 入力パッドと、出力を受け取るフィルターに関係付けられた1つの出力パッドを 持ちます。

フィルターグラフ各フィルターはアプリケーションに登録されたフィルタークラスの インスタンスであり、このクラスはその機能とそのフィルターの入力および出力の パッドの数を定義します。

入力パッドを持たないフィルターは"ソース"と呼ばれ、出力パッドを持たないフィルターは "シンク"と呼ばれます。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

10.1 フィルターグラフの構文

フィルターグラフはテキストでの表記を使って表現することができます。 この表記は ff* ツールの -vf-af オプションで認識され、 ‘libavfilter/avfiltergraph’ 内の av_parse_graph() 関数で 定義されています。

フィルターチェーンは関係するフィルターの列からなり、それぞれ その列での直前のものに関係しています。フィルターチェーンは","で区切られた フィルター記述のリストで表現されます。

フィルターグラフはフィルターチェーンの列からなります。 フィルターチェーンの列は";"で区切られたフィルターチェーン記述のリストで 表現されます。

フィルターは次の形の文字列で表現されます: [in_link_1]...[in_link_N]filter_name=arguments[out_link_1]...[out_link_M]

filter_name は記述されるフィルターがインスタンスとなるフィルター クラスの名前で、プログラムに登録されているフィルタークラスの名前でなければ なりません。 フィルタークラスの名前には省略可能な文字列"=arguments"が 続きます。

arguments はフィルターのインスタンスを初期化するために 用いられるパラメータを含む文字列で、以下のフィルターの説明の中で 説明されています。

引数のリストは最初と最後を示す文字"’"を使ってクォートすることができ、 文字’\’でクォートされたテキスト内でこの文字をエスケープするために 使えます; さもなくば、引数の文字列は次の(集合"[]=;,"に属する)特殊文字 が出てくるところで終了するものと見なされます。

フィルターの名前と引数には省略可能なリンクラベルのリストが前や後ろに つきます。 リンクラベルによってフィルターの出力および入力パッドに関連付けられたリンクに 名前をつけることができます。前につくラベルが in_link_1 ... in_link_N ならフィルターの入力パッドに関連付けられ、後ろにつくラベル out_link_1 ... out_link_M は出力パッドに関連付けられます。

フィルターグラフに同じ名前の2つのリンクラベルが見つかる場合、 対応する入力および出力パッドの間のリンクが作成されます。

出力パッドにラベルがない場合、それは既定ではそのフィルターチェーンの 次のフィルターのラベルがない入力パッドにリンクされます。 例えばフィルターチェーンで:

 
nullsrc, split[L1], [L2]overlay, nullsink

となっていたら、split フィルターのインスタンスは2つの出力パッドを 持たなければならず、overlay フィルターのインスタンスは2つの入力パッドを 持ちます。split の最初の出力パッドは"L1"とラベルがついています。 2つ目の出力パッドは overlay の2つ目の入力パッドにリンクされます。 これらはどちらもラベルがついていません。

完全なフィルターチェーンでは全てのラベルのないフィルター入力および出力 パッドは結びついていなければなりません。フィルターグラフは、その全ての フィルターチェーンで全ての入力および出力パッドが結びついているときに 妥当と見なされます。

以下はフィルターグラフの構文の BNF 記述です:

 
NAME             ::= 英数文字および '_' の列。
LINKLABEL        ::= "[" NAME "]"
NAME             ::= 英数文字および '_' の列
LINKLABEL        ::= "[" NAME "]"
LINKLABELS       ::= LINKLABEL [LINKLABELS]
FILTER_ARGUMENTS ::= 文字の列(最終的にクォートされる)
FILTER           ::= [LINKNAMES] NAME ["=" ARGUMENTS] [LINKNAMES]
FILTERCHAIN      ::= FILTER [,FILTERCHAIN]
FILTERGRAPH      ::= FILTERCHAIN [;FILTERGRAPH]

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

11. 音声フィルター

Libav ビルドを構成(configure)する際に、–disable-filters を使って 既存のフィルターをいずれも無効にすることができる。 構成の出力(configure output)にはそのビルドに含まれる音声フィルターが 表示されている。

以下は現時点で利用できる音声フィルターの説明である。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

11.1 anull

音声ソースを変更せずに出力に渡す。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

12. 音声ソース

以下は現在利用可能な音声ソースの説明である。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

12.1 anullsrc

Null 音声ソース、音声フレームを一切返さない。これは主にテンプレートとして 有用であり、分析/デバッギングツールの中で用いるためのものである。

これは次の形をした文字列を省略可能なパラメータとして受け取る: sample_rate:channel_layout

sample_rate はサンプルレートを指定し、既定では 44100 とされる。

channel_layout チャンネルレイアウトを指定し、整数値または チャンネルレイアウトを表す文字列をとれる。channel_layout の既定の 値は3であり、CH_LAYOUT_STEREO に対応する。

文字列とチャンネルレイアウトの値との間のマッピングについては ‘libavcodec/audioconvert.c’ にある channel_layout_map の定義を 確認すること。

いくつかの例は以下の通り:

 
# サンプルレートを48000 Hz に、チャンネルレイアウトを CH_LAYOUT_MONO に設定する。
anullsrc=48000:4

# 同じく
anullsrc=48000:mono

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

13. 音声シンク

以下は現在利用可能な音声シンクの説明である。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

13.1 anullsink

Null 音声シンク、入力音声に対し全く何もしない。これは主にテンプレートとして 有用であり、分析/デバッギングツールで用いるためのものである。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

14. 映像フィルター

Libav ビルドを構成(configure)する際に、–disable-filters を使って 既存の映像フィルターをいずれも無効にすることができる。 構成の出力(configure output)にはそのビルドに含まれる映像フィルターが 表示されている。

以下は現時点で利用できる映像フィルターの説明である。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

14.1 blackframe

(ほぼ)真っ黒なフレームを検出する。章の変わり目やコマーシャルを検出 するのに有用となりうる。出力される行は検出されたフレームのフレーム数、 黒のパーセンテージ、(分かるなら)ファイルでの位置もしくは-1、および 秒単位でのタイムスタンプからなる。

出力される行を表示するには、ログレベルを少なくとも AV_LOG_INFO に 設定する必要がある。

このフィルターは次の構文を受け取る:

 
blackframe[=amount:[threshold]]

amount は閾値以下にならなくてはならないピクセルのパーセンテージであり、 既定では98になる。

threshold はピクセルの値がこれを下回ると黒と見なされる閾値であり、 既定では32になる。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

14.2 copy

入力ソースを変更せずに出力にコピーする。 主にテストの目的のために有用である。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

14.3 crop

入力映像を out_w:out_h:x:y に切り取る。

このパラメータは以下の定数を含む表現である:

E, PI, PHI

e(オイラー数)、pi(ギリシャ文字のパイ)、PHI(黄金比)それぞれ対応する数学的近似値

x, y

x および y についての計算された値。これらは各新しいフレームで 評価される。

in_w, in_h

入力の幅および高さ

iw, ih

in_w および in_h と同じ

out_w, out_h

出力の(切り取られた)幅および高さ

ow, oh

out_w および out_h と同じ

n

0から始まる入力フレームの数

pos

入力フレームのファイルの中での位置、不明なら NAN

t

秒で表されたタイムスタンプ、入力タイムスタンプが不明なら NAN

パラメータ out_w および out_h は出力の(切り取られた)映像の 幅および高さのための表現を指定する。これらはフィルターのコンフィグレーション の時点で評価される。

out_w の既定値は "in_w" であり、out_h の既定値は "in_h" である。

out_w のための表現は out_h の値に依存することがあり、 out_h のための表現は out_w に依存することがあるが、 x および y の値には依存しないはずである。なぜなら x および yout_w および out_h の後で 評価からである。

パラメータ x および y は出力の(切り取られていない)領域 の左上隅の位置のための表現を指定する。これらは各フレームについて 評価される。評価された値が妥当でなければ、最も近い妥当な値に近似 される。

x の既定の値は "(in_w-out_w)/2" であり、y の既定の値は "(in_h-out_h)/2" である。これは入力画像の中央に切り取られた領域を 設定することになる。

x のための表現は y に依存することがあり、y の ための表現は x に依存することがある。

いくつかの例は以下の通り:

 
# サイズ 100x100 で入力領域の中央を切り取る
crop=100:100

# 入力映像の 2/3 のサイズで入力領域の中央を切り取る
"crop=2/3*in_w:2/3*in_h"

# 入力映像の中央を正方形に切り取る
crop=in_h

# 左上隅の位置を 100:100、右下隅を入力映像の右下隅に合わせて
# 矩形の範囲を定める
crop=in_w-100:in_h-100:100:100

# 左右のボーダーから10ピクセルを切り取り、上下のボーダーから20ピクセルを
# 切り取る
"crop=in_w-2*10:in_h-2*20"

# 入力画像の右下4分の1のみを残す
"crop=in_w/2:in_h/2:in_w/2:in_h/2"

# 黄金分割になるように縦を切り取る
"crop=in_w:1/PHI*in_w"

# 震動効果
"crop=in_w/2:in_h/2:(in_w-out_w)/2+((in_w-out_w)/2)*sin(n/10):(in_h-out_h)/2 +((in_h-out_h)/2)*sin(n/7)"

# タイムスタンプに依存した不規則なカメラ効果
"crop=in_w/2:in_h/2:(in_w-out_w)/2+((in_w-out_w)/2)*sin(t*10):(in_h-out_h)/2 +((in_h-out_h)/2)*sin(t*13)"

# y の値に依存した x を設定する
"crop=in_w/2:in_h/2:y:10+10*sin(n/10)"

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

14.4 cropdetect

切り取るサイズを自動検出する。

切り取りに必要となるパラメータを計算し、ロギングのシステムを通じて推奨される パラメータを表示する。検出された寸法は入力映像の黒でない領域に対応する。

これは次の構文を受け取る:

 
cropdetect[=limit[:round[:reset]]]
limit

閾値、何もない(0)から全て(255)までを自由に選択することができる。 既定では24。

round

幅/高さが分割されるべき値、既定では16。 オフセットは自動的に映像の中心に調節される。 偶数の寸法のみ(4:2:2 の映像で必要となる)を得るには2を用いること。 たいていの映像コーデックでエンコーディングする際には16が最良。

reset

以前に検出された最大の映像領域をリセットし、現在の最適な 切り取り領域を検出し始めるのにどれだけのフレームを 過ぎてからにするかを決めるカウンター。 既定では0。

これはチャンネルのロゴが映像領域を歪ませる際に有用である。 0はリセットせず再生中に出てきた最大の領域を返すように 指示する。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

14.5 drawbox

入力イメージに色付けされた箱を描く。

これは次の構文を受け取る:

 
drawbox=x:y:width:height:color
x, y

箱の左上隅を指定する。既定では0。

width, height

箱の幅および高さを指定する。0なら入力の幅および高さとして解釈される。 既定では0。

color

描く箱の色を指定する。(大文字小文字を区別しない)色の名前もしくは 列 0xRRGGBB[AA] をとりうる。

いくつかの例は以下の通り:

 
# 入力画像の縁に沿って黒い箱を描く
drawbox

# 50%の透明度の赤で箱を描く
drawbox=10:20:200:60:red@0.5"

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

14.6 drawtext

文字列のテキストまたは指定のファイルのテキストを libfreetype ライブラリ を使って映像の上に描画します。

このフィルターのコンパイルを有効にするには FFmpeg を configure するときに --enable-libfreetype をつける必要があります。

またこのフィルターは strftime() 文字列を理解し、それに従って展開します。 strftime() のドキュメンテーションを確認してください。

このフィルターはf":" で区切られた key=value のペアのリストを パラメーターとして受け取ります。

受け取るパラメーターの説明は以下の通りです。

fontfile

テキストを描画するのに使うフォントファイルです。パスを含めなければ なりません。このパラメーターは必須です。

text

描画されるテキストの文字列です。テキストは UTF-8 でエンコードされた 文字の列でなければなりません。 パラメーター textfile でファイルが指定されていない場合、 このパラメーターは必須です。

textfile

描画されるテキストを含むテキストファイルです。テキストは UTF-8 で エンコードされた文字の列でなければなりません。

パラメーター text でテキストの文字列が指定されていない場合、 このパラメーターは必須です。

text と textfile が両方指定されている場合はエラーになります。

x, y

映像フレーム内でテキストが描画される場所の位置です。 出力画像の左上隅からの相対位置です。

x および y の既定値は0です。

fontsize

テキストを描画するためのフォントサイズです。 fontsize の既定値は16です。

fontcolor

フォントを描画するための色です。 文字列(例えば "red")か 0xRRGGBB[AA] の形式(例えば"0xff000033") で省略可能なアルファ値つきの形です。 fontcolor の既定値は "black" です。

boxcolor

テキストの周囲にボックスを描画するための色です。 文字列(例えば "red")か 0xRRGGBB[AA] の形式(例えば"0xff000033") で省略可能なアルファ値つきの形です。 fontcolor の既定値は "white" です。

box

背景色を使ってテキストの周囲を描画するために用いられます。 値は 1 (有効) または 0 (無効)です。 box の既定値は 0 です。

shadowx, shadowy

テキストの影のためのテキストの位置からの x および y の相対位置です。 これらは正または負の値をとれます。 既定値はどちらも "0" です。

shadowcolor

描画されるテキストの後ろの影を描画するために用いられる色です。 文字列(例えば "red")か 0xRRGGBB[AA] の形式(例えば"0xff000033") で省略可能なアルファ値つきの形です。 shadowcolor の既定値は "black" です。

ft_load_flags

フォントを読み込むために用いられるフラグです。

これらのフラグは libfreetype でサポートされているフラグに対応し、 以下の値の組み合わせです:

default
no_scale
no_hinting
render
no_bitmap
vertical_layout
force_autohint
crop_bitmap
pedantic
ignore_global_advance_width
no_recurse
ignore_transform
monochrome
linear_design
no_autohint
end table

既定値は "render" です。

詳しくは libfreetype の FT_LOAD_* フラグについてのドキュメンテーションに あたってください。

tabsize

タブを描画するためのスペースの数の大きさです。 既定値は 4 です。

例えば、コマンド:

 
drawtext="fontfile=/usr/share/fonts/truetype/freefont/FreeSerif.ttf: text='Test Text'"

は "Test Text" を FreeSerif フォントで、省略可能なパラメーターは既定値を 使って描画します。

コマンド:

 
drawtext="fontfile=/usr/share/fonts/truetype/freefont/FreeSerif.ttf: text='Test Text':\
          x=100: y=50: fontsize=24: fontcolor=yellow@0.2: box=1: boxcolor=red@0.2"

は ’Test Text’ をサイズ 24 の FreeSerif フォントで(スクリーンの左上隅から) x=100 および y=50 の位置に、テキストを黄色、周囲のボックスを赤にして 描画します。テキストもボックスもどちらも 20% の透明度を持ちます。

パラメーターリストの中でスペースを使っていなければ、二重引用符はいらないという ことに注意してください。

libfreetype についてより詳しくは、以下を確認してください: http://www.freetype.org/.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

14.7 fade

入力映像にフェードイン/フェードアウト効果を適用します。

これは次のパラメータを受け取ります: type:start_frame:nb_frames

type は効果の種類がフェードインなら "in"、フェードアウトなら "out" を指定します。

start_frame はフェード効果が適用される開始フレームの番号を指定 します。

nb_frames はフェード効果が持続しなくてはならないフレームの個数 を指定します。フェードイン効果の最後には出力映像は入力映像と同じ 度合いになり、フェードアウト遷移の最後には出力映像は完全に黒く なります。

以下はいくつかの使用例で、テストシナリオとしても有用です。

 
# 映像の最初の30フレームをフェードインします
fade=in:0:30

# 200フレームの映像で最後の45フレームをフェードアウトします
fade=out:155:45

# 1000フレームの映像で最初の25フレームをフェードインし、最後の25フレームをフェードアウトします
fade=in:0:25, fade=out:975:25

# 最初の5フレームを黒くし、5から24番フレームでフェードインします
fade=in:5:20

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

14.8 fieldorder

入力映像のフィールドオーダーを変換します。

このフィルターは、入力のインターレースされた映像を変換するために要求される フィールドオーダーを指定する単一のパラメーターを受け取ります。このパラメーターは 次の値のいずれかを取れます:

0 または bff

出力下部フィールドが先頭

1 または tff

出力上部フィールドが先頭

既定の値は "tff" です。

変換は1ラインずつ上もしくは下に画像内容をシフトし、かつ残りのラインに 適切な画像内容を充てることによって実現されます。 この手法は大抵のブロードキャストフィールドオーダー変換器と合っています。

入力映像にインターレースであるというフラグがない場合、または要求される 出力フィールドオーダーが与えられていれば、このフィルターはやってくる映像を 変更しません。

このフィルターは、下部フィールド先頭の PAL DV マテリアルを/へ変換する際に とても便利です。

例えば:

 
./ffmpeg -i in.vob -vf "fieldorder=bff" out.dv

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

14.9 fifo

入力イメージをバッファし、かつ要求された時にそれらを送る。

このフィルターは主に libavfilter フレームワークによって自動的に 挿入される際に有用である。

このフィルターはパラメータを受け取らない。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

14.10 format

入力映像を指定されたピクセル形式の1つに変換する。 Libavfilter は次のフィルターの入力にサポートされているうちの1つを 選択しようと試みる。

このフィルターは、例えば "yuv420p:monow:rgb24" のように、":" によって 区切られたピクセル形式名のリストを引数として受け取る。

以下にいくつかの例:

 
# 入力映像を形式 "yuv420p" に変換する
format=yuv420p

# 入力映像をリストにあるいずれかの形式に変換する
format=yuv420p:yuv444p:yuv410p


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

14.11 frei0r

入力映像に frei0r 効果を適用する。

このフィルターのコンパイルを有効にするには、frei0r ヘッダをインストール し、–enable-frei0r とともに Libav を configure すること。

このフィルターは次の構文をサポートする:

 
filter_name[{:|=}param1:param2:...:paramN]

filter_name はロードする frei0r 効果の名前である。環境変数 FREI0R_PATH が定義されていれば、FREIOR_PATH の中のコロンで 区切られたリストで指定されたディレクトリのいずれかから frei0r 効果が 探索され、さもなくば次の順番で標準的な frei0r のパスから探索される: ‘HOME/.frei0r-1/lib/’、‘/usr/local/lib/frei0r-1/’、 ‘/usr/lib/frei0r-1/’。

param1param2、...、paramN はその frei0r 効果に対する パラメータを指定する。

frei0r 効果のパラメータはブール値(その値は "y" および "n" で指定される)、 倍精度浮動小数点数、色(R/G/B という構文で指定される、ただし RG、および B は 0.0 から 1.0 までの浮動小数点数、または av_parse_color() の色の記述によって指定される)、位置(X/Y という構文で指定される、ただし XY は浮動小数点数)、および 文字列を取ることができる。

パラメータの数と種類はロードされる効果に依存する。効果のパラメータが 指定されていなければ、既定値が設定される。

以下はいくつかの例:

 
# distort0r 効果を適用、最初の2つの倍精度浮動小数点数パラメータを設定
frei0r=distort0r:0.5:0.01

# colordistance 効果を適用、最初のパラメータとして色をとる
frei0r=colordistance:0.2/0.3/0.4
frei0r=colordistance:violet
frei0r=colordistance:0x112233

# perspective 効果を適用、画像位置の左上と右上を指定
frei0r=perspective:0.2/0.2:0.8/0.2

さらなる情報については以下を見ること: http://piksel.org/frei0r


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

14.12 gradfun

フラットに近い領域を8ビット色深度に切り捨てたときにときどき生じる帯状の アーティファクトを修正します。 帯があるところにあるべき変化を補間し、それらをぼやかします。

このフィルターは再生のためのみに設計されています。ロスのある圧縮より前に これを使わないでください。圧縮はぼやかしを失くし帯を取り戻していまいがち だからです。

このフィルターは’:’で区切られた2つの省略可能なパラメータを受け取ります: strength:radius

strength はこのフィルターが1つのピクセルで変更できる最大の量です。 またフラットに近い領域を検出する閾値でもあります。 .51から255までの値をとることができ、既定では1.2で、範囲外の値は妥当な値に 切り詰められます。

radius は変化が適用される近傍です。より大きな半径にするとより スムーズな変化になりますが、同時にこのフィルターがより詳細な領域の近くにある ピクセルを変更するのを妨げます。取れる値は8-32で、既定では16です。 範囲外の値は妥当な値に切り詰められます。

 
# 既定のパラメータ
gradfun=1.2:16

# 半径を省略
gradfun=1.2

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

14.13 hflip

入力映像を水平方向に反転させる。

例えば ‘ffmpeg’ で入力の映像を水平方向に反転させるには:

 
ffmpeg -i in.avi -vf "hflip" out.avi

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

14.14 hqdn3d

高精度/品質 3d ノイズ除去フィルター。このフィルターは画像ノイズを減らすことで 滑らかな画像を生成し静止画像を本当に静止させることを目指している。 それによって圧縮可能性が高まるはずである。

以下の省略可能なパラメータを受け取る: luma_spatial:chroma_spatial:luma_tmp:chroma_tmp

luma_spatial

空間 luma 強度を指定する非負の浮動小数点数、 既定では4.0

chroma_spatial

空間 chroma 強度を指定する非負の浮動小数点数、 既定では3.0*luma_spatial/4.0

luma_tmp

luma 時間強度を指定する浮動小数点数、既定では 6.0*luma_spatial/4.0

chroma_tmp

chroma 時間強度を指定する浮動小数点数、既定では luma_tmp*chroma_spatial/luma_spatial


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

14.15 noformat

次のフィルターの入力に指定されたピクセル形式のいずれも使わないように libavfilter に強制する。

このフィルターは、例えば "yuv420p:monow:rgb24" のように、":" で区切られた ピクセル形式名のリストを引数として受け取る。

以下はいくつかの例:

 
# "yuv420p" と異なる形式のどれかを使って vflip フィルターに
# 入力するように libavfilter に強制する
noformat=yuv420p,vflip

# 入力映像をリストにある形式以外の形式に変換する
noformat=yuv420p:yuv444p:yuv410p

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

14.16 null

映像ソースを変更せずに出力に渡す。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

14.17 ocv

libopencv を使って映像変換をほどこす。

このフィルターを有効にするには libopencv ライブラリとヘッダをインストールし Libav を –enable-libopencv で configure すること。

このフィルターは次のパラメータを受け取る: filter_name{:=}filter_params.

filter_name は適用する libopencv フィルターの名前である。

filter_params は libopencv フィルターに渡すパラメータを指定する。 指定されていなければ既定の値が仮定される。

より正確な情報については公式の libopencv の文書を参照すること: http://opencv.willowgarage.com/documentation/c/image_filtering.html

以下に対応している libopencv フィルターのリストが続く。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

14.17.1 dilate

特定の構成要素を使ってイメージを膨らませる。 このフィルターは libopencv 関数 cvDilate に対応する。

これはパラメータを受け取る: struct_el:nb_iterations

struct_el は構成要素を表し、次の構文をとる: colsxrows+anchor_xxanchor_y/shape

cols および rows は構成要素の列と行の数を表し、 anchor_x および anchor_y はアンカーポイント、そして shape は構成要素の形状を表し、値として "rect"、"cross"、"ellipse"、"custom" のうちの1つをとる。

shape の値が "custom" なら、"=filename"の形の文字列が 続かなくてはならない。名前 filename を持つファイルはバイナリイメージを 表すと仮定され、各印字可能な文字は明るいピクセルに対応する。custom shape が使われる際、colsrows は無視され、代わりに 列と行の数は読み込まれるファイルにあるものと仮定される。

struct_el の既定値は"3x3+0x0/rect"である。

nb_iterations はイメージに適用される変換の回数を指定し、 既定では1である。

以下にいくつかの例:

 
# 既定値を使う
ocv=dilate

# 構成要素を使って 5x5 クロスに膨らませ、2回繰り返す
ocv=dilate=5x5+2x2/cross:2

# 形状をファイル diamond.shape から読み、2回繰り返す
# このファイル diamond.shapeには次のような文字のパターンが含まれている:
#   *
#  ***
# *****
#  ***
#   *
# 指定されている cols と rows は無視される(しかしアンカーポイント座標は無視されない)
ocv=0x0+2x2/custom=diamond.shape:2

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

14.17.2 erode

特定の構成要素を使ってイメージを侵食する。 このフィルターは libopencv 関数 cvErode に対応する。

このフィルターはパラメータを受け取る: struct_el:nb_iterations、 これは dilate フィルターと同じ意味を持ち同じように使われる。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

14.17.3 smooth

入力映像をスムーズにする。

このフィルターは次のパラメータをとる: type:param1:param2:param3:param4.

type はほどこすスムーズフィルターの種類で、次の値のいずれかをとる: "blur"、"blur_no_scale"、"median"、"gaussian"、"bilateral"。 既定値は "gaussian"。

param1param2param3、および param4 は スムーズの種類に応じてその意味が変わるパラメータである。 param1param2 は正の整数値または0を受け取り、param3param4 は浮動小数点数値を受け取る。

param1 に対する既定値は3で、その他のパラメータについての既定値は 0である。

これらのパラメータは libopencv 関数 cvSmooth に割り当てられている パラメータに対応する。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

14.18 overlay

映像を別の映像の上に重ねる。

これは2つの入力と1つの出力をとる。最初の入力は"主な"映像で、その上に 2番目の入力が重ねられる。

受け取るパラメータは: x:y

x は主な映像の上に重ねられる映像の x 座標。 y は y 座標。これらのパラメータは下記のパラメータを含むような 式である:

main_w, main_h

主な入力の幅と高さ

W, H

main_w および main_h と同じ

overlay_w, overlay_h

重ねる入力の幅と高さ

w, h

overlay_w および overlay_h と同じ

各入力映像から取られるフレームはタイムスタンプの順であることを意識すること。 したがって、それらの初期タイムスタンプが異なるなら、setpts=PTS-STARTPTS フィルターに通し、それらが同じゼロタイムスタンプから始まるようにして (movie フィルターの例で行っているように )2つの入力を渡すことは 良い考えである。

いくつかの例:

 
# 主な映像の右下隅から10ピクセルのところに
# 重ねて描画する
overlay=main_w-overlay_w-10:main_h-overlay_h-10

# 入力の左下隅に透過 PNG ロゴを挿入する
movie=logo.png [logo];
[in][logo] overlay=10:main_h-overlay_h-10 [out]

# 2つの異なる透過 PNG ロゴを挿入する(2番目のロゴは
# 右下隅):
movie=logo1.png [logo1];
movie=logo2.png [logo2];
[in][logo1]       overlay=10:H-h-10 [in+logo1];
[in+logo1][logo2] overlay=W-w-10:H-h-10 [out]

# 主な映像の上部に透過色レイヤーを加える、
# WxH は overlay フィルターに主な入力のサイズを指定する
color=red.3:WxH [over]; [in][over] overlay [out]

さらに多くの重ねを繋げることは可能だが、そういったアプローチの 効率は試験中である。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

14.19 pad

入力画像に対してパディングを加え、元の入力を与えられた座標 x, y に配置する。

次のようなパラメータを受け取る: width:height:x:y:color

パラメータ widthheightx、および y は以下の 定数を含んだ式です:

E, PI, PHI

e (自然対数の底)、pi (円周率)、phi (黄金比)に対応する数学的近似値

in_w, in_h

入力映像の幅および高さ

iw, ih

in_w および in_h と同じ

out_w, out_h

出力の幅および高さ、width および height 式によって指定されたパディングされた 領域の大きさ

ow, oh

out_w および out_h と同じ

x, y

x および y 式によって指定された x および y オフセット、 指定されていなければ NAN

a

入力画像アスペクト比、iw / ih と同じ

hsub, vsub

水平および垂直クローマサブサンプル値。例えばピクセル形式 "yuv422p" なら hsub は2で vsub は1。

受け取るパラメータの説明は以下の通り。

width, height

パディングを加えた出力画像のサイズを指定する。width または height としての値が0の場合、対応する入力サイズが出力として 用いられる。

width 式は height 式によって設定された値を参照すること ができ、逆も可能です。

width および height の既定値は0。

x, y

出力画像の左上隅を基準にして、パディング領域における入力画像を 配置するのオフセットを指定する。

x 式は y 式によって設定された値を参照すること ができ、逆も可能です。

x および y の既定値は0。

color

パディング領域の色を指定する。色の名前もしくは 0xRRGGBB[AA] 数列を とりうる。

color の既定値は "black"。

いくつかの例:

 
# パディングを色 "violet" にして入力映像に追加する。
# 出力映像のサイズは640x480で、
# 列0、行40に入力映像の左上隅が配置される。
pad=640:480:0:40:violet

# 入力を出力の大きさが 3/2 に増えるようにパディングし
# パディング領域の中央に入力映像を配置する
pad="3/2*iw:3/2*ih:(ow-iw)/2:(oh-ih)/2"

# 入力をその幅と高さのうち大きい方のサイズの正方形になるよう
# 出力し、# パディング領域の中央に入力映像を配置する
pad="max(iw\,ih):ow:(ow-iw)/2:(oh-ih)/2"

# 最終的な w/h 比が16:9になるように入力をパディングする
pad="ih*16/9:ih:(ow-iw)/2:(oh-ih)/2"

# 出力サイズを2倍にし、入力映像を出力パディング領域の右下隅に
# 配置する
pad="2*iw:2*ih:ow-iw:oh-ih"

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

14.20 pixdesctest

ピクセル形式記述子テストフィルター、主に内部的なテストに有用。 出力映像は入力映像に等しくなるはずである。

例えば:

 
format=monow, pixdesctest

として monowhite ピクセル形式記述子定義をテストするために用いることができる。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

14.21 scale

入力映像を width:height に拡縮し、かつ/または画像形式を変換する。

パラメータ width および height は以下の定数を含む式:

E, PI, PHI

e (自然対数の底)、pi (円周率)、phi (黄金比)に対応する数学的 近似値

in_w, in_h

入力の幅および高さ

iw, ih

in_w および in_h と同じ

out_w, out_h

(切り取られた)出力の幅および高さ

ow, oh

out_w および out_h と同じ

a

入力画面アスペクト比、iw / ih と同じ

hsub, vsub

水平および垂直クローマサブサンプル値。例えばピクセル形式 "yuv422p" なら hsub は2で vsub は1。

は入力映像を200x100のサイズに拡縮する。

入力画像形式が次のフィルターが要求しているものと異なるなら、 この scale フィルターは入力を要求されている形式に変換する。

width または height の値が0なら、出力には対応する 入力サイズが用いられる。

width または height の値が-1なら、それぞれの出力サイズについて、 この scale フィルターは入力画像の縦横比を維持する値を用いる。

widthheight の既定の値は0。

いくつかの例:

 
# 入力映像をサイズ 200x100 に拡大縮小します
scale=200:100

# 入力を2倍に拡大します
scale=2*iw:2*ih
# 上は以下と同じです
scale=2*in_w:2*in_h

# 入力を半分のサイズに縮小します
scale=iw/2:ih/2

# 幅を増やし、高さを同じサイズに設定します
scale=3/2*iw:ow

# 黄金比で調和させます
scale=iw:1/PHI*iw
scale=ih*PHI:ih

# 高さを増やし、幅を高さの3/2に設定します
scale=3/2*oh:3/5*ih

# 大きさを増やしますが、クローマの倍数の大きさにします
scale="trunc(3/2*iw/hsub)*hsub:trunc(3/2*ih/vsub)*vsub"

# 500ピクセルを上限に幅を増やし、入力アスペクト比は保ちます
scale='min(500\, iw*3/2):-1'


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

14.22 setdar

フィルター出力映像に画面アスペクト比を設定する。

これは指定されたサンプル(ピクセル)アスペクト比を変更することによって実現され、 以下の等式による: DAR = HORIZONTAL_RESOLUTION / VERTICAL_RESOLUTION * SAR

このフィルターがビデオフレームのピクセルのディメンションを変更しないこと に注意すること。またこのフィルターによって設定された画面アスペクト比は フィルターチェーンのより後の方にあるフィルターによって変更されるかもしれない、 例えば、スケーリングされたり、他の "setdar" や "setsar" フィルターが適用 されている場合など。

このフィルターは望みの画面アスペクト比を表すパラメータの文字列を 受け取る。 このパラメータは浮動小数点数の文字列か、num:den の形をした式を 取り得る。ただし numden はアスペクト比の分子と分母 である。 パラメータが指定されていなければ、値 "0:1" が仮定される。

例えば、画面アスペクト比を 16:9 に変えるには、以下を指定する:

 
setdar=16:9
# 上は以下と同等:
setdar=1.77777

setsar フィルターのドキュメンテーションも参照すること。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

14.23 setpts

入力映像フレームの PTS (プレゼンテーションタイムスタンプ)を変更する。

eval API を通じて評価される式を入力として受け取ります。以下の定数を 含めることができる。

PTS

入力のプレゼンテーションタイムスタンプ

PI

ギリシャ文字のパイ

PHI

黄金比

E

自然対数の底

N

0から始まる入力フレームのカウント

STARTPTS

最初の映像フレームの PTS

INTERLACED

現在のフレームがインターレースされているかどうか

POS

フレームのファイルでの本来の位置、現在のフレームについて定義されていなければ 不定。

PREV_INPTS

直前の入力 PTS

PREV_OUTPTS

直前の出力 PTS

いくつかの例:

 
# 0から PTS を数え始める
setpts=PTS-STARTPTS

# ファーストモーション
setpts=0.5*PTS

# スローモーション
setpts=2.0*PTS

# 固定レート 25 fps
setpts=N/(25*TB)

# 固定レート 25 fps および多少の揺れ
setpts='1/(25*TB) * (N + 0.05 * sin(N*2*PI/25))'


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

14.24 setsar

フィルター出力映像のサンプル(ピクセル)アスペクト比を設定する。

このフィルターを適用する結果として、出力の画面アスペクト比も以下の 等式にしたがって変更される: DAR = HORIZONTAL_RESOLUTION / VERTICAL_RESOLUTION * SAR

このフィルターで設定されたサンプルアスペクト比は、フィルターチェーンの より後の方にあるフィルターによって変更されるかもしれない、例えば 他の "setsar" や "setdar" が適用されることによって。

このフィルターは望みのサンプルアスペクト比を表すパラメータの文字列を 受け取る。 このパラメータは浮動小数点数の文字列か、num:den の形をした 文字列である。ただし num および den はアスペクト比の 分子と分母である。 このパラメータが指定されていなければ、値 "0:1" が仮定される。

例えば、サンプルアスペクト比を 10:11 に変更するには、以下を指定すること:

 
setsar=10:11

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

14.25 settb

出力フレームのタイムスタンプに用いる timebase を設定する。 主に timebase の構成をテストするために便利である。

入力に有理数を表す算術表現をとる。この表現には定数 "PI"、"E"、"PHI"、"AVTB"(既定の timebase)および "intb"(入力の timebase) を含めることができる。

入力のための既定の値は "intb"。

以下にいくつか例を挙げる。

 
# timebase を1/25にする
settb=1/25

# timebase を1/10にする
settb=0.1

# timebase を1001/1000にする
settb=1+0.001

# timebase を intb の2倍にする
settb=2*intb

# 既定の timebase の値にする
settb=AVTB

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

14.26 slicify

入力映像のイメージを複数のスライスとして次の映像フィルターに 渡す。

 
./ffmpeg -i in.avi -vf "slicify=32" out.avi

このフィルターはスライスの高さをパラメーターとして受け取る。 このパラメーターが指定されていなければ、16という既定値を使う。

フィルターの連鎖の最初にこれを追加すると、メモリーキャッシュを より良く使ってフィルタリングがより速くなる。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

14.27 transpose

入力映像で行を列で置き換え、場合によっては反転させる。

これは整数値を表す1つのパラメータを受け取り、それは以下の値を 仮定します:

0

90°反時計回りに回転し、かつ垂直に反転する(既定値)、つまり:

 
L.R     L.l
. . ->  . .
l.r     R.r
1

90°時計回りに回転する、つまり:

 
L.R     l.L
. . ->  . .
l.r     r.R
2

90°反時計回りに回転する、つまり:

 
L.R     R.r
. . ->  . .
l.r     L.l
3

90°時計回りに回転し、かつ垂直に反転する、つまり:

 
L.R     r.R
. . ->  . .
l.r     l.L

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

14.28 unsharp

入力映像をシャープにする、またはぼやけさせる。次のパラメータを受けつける:

名前説明最小値最大値既定値
luma_msize_xLuma matrix 水平サイズ3135
luma_msize_yLuma matrix 垂直サイズ3135
luma_amountLuma effect 強度-2.05.01.0
chroma_msize_xChroma matrix 水平サイズ3130
chroma_msize_yChroma matrix 垂直サイズ3130
chroma_amountChroma effect 強度-2.05.00.0

量を負の値にすると入力映像をぼやけさせ、正の値にするとシャープにする。 全てのパラメータは省略可能であり、既定の値は文字列 ’5:5:1.0:0:0:0.0’ と 同等である。

 
# luma sharpen effect パラメータを強くする
unsharp=7:7:2.5

# luma および chroma パラメータを両方強くぼやけさせる
unsharp=7:7:-2:7:7:-2

# ffmpeg とともに既定値を使う
./ffmpeg -i in.avi -vf "unsharp" out.mp4

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

14.29 vflip

入力映像を垂直に反転する。

 
./ffmpeg -i in.avi -vf "vflip" out.avi

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

14.30 yadif

入力映像のインターレースを外す(yadif は "yet another deinterlacing filter" である)。

これは省略可能なパラメータを受け取る: mode:parity

mode は採用するインターレースのモードを指定する、以下の値の1つを 受け取る:

0

各フレームについて1フレームを出力

1

各フィールドについて1フレームを出力

2

0と同じだが空間的インターレースチェックをスキップする

3

1と同じだが空間的インターレースチェックをスキップする

既定値は0。

parity は入力のインターレースされる映像に対して仮定される ピクチャーフィールドパリティを指定する:

0

下部フィールドが最初と仮定

1

上部フィールドが最初と仮定

-1

自動検出を有効にする

既定値は-1。 インターレースが不明だったりデコーダがこの情報をエクスポートしていない場合、 「上部フィールドが先頭」を仮定する。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

15. 映像ソース

以下が現在利用できる映像ソースの説明です。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

15.1 buffer

映像フレームをバッファし、かつそれらをフィルターチェーンで利用できるようにします。

このソースは主にプログラミング用に、特に ‘libavfilter/vsrc_buffer.h’ で定義されているインターフェイスを通じて使うことを意図されています。

これは次のパラメータを受け取ります: width:height:pix_fmt_string:timebase_num:timebase_den:sample_aspect_ratio_num:sample_aspect_ratio.den

全てのパラメータが明示的に定義される必要があります。

以下が受け取るパラメータのリストです。

width, height

バッファされる映像フレームの幅と高さを指定します。

pix_fmt_string

バッファされる映像フレームのピクセルフォーマットを表す文字列です。 あるピクセルフォーマットの対応する数字、もしくはピクセルフォーマットの 名前になります。

timebase_num, timebase_den

バッファされたフレームのタイムスタンプによって仮定される timebase の分子と分母を指定します。

sample_aspect_ratio.num, sample_aspect_ratio.den

映像フレームに仮定されるサンプルアスペクト比の分子および分母を 指定します。

例えば:

 
buffer=320:240:yuv410p:1:24:1:1

とすると、サイズが320x240で、フォーマットが"yuv410p"、タイムスタンプの timebase として1/24を仮定し、正方形のピクセル(1:1 のサンプルアスペクト比)の映像フレーム を受け取るソースを指示します。 名前"yuv410p"をもつピクセルフォーマットは数字6に対応する (‘libavutil/pixfmt.h’ にあるenum PixelFormat の定義を確認してください) ので、この例は次と同じです:

 
buffer=320:240:6:1:24

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

15.2 color

一様に色付けされた入力を提供します。

これは次のようなパラメータを受け取ります: color:frame_size:frame_rate

受け取るパラメータの説明は以下の通りです。

color

ソースの色を指定します。色の名前(大文字小文字を区別しないマッチ)か アルファ値の指定を最後につけることができる 0xRRGGBB[AA] の形の列です。 既定の値は"black"です。

frame_size

ソースとなる映像のサイズを指定します。widthxheigth という 形の文字列か、サイズの略称となる名前になります。 既定の値は"320x240"です。

frame_rate

ソースとなる映像のフレームレートを指定します。秒間に生成されるフレーム数 です。frame_rate_num/frame_rate_denという形の文字列か、 整数、浮動点数小数、または適切な映像フレームレートの略称です。 既定の値は"25"です。

例えば、以下のグラフ描写は透明度0.2をもつ赤のソースで、サイズ"qcif"、 フレームレートを10パーセカンドを生成します。そして識別子"in"をもつ 詰めものに結び付けられたソースの上にそれがオーバーレイされます。

 
"color=red@0.2:qcif:10 [color]; [in][color] overlay [out]"

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

15.3 movie

動画コンテナから映像ストリームを読み取ります。

次の構文を受け取ります: movie_name[:options]、 ただし movie_name は読み取るリソースの名前(必ずしもファイルで なくてもよく、デバイスや何らかのプロトコルでアクセスできるストリーム もあり得ます)で、options は省略可能で、":"で区切られた key=value というペアの列です。

以下は受け取れるオプションの説明です。

format_name, f

読み取る動画がもっているはずの形式を指定します。コンテナまたは 入力デバイスの名前になります。指定されていなければ、その形式は movie_name または中身を調べることで推測されます。

seek_point, sp

秒単位でのシークポイントを指定します。フレームはこのシークポイント から出力が開始され、パラメータは av_strtod によって評価 されるので数値のあとに IS 接尾辞をつけることができます。 既定の値は"0"です。

stream_index, si

読み取る映像ストリームのインデックスを指定します。この値が-1なら、 最適な映像ストリームが自動的に選択されます。既定の値は"-1"です。

このフィルターによって、以下に示すフィルターグラフの主な入力の上に第2の 映像を重ねることができます:

 
input -----------> deltapts0 --> overlay --> output
                                    ^
                                    |
movie --> scale--> deltapts1 -------+

以下はいくつかの例です:

 
# avi ファイル in.avi の最初から3.2秒スキップし、それを
# "in"とラベルがついた入力の上に重ねます。
movie=in.avi:seek_point=3.2, scale=180:-1, setpts=PTS-STARTPTS [movie];
[in] setpts=PTS-STARTPTS, [movie] overlay=16:16 [out]

# video4linux2 デバイスから読み取り、それを"in"とラベルがついた
# 入力の上に重ねます。
movie=/dev/video0:f=video4linux2, scale=180:-1, setpts=PTS-STARTPTS [movie];
[in] setpts=PTS-STARTPTS, [movie] overlay=16:16 [out]


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

15.4 nullsrc

Null 映像ソースは画像を一切返しません。主にテンプレートとして有用で、 分析やデバッギングのツールで使われるものです。

省略可能なパラメータとして width:height:timebase という形の文字列を受け取ります。

widthheight は設定されるソースの大きさを指定します。 widthheight の既定値は(CIF サイズ形式に対応して) それぞれ352と288です。

timebase は timebase を表す算術表現を指定します。この表現には 定数 "PI"、"E"、"PHI"、"AVTB"(既定の timebase)を含めることができ、 既定では値 "AVTB" になります。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

15.5 frei0r_src

frei0r ソースを提供します。

このフィルターのコンパイルを有効にするには、frei0r ヘッダをインストールし Libav を –enable-frei0r つきで configure する必要があります。

このソースは次の構文をサポートします:

 
size:rate:src_name[{=|:}param1:param2:...:paramN]

size は生成される映像のサイズで、widthxheight の形の 文字列か、フレームサイズの略語です。 rate は生成される映像のレートで、num/den の形の 文字列か、フレームレートの略語です。 src_name はロードされる frei0r ソースの名前です。frei0r に関する 更なる情報やどのようにパラメータを設定するかについては、映像フィルターの説明にある セクション frei0r を読んでください。

いくつかの例:

 
# frei0r partik0l ソースをサイズ 200x200 およびフレームレート10で生成し、
# overlay フィルターの主な入力の上に重ねる。
frei0r_src=200x200:10:partik0l=1234 [overlay]; [in][overlay] overlay

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

16. 映像シンク

以下が現在利用可能な映像シンクの説明です。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

16.1 nullsink

Null 映像シンクは、入力映像について全く何もしません。主にテンプレートとして 有用であり、分析やデバッギングのツールで使われるものです。


[Top] [Contents] [Index] [ ? ]

Table of Contents


[Top] [Contents] [Index] [ ? ]

About This Document

This document was generated by Takeshi Abe on July 19, 2011 using texi2html 1.82.

The buttons in the navigation panels have the following meaning:

Button Name Go to From 1.2.3 go to
[ < ] Back Previous section in reading order 1.2.2
[ > ] Forward Next section in reading order 1.2.4
[ << ] FastBack Beginning of this chapter or previous chapter 1
[ Up ] Up Up section 1.2
[ >> ] FastForward Next chapter 2
[Top] Top Cover (top) of document  
[Contents] Contents Table of contents  
[Index] Index Index  
[ ? ] About About (help)  

where the Example assumes that the current position is at Subsubsection One-Two-Three of a document of the following structure:


This document was generated by Takeshi Abe on July 19, 2011 using texi2html 1.82.