Tecnocracia Digital

Maio 2, 2011 por italomaia

Compilando o mplayer no Ubuntu - MultiThread

Senhores, essses dias, com meu notebook cce na assistência, fiquei limitado ao meu netbook asus 1201N para absolutamente todas as minhas tarefas diárias. Isso quer dizer: programar, assistir vídeos, estudar, jogar, etc. Para meu mais absoluto espanto, este netbook conseguiu dar conta da maioria das tarefas!

Tudo bem que estou privado de utilizar IDE's poderosas e abrir muitas abas no navegador de uma vez. Tudo bem que todos os flash rodam superlentos e o Gimp / Inkscape abrem feito uma carroça, mas pouca coisa realmente me incomodou. Quero dizer, "pouca coisa"!

Um netbook é...um netbook...

Mesmo não podendo utilizar programas mais pesados com desenvoltura, o que mais me incomodou durante esse período foi a dificuldade em tocar vídeos em alta resolução. Mesmo com o vdpau instalado corretamente e com o último driver da nvidia no Ubuntu 11.04, rodar certos vídeos era simplesmente um sacrifício! Engasgos e artefatos na tela (já que eu ficava bulindo muito com as configurações) era uma constante. Algo precisava ter feito! Tive fé em meu hardware e fui para a luta!

Mplayer

Mplayer é um tocador de vídeo muito bom e completo disponível na internet. Ele possui suporte a aceleração via hardware com vdpau. Eu o uso com bastante frequência, mas, por algum motivo, mesmo com aceleração por hardware, meus vídeos continuavam engasgando. A solução era habilitar a multi-thread no mplayer para espremer o máximo de desempenho da máquina (a versão atual do mplayer nos repositórios não aceita esta função). Mas, o que são threads?

Threads

Threads são a forma como os sistemas operacionais se organizam para aproveitar melhor os recursos da sua máquina e dar a impressão de que há várias atividades ocorrendo ao mesmo tempo. Com os processadores de vários núcleos, o sistema operacional passou a poder, de fato, executar várias tarefas ao mesmo tempo e não somente dar a impressão de o estar fazendo. Básicamente, isso tem a possibilidade de tornar seus programas mais rápidos.

E como eu faço isso?

Bem, tudo que eu vou falar aqui foi testado no ubuntu 11.04 em um netbook asus 1201N com nvidia ION, e funciona bem. Então, vamos lá! Comece instalando algumas dependências:

sudo apt-get install git-core subversion
sudo apt-get build-dep mplayer

Até aqui, muito fácil. Agora baixe o código fonte do mplayer assim:

svn checkout svn://svn.mplayerhq.hu/mplayer/trunk mplayer

Agora vamos compilar. Certifique-se que você tem o driver mais atual da nvidia instalado assim como a libvdpau-dev.

cd mplayer
./configure  # aqui eu utilizo a opção --disable-gui
make
sudo make install

Pronto. Se você está em um netbook, como foi o meu caso, acredito que está é uma boa hora para sair com os amigos ou ir tomar um chocolate quente na padaria da esquina, pois vai demorar bastante!

Outra sugestão que faço é que você crie um arquivo de configuração ~/.mplayer/config e adicione o seguinte:

vo=vdpau,xv
vc=ffh264vdpau,ffodivxvdpau,ffmpeg12vdpau
cache=8192

double=yes
framedrop=1

vfm=ffmpeg
ao=alsa
lavdopts="threads=4"
nocorrect-pts=1

Agora assista qualquer coisa (ou quase qualquer coisa!) sem travar ; )

Tags: compilar compile mplayer threads ubuntu vdpau