[FFmpeg] FFmpeg で任意のデバイスの出力をリアルタイムキャプチャする

スポンサーリンク

環境

Ubuntu 12.04.2 (64bit) (3.5.0-24-generic)
FFmpeg 1.1.3

任意のデバイスのリアルタイムキャプチャ

任意のキャプチャデバイスの出力を取り込みながらリアルタイムにエンコードしてみます.

ここで,任意のキャプチャデバイスは標準出力にキャプチャ結果を出力できるとします.
例えば下記のように,あるキャプチャデバイスに対して,capture_program というプログラムが – というオプションで,標準出力にキャプチャ結果を出力するとします.

$ capture_program -

FFmpeg は標準入力からの入力,標準出力への出力を共に – で設定することができます.
例えば上記キャプチャデバイスの出力結果を FFmpeg にパイプで渡して FFmpeg の入力としてみます.
例えば下記のようなコマンドの場合,キャプチャデバイスのキャプチャ結果がリアルタイムでエンコードされて output.ts として出力されます。

$ capture_program - | ffmpeg -i - -acodec libfaac -ab 128k -ar 44100 -ac 2 -vcodec libx264 -profile:v main -b:v 3000k -s 1280x720 -aspect 16:9 -preset:v superfast -r 29.97 -threads 0 -f mpegts out.ts

また,FFmpeg を実行してターミナルに流れているテキストログはエラー出力を使用しています.(標準出力ではないことに注意します)

FFmpegUbuntu
スポンサーリンク
コピペワールド