Vídeo em smartphones: Usando o TCPMP e o CorePlayer

Vídeo em smartphones: Usando o TCPMP e o CorePlayer

O TCPMP foi um dos primeiros players móveis de vídeo realmente utilizáveis, ainda na época dos Palms x Pocket PCs. Ele rodava em diversas plataformas, incluindo o Windows Mobile, Palm e até mesmo S60, suportava diversos formatos de arquivos, tem um desempenho muito bom e, como se não bastasse, era open-source e gratuito.

Ele foi originalmente desenvolvido com base no código do Mplayer (o do Linux), com otimizações adicionais para tirar o máximo de desempenho dos processadores ARM usados nos aparelhos. Com ele, é possível assistir vídeos até mesmo em um Treo 600, que usa um processador TI OMAP 310 de apenas 144 MHz:

O grande problema é que ele foi descontinuado a partir da versão 0.72RC1, dando origem ao CorePlayer, que é um aplicativo comercial, que custa US$ 29.95. Ele está disponível no http://www.coreplayer.com/, em versões para S60, UIQ, Windows Mobile e Palm, com a promessa de versões futuras para o iPhone e para o Android.

Naturalmente, as versões atuais do CorePlayer são bem superiores ao antigo TCPMP. Apesar disso, os binários do antigo TCPMP continuam disponíveis, fazendo com que ele continue sendo uma boa opção para quem usa aparelhos baseados no Windows Mobile ou no PalmOS. Infelizmente, quem tem um aparelho com o S60 fica de fora, já que a versão disponível roda apenas em aparelhos antigos, com o S60 segunda edição. Para os atuais a única opção é mesmo o CorePlayer.

Embora o site original já não esteja mais no ar, você pode baixar o TCPMP 0.72RC1 no http://www.hpcfactor.com/downloads/tcpmp/ ou no http://picard.exceed.hu/tcpmp/test/. Se eles também saírem do ar no futuro, você pode baixar meu arquivo de backup:
https://e.cdn-hardware.com.br/static/media/press/arquivos/tcpmp072rc1.zip

Ele inclui as versões para o Windows Mobile, PalmOS e também a versão desatualizada para o S60 segunda edição. Para instalar, copie os arquivos da versão correspondente para o cartão de memória e instale todos os arquivos, começando pelo “tcpmp”, que é o executável principal.

Embora tanto o TCPMP quanto o CorePlayer sejam capazes de exibir diretamente arquivos na maioria dos formatos conhecidos, você terá melhores resultados convertendo os vídeos para um formato mais leve antes de transferir, já que mesmo os aparelhos mais parrudos não possuem poder de fogo suficiente para decodificar vídeos com 480 linhas com um frame-rate aceitável, o que dizer de vídeos full-HD. Além do mais, não faz muito sentido entupir o cartão de memória com vídeos de alta resolução, apenas para que o player tenha o trabalho de redimensioná-los antes de exibir.

Uma boa pedida é converter os vídeos para o formato MPEG-4, com áudio em MP3 (o CorePlayer não suporta o AAC devido a problemas de licenciamento), com bitrate de 256, 384 ou 512 kbits (de acordo com a relação entre qualidade e tamanho de arquivo que preferir) e frame-rate de 15 FPS, o que permite que os vídeos sejam exibidos mesmo nos aparelhos mais modestos e sem um consumo excessivo de bateria.

Nos smartphones com processadores de 300 MHz ou mais, o FPS deixa de ser problema e você pode simplesmente manter os frames originais, reduzindo apenas a resolução.

Um exemplo de configuração ao converter os vídeos no Windows, usando o Supper (http://www.erightsoft.com/SUPER.html) seria usar o avi como container, MPEG-4 como codec de vídeo e o mp3 para o áudio, gerando um arquivo bastante compatível:

Ao clicar no Encode, você poderá escolher entre usar o DIVX, DX50 ou o XVID como renderizador. Entre os três, o XVID é o que gera arquivos menores (porém faz com que a conversão seja mais demorada) e o DX50 é o mais rápido. O DIVX é o formato divx original, que pode ser usado se você precisar de compatibilidade com players antigos.

No Linux, você pode fazer uma conversão rápida usando o mencoder. O comando para converter com bitrate de 512 kbps para o vídeo e 128 kbps para o áudio (já que estamos usando MP3) é:

$ mencoder -oac mp3lame -lameopts cbr:br=128 -ovc lavc -lavcopts vcodec=mpeg4:\
vbitrate=512 -ofps 15 -vf scale=320:240 -o video-convertido.avi video.avi

Para manter os frames originais, basta remover a opção “-ofps 15” do comando. Para os vídeos em formato wide, use “scale=320:176” em vez de “scale=320:240”.

Este é um exemplo de script que você pode usar para converter de uma vez todos os arquivos de vídeo dentro de uma pasta (os arquivos convertidos ganham o prefixo “core” e os originais são preservados):

for i in *.avi; do
mencoder -oac mp3lame -lameopts cbr:br=128 -ovc lavc -lavcopts \
vcodec=mpeg4:vbitrate=512 -ofps 15 -vf scale=320:240 -o “core-$i” “$i”
done

Graças ao plugin “ffmpeg” o TCPMP oferece suporte a vídeos no formato H.264, o que permite que ele exiba arquivos de vídeo formatados para o iPod mas, infelizmente, o mesmo não se aplica ao CorePlayer, devido à falta de suporte ao formato AAC.

Concluindo, se você usa o S60, uma opção gratuita (porém limitada) ao CorePlayer é o DiVX Player, que é capaz de exibir vídeos no formato xvid. Para baixar, acesse o http://labs.divx.com/MobileCommunity e use o link “Symbian OS S60 3rd Edition”. É necessário fazer um cadastro gratuito para ter acesso ao download, fornecendo um mail válido.

Para converter vídeos para o formato do DivX Player no Linux, você pode usar os comandos abaixo, onde o “video.avi” é o arquivo que será convertido e o “video-convertido.avi” é o arquivo que será gerado. O primeiro utiliza o mencoder e o segundo o ffmpeg:

$ mencoder -oac mp3lame -lameopts cbr:br=128 -ovc xvid -xvidencopts \
bitrate=256 -vf scale=320:240 -o video-convertido.avi video.avi

O Divx Player não tem um desempenho tão bom quanto o CorePlayer, por isso é necessário usar um bitrate mais baixo ao converter. No exemplo estou usando bitrate de 256 kbits (bitrate=256), que funciona bem na maioria dos aparelhos, mas você pode testar bitrates maiores até começar a notar perda de frames.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X