Quando precisa de ativar o passthrough USB no VirtualBox, é natural que procure primeiro soluções nativas. Embora existam softwares de terceiros que podem facilitar o processo, o Oracle VM VirtualBox já inclui suporte integrado que pode ser configurado manualmente.
O VirtualBox disponibiliza uma funcionalidade chamada "Webcam Passthrough", que permite a um sistema convidado aceder e utilizar a webcam do computador anfitrião. Esta funcionalidade complementa o suporte geral ao passthrough USB, que era anteriormente o principal método de acesso a webcams no VirtualBox.
Conteúdos:
A funcionalidade de Webcam Passthrough no VirtualBox pode teoricamente suportar fontes de vídeo que não sejam USB. No entanto, esta capacidade ainda não foi totalmente testada e os resultados podem variar consoante o hardware e a configuração do sistema anfitrião. Esta informação baseia-se na documentação oficial da Oracle.
Para implementar configurações adicionais no VirtualBox, é necessário instalar o VirtualBox Extension Pack.
Vista atual das extensões disponíveis no VirtualBox Manager.
Nota importante: Os módulos de Webcam Passthrough fazem parte do Extension Pack do Oracle VM VirtualBox, mas precisam de ser instalados separadamente.
As webcams do host podem ser ligadas às máquinas virtuais através de: Barra de menu da VM > Menu Dispositivos. No menu Webcam, os utilizadores verão uma lista dos dispositivos de entrada de vídeo disponíveis. Basta clicar no nome da webcam para a ligar ou desligar.
Para ativar o Webcam Passthrough, utilize a ferramenta de linha de comandos VBoxManage. Consulte as secções específicas para cada sistema operativo abaixo para mais informações.
Comandos disponíveis:
Listar webcams e dispositivos de entrada de vídeo do host:
$ VBoxManage list webcams
Formato de saída:
Alias= "Nome amigável"
Caminho ou Identificador do Host
Um alias é utilizado para facilitar a execução de outros comandos.
‘.0’ refere-se ao dispositivo de vídeo predefinido do host, ‘.1’ e ‘.2’ referem-se ao primeiro e segundo dispositivos, respetivamente.
A ordem dos dispositivos é única em cada máquina anfitriã.
Execute o seguinte comando:
VBoxManage controlvm "Nome_VM" webcam attach [caminho_host|alias [opções]]
A webcam USB será ligada à máquina virtual convidada.
As opções de configuração são fornecidas como strings de texto: "Configuração1=Valor1", "Configuração2=Valor2", etc. Estas opções permitem configurar a forma como o dispositivo de webcam emulado se comporta.
Configurações suportadas:
MaxFramerate: A taxa máxima de fotogramas que pode ser enviada para a máquina convidada. Taxas de fotogramas elevadas exigem mais capacidade de CPU, pelo que limitar esta taxa pode melhorar o desempenho geral.
Padrão: “sem limite”, permitindo que a máquina convidada utilize qualquer taxa de fotogramas suportada pela webcam do host.
MaxPayloadTransferSize: A quantidade máxima de bytes que a webcam emulada pode transferir de uma vez para a máquina convidada. Valor padrão: 3060 bytes.
Se a máquina convidada conseguir gerir buffers maiores, aumentar este valor pode reduzir ligeiramente o consumo de CPU. No entanto, é necessário garantir que a máquina convidada suporta esta configuração.
VBoxManage controlvm "Nome_VM" webcam detach [caminho_host|alias]
Para listar as webcams ligadas a uma máquina virtual ativa:
“VBoxManage controlvm "Nome_VM" webcam list
Cada webcam listada mostrará o alias ou caminho utilizado no comando webcam attach.
VirtualBox Webcam Passthrough: Hosts Windows
Nos sistemas Windows, os dispositivos de webcam emulados são automaticamente desligados da máquina convidada assim que a webcam é desconectada do host.
VirtualBox Webcam Passthrough: Hosts Mac OS X
A funcionalidade de Webcam Passthrough é compatível apenas com versões de Mac OS X 10.9 ou superiores.
Nos sistemas Mac OS, as webcams emuladas permanecem ligadas à máquina convidada mesmo depois de serem desligadas do anfitrião. Os utilizadores devem desligá-las manualmente através do comando: VBoxManage controlvm "Nome_VM" webcam detach.
VirtualBox Webcam Passthrough: Hosts Linux e Oracle Solaris
No Linux e no Solaris, a desconexão automática da webcam emulada só ocorre se a webcam estiver a transmitir vídeo.
Se a webcam emulada não estiver ativa, será necessário desligá-la manualmente com o comando: VBoxManage controlvm "Nome_VM" webcam detach.
Mapeamento de aliases:
‘.0’ e ‘.1’ estão associados a /dev/video0
‘.2’ está associado a /dev/video1