Gnome 3.10 ScreenCast + Arch 上的音频

lvi*_*ani 5 bash arch-linux gnome-shell screencasting

我正在尝试使用内置屏幕录像机 ( Ctrl+ Alt+ Shift+ R)在 Arch Linux 上的 Gnome 3.10 中录制我的桌面(包括音频)。根据这篇文章(以及可以在互联网上找到的其他类似解决方案),我尝试应用 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"
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误:

No such schema 'org.gnome.shell.recorder'
Run Code Online (Sandbox Code Playgroud)

浏览dconf-editor我看到org.gnome.shell.recorder实际上不存在,我找不到任何类似的东西......我如何在 gnome shell 3.10 中录制我的桌面,包括内部音频(不是麦克风)?

编辑:我也不想在录制时包括鼠标光标。

don*_*sti 6

该密钥/架构已被删除,gnome-shell ? 3.10因此您在互联网上找到的解决方案不再有效。
Ray Strode,侏儒开发者1

有几个人问我是否有办法在 gnome-shell 3.10 及更高版本中做到这一点,但我没有得到好的答案。由于 gsd 现在处理启动的事情并且 org.gnome.shell.recorder 模式已经消失,这一事实变得很复杂。

Ray 在那里的建议(为该gjs命令指定一个快捷方式)非常酷,但他的一个班轮缺少一些js东西。我不得不用一个数字(例如)替换%Tin以使其工作。另请注意,生成的文件名没有时间戳,因此如果不重命名,后续运行将覆盖现有文件名。最后,确保您的定义为 ,否则命令将无法工作(错误为)。 无论如何,回到您的问题,屏幕投射参数现在在 gnome-shell ( ) 中进行了硬编码,例如:threads=%T2.webmXDG_VIDEOS_DIR~/.config/user-dirs.dirscannot 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"
Run Code Online (Sandbox Code Playgroud)

或者

shell_recorder_init (ShellRecorder *recorder)
{
....
recorder->draw_cursor = TRUE;
Run Code Online (Sandbox Code Playgroud)

据我所知,改变它们的唯一方法是通过像这样的扩展

轻松投屏

此处的源代码)允许您自定义所有设置(包括draw-cursor)。它工作正常,我只需要添加我的gnome-shell版本,例如3.16.1- tometadata.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
Run Code Online (Sandbox Code Playgroud)

通过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
Run Code Online (Sandbox Code Playgroud)

然后运行:

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
Run Code Online (Sandbox Code Playgroud)

要停止录制,请切换回终端并点击Ctrl+ C


1:来源