GNOME APIドキュメントによれば、gnome-shell(shell-recorder class)スクリーンレコーダーは、基本的にすべてのスクリーンショット出力をパイプラインにパイプライン化し、GStreamerによってエンコードされます。
dconf-editorアプリケーションを使用してに移動できます。org.gnome.shell.recorder
このスキーマには3つのオプションがあります。
- ファイル拡張子-私のボックスのデフォルト
webm
- フレームレート-私のボックスの30に逆らって
- パイプライン-ストリームをエンコードするためにデフォルトでGStreamer vp8encにパイプラインします。
vp8enc min_quantizer=13 max_quantizer=13 cpu-used=5 deadline=1000000 threads=%T ! queue ! webmmux
では、コマンドラインで記録パイプラインを複製するにはどうすればよいでしょうか。これを行うには、gstreamer-toolのgst-launchコマンドを使用します。まず、ボックスにgst-toolsをインストールする必要があり、gstreamer!で遊ぶことができます。以下にいくつかの例を示します。
webmに記録(vp8ビデオ&vorbisオーディオ):
gst-launch ximagesrc ! ffmpegcolorspace ! queue ! vp8enc quality=10 speed=2 ! mux. alsasrc ! audio/x-raw-int ! queue ! audioconvert ! vorbisenc ! mux. webmmux name=mux ! filesink location=screencast.webm
Ctrl + Cを押して、記録を停止します。
ogvへの記録(theoraビデオとvorbisオーディオ):
gst-launch ximagesrc ! ffmpegcolorspace ! queue ! theoraenc ! mux. alsasrc ! audio/x-raw-int ! queue ! audioconvert ! vorbisenc ! mux. oggmux name=mux ! filesink location=screencast.ogv
Ctrl + Cを押して、記録を停止します。
パイプラインはgst-launchによって実行されます。彼らがすることはここにあります:
- Xビデオ画像(デスクトップ)を取得する
- ビデオを許容可能な形式に自動的に変換します
- ビデオ処理を続行するためにバックグラウンドスレッド[t1]を生成します
- [t1]ビデオをエンコードする(vp8またはtheoraのいずれかに)
- [t1]ビデオをビデオシェル(webmまたはogg)にマージするための準備
- オーディオ入力を生(マイク)として取得する
- オーディオ処理を続行するためにバックグラウンドスレッド[t2]を生成します
- [t2]音声を適切な形式に自動的に変換します
- [t2]音声をvorbisにエンコードします
- [t2]オーディオをビデオシェル(webmまたはogg)にマージするための準備
- エンコードされたオーディオとビデオをビデオファイルに書き込む
これで、gstreamerパイプラインを怖がる必要がなくなりました。\ o /
man istanbul
か?