Executa o mplayer usando x11 do console de texto?

2

Eu quero poder reproduzir vídeo de qualidade em um console de texto. Eu tenho duas opções configuradas, nenhuma das quais é ideal:

  1. Eu configurei o mplayer para usar a opção -vo fbdev2 , que eu entendo usar diretamente um buffer de quadros fornecido pelo linux. Isso funciona, mas não é da melhor qualidade.

  2. Eu tenho um script que muda para o tty 7 para reproduzir o vídeo e depois mudar de volta. Assim, obtenho a qualidade de X, mas há alguns problemas:

Os problemas com o segundo método são os seguintes.

  1. Se eu não estiver logado em uma sessão de gui no tty7, o vídeo não será mostrado (eu apenas olho para a tela de login).

  2. O conteúdo da sessão de gui é exibido quando o jogador termina. Não é grande coisa, mas parece apenas cludgy.

  3. Se eu mudar o tty durante o vídeo, vou voltar ao tty que começou o vídeo quando o vídeo terminar de tocar.

Eu gostaria de reproduzir um vídeo a partir de um console de texto (tty1-6) usando X. Até onde eu sei, essa é a única maneira de obter um vídeo de qualidade e fazê-lo funcionar como se estivesse tocando no console. estou usando.

Qualquer conselho sobre como configurar um console de texto para iniciar o mplayer em X seria muito apreciado!

NOTA 1: Eu acho que uma instalação antiga que eu tinha do Ubuntu 14 fez isso automaticamente quando o mplayer era chamado, já que o mplayer tocava com boa qualidade no console de texto. Eu não tenho mais essa configuração para verificar.

NOTA 2: O que acontece quando eu apenas chamo o mplayer com vo -x11 é que ele não consegue encontrar um display, já que DISPLAY não está definido. O único valor válido para DISPLAY é :0[.0] , e quando eu uso essa exibição, o vídeo é reproduzido em tty7, mas tomando stdin do tty que chamou o vídeo.

NOTA 3: Estou executando o Ubuntu Mate 16.04.1, amd64, e experimento o mesmo problema em vários desses sistemas com placas de vídeo variadas.

    
por Kyle 05.08.2016 / 00:19

1 resposta

4

Transformando meu comentário em uma resposta:

Minha melhor recomendação é usar o mpv , que suporta drivers de saída de vídeo (e muito mais!) que o AFAIK mplayer não possui. Embora o desenvolvimento do mplayer tenha visto recentemente alguma atividade, por um longo tempo (mplayer 1.1: junho de 2012; 1.2: outubro de 2015) ele estava efetivamente morto. o mpv, por outro lado, teve lançamentos consistentes desde o primeiro lançamento, em agosto de 2013; está honestamente à frente do mplayer neste momento.

Com o mpv, você pode usar diretamente a configuração de modo do kernel e o gerenciador de renderização direta (DRM) com mpv -vo drm FILE . Isso deve fornecer saída de alta qualidade e resolução total, mas sem aceleração de hardware (não acredito que fbdev2 tenha aceleração de hardware). Se o seu mpv é compilado com ele, você também pode usar a saída OpenGL / DRM (que é acelerada por hardware): mpv -vo opengl:backend=drm-egl FILE . Você pode verificar vendo quais back-ends estão listados por mpv -vo opengl:backend=help

Como alternativa, você pode executar um servidor X sem um ambiente de área de trabalho. Por exemplo, dependendo de como sua distro configurou as permissões das permissões, você poderá iniciar um servidor X executando apenas o mplayer (e saindo quando o mplayer sair) usando algo como isto:

startx /usr/bin/mpv FILE -- :1 # full path required; runs w/o xterm
startx -e mpv FILE -- :1       # runs it inside an xterm, which you'll probably see flicker on screen at start/exit.

Você poderia obviamente usar algo como $(command -v mpv) para obter o caminho completo para o primeiro formulário. Isso inicia a exibição: 1, executa mpv nele e, em seguida, desliga o servidor X quando o mpv é concluído (tentei com o mplayer, mas ele não funcionou na minha máquina - dado, possivelmente o mplayer está quebrado na minha máquina, Eu não usei isso desde a mudança para o mpv). Você também pode deixar um servidor X rodando sem um ambiente de desktop. Você pode encontrar algo como nodm útil para iniciar um servidor X sem o ambiente de área de trabalho.

    
por 05.08.2016 / 02:37