内蔵のスクリーンレコーダー(Ctrl+Alt+Shift+R)。 this post(およびインターネット上で見つけることができる他の同様の解決策)によると、私はgconf設定を適用しようとしました
gsettings set org.gnome.Shell.recorder pipeline "queue ! videorate ! vp8enc quality=10 speed=2 ! mux. pulsesrc ! audio/x-raw-int ! queue ! audioconvert ! vorbisenc ! mux. webmmux name=mux"
しかし、次のエラーが発生します。
No such schema 'org.gnome.Shell.recorder'
dconf-editor
でブラウジングすると、org.gnome.Shell.recorder
が実際には存在せず、類似したものが見つかりませんでした...内部オーディオ(マイクではない)を含むgnome Shell 3.10でデスクトップを録音するにはどうすればよいですか?
EDIT:また、記録中にマウスカーソルを含めたくありません。
そのキー/スキーマはgnome-Shell ≥ 3.10
で削除されたため、インターネットで見つけたソリューションは機能しなくなりました。
Ray Strode、gnome dev1:
Gnome-Shell 3.10以降でこれを行う方法があるかどうかを数人に尋ねられましたが、良い答えがありませんでした。 g-s-dが開始を処理するようになり、org.gnome.Shell.recorderスキーマがなくなったため、複雑になっています。
そこでのレイの提案(そのgjs
コマンドへのショートカットの割り当て)は非常にクールですが、彼の1つのライナーにはいくつかのjs
のものがありません。動作させるには、%T
のthreads=%T
を数字(例:2
)に置き換える必要がありました。また、結果の.webm
ファイル名にはタイムスタンプがないため、名前を変更しないと、後続の実行で既存のファイル名が上書きされることに注意してください。最後に、XDG_VIDEOS_DIR
が~/.config/user-dirs.dirs
で定義されていることを確認してください。定義されていない場合、コマンドは機能しません(cannot open output file
でエラーが発生します)。
とにかく、質問に戻りますが、スクリーンキャストパラメータはgnome-Shell( Shell-recorder.c
)にハードコードされています。例:
#define DEFAULT_PIPELINE "vp9enc min_quantizer=13 max_quantizer=13 cpu-used=5 deadline=1000000 threads=%T ! queue ! webmmux"
または
Shell_recorder_init (ShellRecorder *recorder)
{
....
recorder->draw_cursor = TRUE;
私が知る限り、それらを変更する唯一の方法は、次のような拡張機能を使用することです。
(ソースコード ここ )これにより、すべての設定(draw-cursor
を含む)をカスタマイズできます。正常に動作します。gnome-Shell
バージョンを追加するだけで済みます。例: 3.16.1
-からmetadata.json
およびこのカスタムgstreamer
パイプライン:
vp8enc min_quantizer=10 max_quantizer=10 cpu-used=2 deadline=1000000 threads=2 ! queue ! mux. pulsesrc ! queue ! audioconvert ! vorbisenc ! queue ! mux. webmmux name=mux
Tweak-tool> Extensions> Easyscreencast> Screencast options経由:
それはさておき、スクリーンキャスト+内部オーディオへの簡単な方法はコマンドラインを使用することです。必要なのは、録音用の入力ソースをpacmd
(cli)またはpavucontrol
(gui)で指定し、gst-launch
を使用して録音することだけです。したがって、最初に.monitor
で終わる入力ソース名を取得します(サウンドカードからオーディオを録音できます)。
pacmd list-sources | sed -n 's/name: <\(.*\.monitor\)>/\1/p'
alsa_output.pci-0000_00_1b.0.analog-stereo.monitor
次に実行します:
pacmd set-default-source "alsa_output.pci-0000_00_1b.0.analog-stereo.monitor"
gst-launch-1.0 ximagesrc ! videoconvert ! queue ! videorate ! vp8enc min_quantizer=10 max_quantizer=10 cpu-used=2 deadline=1000000 threads=2 ! queue ! mux. pulsesrc ! queue ! audioconvert ! vorbisenc ! queue ! mux. webmmux name=mux ! filesink location=screencast.webm
録音を停止するには、端末に戻ってを押します Ctrl+C。
1: ソース
Don_crisstiの回答に基づいて、このタスクを自動化するためのbashスクリプトを作成しました。
スクリプトは次のとおりです。
#!/bin/bash
if [ -z $1 ]; then
echo "usage: screencast <outfile>"
exit 1
fi
fname=$1
audio=$(pacmd list-sources | sed -n 's/\s*name: <\(.*\.monitor\)>/\1/p')
pacmd set-default-source "$audio"
echo "Screencast started, to stop it come back to terminal and hit ctrl+c..."
gst-launch-1.0 ximagesrc \
! videoconvert \
! queue \
! videorate \
! vp8enc min_quantizer=10 max_quantizer=10 cpu-used=2 deadline=1000000 threads=2 \
! queue \
! mux. pulsesrc \
! queue \
! audioconvert \
! vorbisenc \
! queue \
! mux. webmmux name=mux \
! filesink location=$fname > /dev/null
echo
echo "Screencast saved as $fname"
使用法:
$ ./screencast out_file_name.webm
すべてのクレジットはdon_crisstiに送られます。その答えに投票してください!