Gnome 3.10 ScreenCast + Arch上的音频

Modified on: Sat, 30 Jun 2018 09:28:30 +0800

我正在尝试使用内置屏幕录像机在Arch Linux上的Gnome 3.10中录制我的桌面(包括音频)( Ctrl + Alt + + - [R )。
根据这个帖子(和其他类似的帖子)可以在互联网上找到的解决方案),我试图应用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,gnome dev 1

  

我有几个人问我是否有办法做到这一点
  gnome-shell 3.10及以后我没有得到一个好的答案。它的
  因为g-s-d现在可以处理起始事物和事情
  org.gnome.shell.recorder架构已经消失。

Ray的建议(指定gjs命令的快捷方式)非常酷,但他的一个班轮缺少一些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;

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

这样的扩展

EasyScreenCast < / p>

(源代码此处),可让您自定义所有设置(包括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&gt;扩展程序&gt; Easyscreencast&gt;截屏视频选项


除此之外,屏幕播放+内部音频的一种简单方法是通过命令行。您只需指定录音的输入源 - 使用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

相关问答

添加新评论