hybrid-dump para VDPAU acelerou a reprodução de vídeo no Ubuntu 11.10 com o bumblebee 3.0?

0

Estou tentando rodar o hybrid-dump para reprodução de vídeo acelerada pelo VDPAU no Ubuntu 11.10 com o Bumblebee 3.0 instalado e rodando. Mas seguindo as instruções no URL abaixo, não consigo fazer o mplayer com o vdpau funcionar:

link

avilella@magneto:~/hybrid_graphics/hybrid-windump$ git pull
Already up-to-date.
avilella@magneto:~/hybrid_graphics/hybrid-windump$ make clean && make

optirun true
LD_LIBRARY_PATH=/usr/lib/nvidia-current DISPLAY=:8 metacity --replace &
LD_LIBRARY_PATH=/usr/lib/nvidia-current DISPLAY=:8 mplayer -vo vdpau file.720p.mkv
#(in the other gnome-terminal tab)
LD_LIBRARY_PATH=/usr/lib/nvidia-current ~/hybrid_graphics/hybrid-windump/windump :8 :0

Também tentei:

LD_LIBRARY_PATH=/usr/lib/nvidia-current DISPLAY=:8 mplayer -vo vdpau -vc ffh264vdpau file.720p.mkv

Eu não recebo nenhum vídeo, apenas áudio. Eu obtenho vídeo e áudio se eu remover o bit vdpau, mas o windump não é necessário:

LD_LIBRARY_PATH=/usr/lib/nvidia-current DISPLAY=:8 mplayer file.720p.mkv

Se eu tentar glxspheres, funciona bem assim:

LD_LIBRARY_PATH=/usr/lib/nvidia-current DISPLAY=:8 glxspheres
#(in the other gnome-terminal tab)
LD_LIBRARY_PATH=/usr/lib/nvidia-current ~/hybrid_graphics/hybrid-windump/windump :8 :0

Polygons in scene: 62464
Visual ID of window: 0x27
Context is Direct
OpenGL Renderer: GeForce 310M/PCI/SSE2

Agora, reproduzindo vídeos. Seguindo as instruções abaixo, consegui que funcionasse de alguma forma:

Edite /etc/bumblebee/xorg.conf.nvidia e adicione:

Section "Screen"
    Identifier "Screen0"
    DefaultDepth 24
    SubSection "Display"
        Depth    24
        Virtual  1280 720
    EndSubSection
EndSection

Reiniciado bumblebeed :

sudo restart bumblebeed

Em um dos terminais, eu chamo o comando mplayer :

LD_LIBRARY_PATH=/usr/lib/nvidia-current:/usr/lib/nvidia-current/vdpau DISPLAY=:8 optirun mplayer -vo vdpau -ao alsa file.720p.mkv

Em outro terminal, eu chamo os comandos compiz e, em seguida, windump :

LD_LIBRARY_PATH=/usr/lib/nvidia-current DISPLAY=:8  compiz --replace &

~/hybrid-windump/windump :8 :0

PROBLEMAS: Estou lutando com o tamanho da janela de vídeo. Em uma tela de 1366x768, configuro um tamanho de vídeo de 1280x720, mas a imagem é cortada em cerca de 200 pixels no lado direito, deixando o mesmo tamanho da área windump do preto.

Alguma idéia?

    
por 719016 08.02.2012 / 13:07

4 respostas

2

Foi assim que consegui vdpau :

  1. Editado /etc/bumblebee/xorg.conf.nvidia para ter

    Section "Screen"
        Identifier "Screen0"
        DefaultDepth 24
        SubSection "Display"
            Depth    24
            Virtual  1920 1080
        EndSubSection
    EndSection
    
  2. Executar

    LD_LIBRARY_PATH=/usr/lib/nvidia-current:/usr/lib/nvidia-current/vdpau DISPLAY=:8 optirun mplayer -vo vdpau file.720p.mkv
    
  3. Executar

    LD_LIBRARY_PATH=/usr/lib/nvidia-current DISPLAY=:8  compiz --replace &
    
  4. Baixou o link , removeu xorg.conf dele, depois compilou (apenas make command).

  5. Executar ./windump :8 :0

Observação: você não precisa editar /etc/bumblebee/bumblebee.conf e alterar KeepUnusedXServer para true à medida que executamos o MPlayer diretamente com a Optirun.

    
por ruby.freeman 10.10.2012 / 12:26
0

Eu posso ver uma falha na sua abordagem para usar o servidor X iniciado pelo Bumblebee ( :8 ). Uma vez que o daemon Bumblebee detecta que não há clientes optirun, ele desliga o servidor X. Para fazer com que o servidor X permaneça ativo mesmo se optirun tiver saído:

  1. Edite o /etc/bumblebee/bumblebee.conf e defina KeepUnusedXServer=true
  2. Reinicie o daemon usando sudo restart bumblebeed (cuidado: isso eliminará qualquer aplicativo optirun existente)
  3. Acione uma partida do servidor X: optirun true ( true é apenas um comando que retorna imediatamente, pode ser qualquer coisa)
  4. Execute um aplicativo no servidor X secundário. A parte LD_LIBRARY_PATH é necessária se você estiver usando o driver nvidia:

    LD_LIBRARY_PATH=/usr/lib/nvidia-current DISPLAY=:8 metacity --replace &'
    
  5. Execute o windump com: windump :8 :0

Nota: Eu não consegui fazer isso funcionar com o xorg-edgers / ppa + nouveau e com o driver nvidia usando o fork do gebarts. Com o driver nvidia, fiquei muito tearing ao executar glxspheres . Se a resolução da tela despejada não corresponder à resolução de exibição principal, você provavelmente precisará adicionar modelines extras a /etc/bumblebee/xorg.conf.nvidia . Para 1920x1080, as linhas a serem adicionadas se parecem com:

Section "Screen"
    Identifier "Screen0"
    DefaultDepth 24
    SubSection "Display"
        Depth    24
        Virtual  1920 1080
    EndSubSection
EndSection
    
por Lekensteyn 25.02.2012 / 12:41
0

Fico feliz que as pessoas gostem da minha solução, mas gostaria de salientar que esta é apenas uma forma de provar o conceito de VDPAU com o Optimus.

O gebart escreveu o "hybrid-windump" de uma maneira que é strongmente ligada à CPU, já que tudo é copiado de "screen" para "screen" de uma maneira bastante ineficiente.

Sim, você está usando o VDPAU para decodificar, mas não está conseguindo nenhuma das economias de uso da CPU.

Há também uma opção para descarregar janelas simples por sua ID de janela x.

Para teclado, você precisa de Option "AutoAddDevices" "true" .

Você também pode usar o windup híbrido para iniciar uma sessão inteira de área de trabalho pronta para VDPAU usando sua DE escolhida.

Se você ainda quiser usar isso, aqui estão alguns vídeos de como são os resultados (dependendo da configuração do X):

link

link

    
por Starks 20.02.2013 / 02:48
-1

Deve ser DISPLAY=:0; metacity --replace &

Além disso, o optirun diz que seu display é claramente: 0.0, por que você está tentando iniciar a exibição da metaclade: 8? Você tem um programa em exibição: 8 que não podemos ver em sua postagem? Se você fizer isso, por favor, forneça-nos essa informação também, por favor?

    
por Chuck R 18.02.2012 / 14:19