我使用 Ubuntu 18.04 作为主机、VirtualBox 6.0.8 - 和 Ubuntu 18.04 Live CD 作为客户机(因此未安装)。
我正在尝试使用 VirtualBox 6.0.8 (机器/显示/录制) 的内置录制功能 - 效果很好,但是 - 它不会在视频上记录鼠标指针!
通过#12287(VBox 4.3.2 无光标视频捕获)– Oracle VM VirtualBox, 我学过:
我不确定我们是否会改变这一点。光标通常由主机绘制,而不是由来宾绘制。要使其由来宾绘制(并将鼠标光标包含在视频中),请禁用鼠标集成。
我做了很多事:
- 尝试从底部菜单中禁用鼠标集成 - 其实并不重要,鼠标集成图标在离开 VM 窗口时会变灰,当我单击 VM 客户机窗口时,它会再次被激活,因此它会被聚焦
- 通过https://superuser.com/a/1390258/39752-> “转到‘主板’选项卡,在指点设备中选择‘USB 平板电脑’而不是‘PS/2 鼠标’” - 不起作用
- 尝试在启动 Live CD 映像后从 CD 安装 Guest Additions,而不是不安装 Guest Additions -> 均不起作用
- 通过VirtualBox Ubuntu live-cd 客户机中存在 gnome-control-center 吗?-> 在客户机的“VirtualBox > 设置 > 显示”中,尝试使用 VBoxSVGA 和 VMSVGA 作为“图形控制器” - 没有变化,鼠标指针仍然不在视频捕获上
有人知道如何在 Ubuntu 18.04 Live CD 客户机的 VirtualBox 视频录制中捕获鼠标指针吗?
编辑:更多细节:
首先,要启用双向剪贴板,您需要 Guest additions - 这是一个相对简单的安装方法(请注意,在 Live CD 客户机中仅运行 Guest Additions CD 映像安装不会构建内核模块并运行服务,因此它将不起作用),通过:
- https://superuser.com/questions/1318231/why-doesnt-clipboard-sharing-work-with-ubuntu-18-04-lts-inside-virtualbox-5-1-2
- https://www.linuxuprising.com/2019/01/manual-virtualbox-guest-additions.html
...- 在访客终端:
# below commands need to be typed, all in guest Ubuntu terminal:
# need to enable multiverse; in:
#sudo nano /etc/apt/sources.list
sudo add-apt-repository multiverse
#sudo apt update # no need if used add-apt-repository
sudo apt install virtualbox-guest-x11 virtualbox-guest-utils virtualbox-guest-dkms
sudo VBoxClient --clipboard
有了这个,现在我可以复制粘贴,无论我做什么,输出都会得到xinput list
(当我不安装 Guest Additions 时也会得到同样的结果):
ubuntu@ubuntu:~$ xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ VirtualBox mouse integration id=9 [slave pointer (2)]
⎜ ↳ ImExPS/2 Generic Explorer Mouse id=11 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Sleep Button id=7 [slave keyboard (3)]
↳ Video Bus id=8 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=10 [slave keyboard (3)]
我也尝试过这个,通过如何永久禁用 Virtualbox 中的鼠标集成? - 超级用户- 在主机终端上:
# get the VM Name
$ VBoxManage list vms
"Ubuntu 18.04 CD" {XXXXX-....}
$ VBoxManage getextradata "Ubuntu 18.04 CD" GUI/MouseCapturePolicy
No value set!
$ VBoxManage setextradata "Ubuntu 18.04 CD" GUI/MouseCapturePolicy Disabled
$ VBoxManage getextradata "Ubuntu 18.04 CD" GUI/MouseCapturePolicy
Value: Disabled
$ VBoxManage getextradata "Ubuntu 18.04 CD" GUI/MouseCapturePolicy
Value: Disabled
# empty set - restore default
$ VBoxManage setextradata "Ubuntu 18.04 CD" GUI/MouseCapturePolicy
$ VBoxManage getextradata "Ubuntu 18.04 CD" GUI/MouseCapturePolicy
No value set!
这些都不起作用;最后,通过这个答案如何永久禁用 Virtualbox 中的鼠标集成? - 超级用户:
尝试禁用键盘自动捕获:
- 在主窗口中按文件|首选项
- 选择“输入”选项卡
- 取消选中“自动捕获键盘”
这也会禁用鼠标自动捕获功能。
试过了,仍然VirtualBox mouse integration
显示xinput list
,并且视频上没有捕获鼠标指针。
此外关闭 3D 加速也不起作用。
答案1
好吧,我最终在 VirtualBox 论坛上交叉发布了这个问题:VirtualBox 使用 Ubuntu Live CD 客户机的鼠标指针录制视频?(#18754),之后还贴出了bug:票号 #18754 无法在 Ubuntu 18.04 LiveCD 客户机的视频录制中捕获鼠标指针。
不过,在对 X11/Xlib 进行一些研究之后,我想我可能找到了一种解决方法,我在这里记录下来了:https://stackoverflow.com/questions/57027755/clearing-x11-window-with-desktop-background-pixels-and-putting-ximage-with-tran
该帖子提到了一个 C X11 应用程序,要点:xosd_track_cursor.c (a31e9dff5),基本上看起来像这样:
虽然在此 gif 上,它故意显示鼠标轨迹,但可以通过注释宏来删除这些轨迹MOUSE_TRAIL
(就像在源的链接版本中一样) - 在这种情况下,应用程序只会尝试复制当前鼠标指针。显然,在正确安装的系统上观察这种情况并不十分有趣,因为很难区分原始鼠标光标/指针和克隆的鼠标光标/指针。
但是,如果此应用程序在 VirtualBox 中 Ubuntu 18.04 LiveCD 客户机的后台运行 - 那么,它会使鼠标指针在该客户的 VirtualBox 视频录制中可见!它似乎也可以在有和没有 VirtualBox“鼠标集成”的情况下工作(甚至似乎在启用“鼠标集成”的情况下性能会略好一些?!)。无论如何,如果您将此应用程序用于此目的,您可能希望像这样在循环中调用它:
$ while [ 1 ] ; do ./xosd_track_cursor_gist/xosd_track_cursor ; sleep 0.25; done
...这样应用程序就可以重新启动,以防它在 VirtualBox 中客户操作系统的视频录制过程中崩溃。