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 ; )