VirtualBox 使用 Ubuntu Live CD 客户机的鼠标指针录制视频吗?

VirtualBox 使用 Ubuntu Live CD 客户机的鼠标指针录制视频吗?

我使用 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 映像安装不会构建内核模块并运行服务,因此它将不起作用),通过:

...- 在访客终端:

# 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),基本上看起来像这样:

xosd_track_cursor_mouse_trail

虽然在此 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 中客户操作系统的视频录制过程中崩溃。

相关内容