1 Input Devices

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

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

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

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

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

1.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’ を確認してください。

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

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

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

1.2 bktr

BSD 映像入力デバイス。

1.3 dv1394

Linux DV 1394 入力デバイス。

1.4 fbdev

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

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

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

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

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

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

avconv -f fbdev -frames:v 1 -r 1 -i /dev/fb0 screenshot.jpeg

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

1.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’ を実行します。

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

# "libav" という名前のついた JACK 書き込み可能クライアントを作成します。
$ avconv -f jack -i libav -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
libav:input_1
metro:120_bpm

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

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

1.6 libdc1394

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

1.7 oss

Open Sound System 入力デバイス。

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

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

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

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

1.8 pulse

pulseaudio 入力デバイス。

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

入力デバイスに与えられるファイル名はソースのデバイス、もしくは文字列 "default" です。

pulse ソースデバイスとそのプロパティを一覧するには、コマンド ‘pactl list sources’ を呼び出すことで可能です。

avconv -f pulse -i default /tmp/pulse.wav

1.8.1 server AVOption

構文は以下のとおりです:

-server server name

特定のサーバーに接続します。

1.8.2 name AVOption

構文は以下のとおりです:

-name application name

アクティブなクライアントを表示するのに pulse が利用するアプリケーションの名前を 指定します、既定では "libav" です

1.8.3 stream_name AVOption

構文は以下のとおりです:

-stream_name stream name

アクティブなストリームを表示するときに pulse が利用するストリームの名前を 指定します、既定では "record" です

1.8.4 sample_rate AVOption

構文は以下のとおりです:

-sample_rate samplerate

サンプルレートを Hz で指定します、既定では 48kHz が用いられます

1.8.5 channels AVOption

構文は以下のとおりです:

-channels N

利用するチャンネルを指定します、既定では 2 (ステレオ)が設定されます

1.8.6 frame_size AVOption

構文は以下のとおりです:

-frame_size bytes

フレームごとのバイト数を指定します、既定では1024です。

1.8.7 fragment_size AVOption

構文は以下のとおりです:

-fragment_size bytes

pulseaudio で最小のバッファリングフラグメントを指定します、音声のレイテンシに 影響します。既定では設定されません。

1.9 sndio

sndio 入力デバイス。

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

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

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

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

1.10 video4linux2

Video4Linux2 入力映像デバイス。

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

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

avconv および avplay で video4linux2 デバイスを使う例をいくつか:

# video4linux2 デバイスの入力をグラブし表示します。
avplay -f video4linux2 -framerate 30 -video_size hd720 /dev/video0

# Video4linux2 デバイスの入力をグラブし録画します。
# フレームレートとサイズは以前設定されているままにします。
avconv -f video4linux2 -input_format mjpeg -i /dev/video0 out.mpeg

1.11 vfwcap

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

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

1.12 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’ プログラムを使ってください。

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

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

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

1.12.1 follow_mouse AVOption

構文は以下のとおり:

-follow_mouse centered|PIXELS

"centered" とともに指定された場合には、捕捉領域はマウスポインターに追随し、 ポインターが領域の中央になるよう維持されます。さもなくば、領域の端に対して PIXELS (0より大きい)以内にマウスポインターが近付いたときだけこの領域は 追随します。

例えば:

avconv -f x11grab -follow_mouse centered -r 25 -s cif -i :0.0 out.mpg

# 端に対して100ピクセル以内にマウスポインター近付いたときだけ追随します
avconv -f x11grab -follow_mouse 100 -r 25 -s cif -i :0.0 out.mpg

1.12.2 show_region AVOption

構文は以下のとおり:

-show_region 1

show_region AVOption が 1 と指定された場合、捕捉領域は スクリーンで指示される。このオプションによって、スクリーンの一部だけを 捕捉するときに捕捉するべきものを知るのが簡単になります。

例えば:

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

# follow_mouse とともに
avconv -f x11grab -follow_mouse centered -show_region 1  -r 25 -s cif -i :0.0 out.mpg