O que poderia causar um vídeo para jogar mal no VLC?

0

Eu estou jogando um vídeo de alta qualidade (1080p) usando o VLC dentro de uma máquina virtual qemu-kvm. O sistema operacional na minha máquina virtual é o gentoo e o sistema operacional host é o Ubuntu.

A experiência de vídeo é muito brusca: o vídeo pára muito, o log de modo detalhado tem um monte de mensagens "PTS está fora de alcance, soltando buffer" e "última foto ignorada".

A utilização da CPU do processo do qemu não chega nem perto de 100%. Nem é a utilização do disco. (usando inspeção visual de top e iotop ).

O que mais poderia causar esse problema? Quais opções eu poderia tentar na vlc para descobrir o problema?

AnkurVj
fonte
1
Não olhe para a utilização da CPU no host, execute top e iotop em seu guest do Gentoo e deixe-nos saber o que isso diz.
Dustin G.
O @DustinG parece que o uso da CPU no convidado é de mais de 90% na maior parte do tempo em que o vídeo está sendo reproduzido. Por que a utilização da CPU do convidado deve ser muito mais do que o host?
AnkurVj
Porque quando você está virtualizando, o convidado está obtendo uma parte do que o Host tem em termos de hardware. Portanto, se você tiver um processador quad-core e fornecer o guest 1 core, o convidado mostrará uma utilização maior da CPU do que o host, devido aos recursos relativos disponíveis. Pense nisso desta maneira, se 100% de utilização em um único núcleo for 25% de utilização ao se olhar para um quad core.
Dustin G.
mas quando eu faço top, não mostra apenas a utilização da CPU da CPU em que o processo está sendo executado? Estou executando esses testes em uma máquina com 12 núcleos
AnkurVj
Quantos núcleos você atribuiu ao virtual?
Dustin G.

Respostas:

1

Se possível, eu alocaria mais recursos para a máquina virtual. Especificamente, alocando mais Núcleos e verificando se você pode aumentar a RAM de Vídeo. Máquinas virtuais não têm acesso a 100% dos recursos em seu computador, apenas até o valor máximo que o Hypervisor (qemu-kvm no seu caso) permite. Lembre-se de que seu sistema também está usando uma placa gráfica virtualizada, de modo que ela não é tão poderosa quanto a placa gráfica à qual o seu host tem acesso - mesmo que um Hypervisor permita recursos avançados de vídeo, existe uma penalidade de desempenho para o virtual emulação de dispositivos.

Dustin G.
fonte
1
Acho que preciso investigar mais detalhadamente por que o uso da CPU virtualizada é tão alto. Obrigado pela dica
AnkurVj
1
Vídeo de alta qualidade irá sobrecarregar uma configuração de CPU única, especialmente quando não estiver aproveitando a aceleração total de vídeo.
Dustin G.
0

O qemu-kvm não usa o vnc para sua exibição? Eu acho que o vídeo é decodificado em software e, em seguida, os bitmaps são enviados para o processo vnc-viewer e, em seguida, para o servidor X e, em seguida, para a placa de vídeo.

Além disso, a utilização da CPU. Eu acho que o Linux não separa% idle (esperando pelo usuário) e % wio (esperando pelo io). Se um processo aguardar o cartão grapics, isso é registrado como ocioso.

Se você realmente quiser ver o vídeo de uma máquina virtual, provavelmente precisará procurar algo que possa gravar diretamente na sua placa gráfica. Essa é a vlc em execução no seu vm precisa usar algo como DRI para mapear sua placa gráfica no próprio espaço de memória virtual da vlc.

fstx
fonte
Eu acho que o qemu-kvm usa o SDL por padrão, e o vnc é opcional. mesmo que o vídeo seja decodificado no software e não seja rápido o suficiente, não devo ver 100% de utilização da CPU? \
AnkurVj