Cuando necesitas USB passthrough en VirtualBox, lo más habitual es buscar primero soluciones nativas. Aunque existen programas de terceros que pueden facilitar el proceso, Oracle VM VirtualBox ya incluye soporte integrado que puede configurarse manualmente.
VirtualBox ofrece una funcionalidad llamada "Webcam Passthrough", que permite a un sistema invitado acceder y utilizar la webcam del equipo anfitrión. Esta característica complementa el soporte general de USB passthrough, que era el método principal para acceder a webcams en versiones anteriores de VirtualBox.
Contenidos:
La función de Webcam Passthrough en VirtualBox puede, en teoría, manejar fuentes de vídeo que no sean USB. Sin embargo, esta capacidad aún no está completamente probada y los resultados pueden variar según el hardware y la configuración del host. Esta información se basa en la documentación de Oracle.
Para habilitar configuraciones adicionales en VirtualBox, es necesario instalar el VirtualBox Extension Pack.
Vista actual de las extensiones en VirtualBox Manager.
Importante: Los módulos de Webcam Passthrough vienen incluidos en el Extension Pack de Oracle VM VirtualBox, pero es necesario instalarlos manualmente.
Las webcams del host se pueden conectar a las máquinas virtuales a través de: Barra de menú de la VM > Menú Dispositivos. En el menú de webcam aparecerá la lista de dispositivos de entrada de vídeo disponibles en el host. Al hacer clic en el nombre de la webcam, se conecta o desconecta el dispositivo del host.
Para activar el Webcam Passthrough, utiliza la herramienta de línea de comandos VBoxManage. Más detalles en las secciones específicas para cada sistema operativo que encontrarás a continuación.
Estos son los comandos principales disponibles:
Listar webcams y dispositivos de entrada de vídeo del host:
$ VBoxManage list webcams
Formato de salida:
Alias= "Nombre descriptivo"
Ruta o identificador del host
El alias sirve como referencia para simplificar otros comandos.
‘.0’ indica el dispositivo de vídeo predeterminado, ‘.1’ y ‘.2’ corresponden al primer y segundo dispositivo de vídeo, respectivamente.
El orden de los dispositivos es único para cada máquina host.
Ejecuta el siguiente comando:
VBoxManage controlvm "Nombre_VM" webcam attach [ruta_host|alias [opciones]]
La webcam USB se conectará a la máquina virtual invitada.
Las opciones de configuración se introducen como cadenas de texto: "Opción1=Valor1", "Opción2=Valor2", etc. Estos parámetros permiten configurar el comportamiento del dispositivo de webcam emulado.
Configuraciones soportadas:
MaxFramerate: Velocidad máxima de fotogramas enviada a la máquina invitada. Cuantos más fotogramas, mayor consumo de CPU, por lo que puede ser recomendable limitarla.
Valor predeterminado: "sin límite", lo que permite usar cualquier frecuencia que admita la webcam del host.
MaxPayloadTransferSize: Cantidad máxima de bytes que la webcam emulada puede transferir al invitado en un solo envío. Valor predeterminado: 3060 bytes.
Si la máquina virtual soporta búferes más grandes, aumentar este valor puede reducir ligeramente la carga del procesador. Sin embargo, dependerá de si el sistema invitado soporta ese tamaño de transferencia.
VBoxManage controlvm "Nombre_VM" webcam detach [ruta_host|alias]
Para listar las webcams conectadas a una VM activa:
VBoxManage controlvm "Nombre_VM" webcam list
Por cada webcam conectada, se muestra el alias o la ruta que se utilizó en el comando webcam attach.
VirtualBox Webcam Passthrough: Equipos Windows
En sistemas Windows, los dispositivos de webcam emulados se desconectan automáticamente de la máquina virtual cuando se desconectan del host.
VirtualBox Webcam Passthrough: Equipos Mac OS X
Solo las versiones de Mac OS X 10.9 o posteriores son compatibles con el Webcam Passthrough de VirtualBox.
En Mac OS X, las webcams emuladas se mantienen conectadas al sistema invitado incluso si se desconectan del host. Los usuarios deben desconectar manualmente utilizando el comando: VBoxManage controlvm "Nombre_VM" webcam detach .
VirtualBox Webcam Passthrough: Equipos Linux y Oracle Solaris
En Linux y Solaris, la emulación de la webcam en la máquina virtual se desconecta automáticamente solo si el dispositivo estaba transmitiendo vídeo.
Si la webcam emulada no estaba en uso activo, será necesario desconectarla manualmente ejecutando: VBoxManage controlvm "Nombre_VM" webcam detach.
Correspondencia de aliases:
‘.0’ y ‘.1’ corresponden a /dev/video0
‘.2’ corresponde a /dev/video1