Bash

Gnome 3.10 ScreenCast + Arch 上的音頻

  • April 23, 2015

我正在嘗試使用內置螢幕錄像機(Ctrl+ Alt+ Shift+ )在 Arch Linux 上的 Gnome 3.10 中錄製我的桌面(包括音頻R)。根據這篇文章(以及可以在 Internet 上找到的其他類似解決方案),我嘗試應用 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 中錄製我的桌面,包括內部音頻(不是麥克風)?

**編輯:**我也不想在錄製時包含滑鼠游標。

該鍵/模式已被刪除,gnome-shell ≥ 3.10因此您在網際網路上找到的解決方案不再有效。

Ray Strode,侏儒開發者1:

有幾個人問我是否有辦法在 gnome-shell 3.10 及更高版本中執行此操作,但我沒有一個好的答案。由於 gsd 現在處理開始的事情並且 org.gnome.shell.recorder 模式已經消失,這使得事情變得複雜。

雷在那裡的建議(為該gjs命令分配快捷方式)非常酷,但他的一個班輪缺少一些js東西。我不得不用一個數字(例如)替換%Tin以使其工作。另外,請注意生成的文件名沒有時間戳,因此如果您不重命名,後續執行將覆蓋現有文件名。最後,請確保您已定義,否則該命令將不起作用(帶有 的錯誤)。 無論如何,回到您的問題,螢幕投射參數現在在 gnome-shell ( ) 中進行了硬編碼,例如:threads=%T``2``.webm``XDG_VIDEOS_DIR``~/.config/user-dirs.dirs``cannot open output file
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;

據我所知,改變它們的唯一方法是通過像這樣的擴展

EasyScreenCast

(原始碼在這裡)它允許您自定義所有設置(包括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 選項

在此處輸入圖像描述


除此之外,截屏+內部音頻的一種簡單方法是通過命令行。您只需要指定錄音的輸入源 - 使用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:來源

引用自:https://unix.stackexchange.com/questions/118060