Dica rápida para converter vídeos .mkv com legendas para o Android no Linux

Antigamente, vídeos .mkv de 720p ou mais podiam ser vistos sem falhas apenas em PCs relativamente poderosos. Mesmo os netbooks com chipsets da Intel engasgam com eles, sem falar de PCs antigos. Em praticamente qualquer outro lugar que quisesse assisti-los era necessário converter antes para algum formato e resolução mais baixa suportada pelo aparelho.

Entretanto, com a invasão de smartphones e tablets com o Android, equipados com SoCs mais poderosos, assistir vídeos .mkv 720p ou mesmo 1080p sem conversão deixou de ser apenas um sonho. Smartphones equipados com o SoC Sansung Humbird como o Galaxy S, bem como tablets com o Telechips TCC8902 (como o Surfer, sobre o qual escrevi em novembro) são capazes de exibir vídeos 720p e 1080p diretamente e com uma boa autonomia, graças ao decodificador dedicado incluído no chip.

No caso deles, os vídeos simples podem ser exibidos usando o player de vídeo padrão (ou qualquer outro player com suporte ao decodificador dedicado, como o RockPlayer operando no “System mode”) e os vídeos com legendas podem ser exibidos usando o mVideoPlayer, que oferece suporte às legendas embutidas nos arquivos. Ele é outro player gratuito que pode ser baixado no market.

Entretanto, isso deixa de fora os donos de aparelhos um pouco mais antigos, como o bom e velho Motorola Milestone, que não possui suporte via hardware. No caso deles, a única opção é o bom e velho processo de conversão, que é o tema dessa dica.

Você pode converter os vídeos no Linux usando o mkvextract (para extrair as legendas embutidas) e em seguida usar o mencoder para converter o vídeo, já incluindo as legendas direto na imagem. Para usar este script, basta ter instalados os pacotes “mencoder” e “mkvextract”, que estão disponíveis em praticamente todas as distribuições.

Os vídeos gerados podem ser assistidos usando o rockplayer (download gratuito no Market), usando a renderização via software caso o system mode falhe. Aparelhos com SoCs de 1.0 GHz são capazes de exibir os vídeos na resolução nativa da tela sem falhas, mesmo com a renderização via software e modelos mais lentos, como o Milestone, podem ser “atualizados” usando um simples overclock.

O comando básico é:

$ mkvextract tracks video.avi 3:video.sub
$ mencoder -oac mp3lame -lameopts cbr:br=128 -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1024 -vf scale=800:450 -sub video.sub -subcp latin1 -subpos 100 -subfont-text-scale 2.8 -o video-convertido.avi video.avi

Como de praxe, o “1024” é o bitrate e o “2.8” é o tamanho das legendas, que podem ser ajustados a gosto.

Você pode converter vários arquivos dentro da mesma pasta usando este pequeno script, basta colá-lo no terminal:

for i in *; do
mkvextract tracks $i 3:$i.sub
mencoder -oac mp3lame -lameopts cbr:br=128 -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1024 -vf scale=800:450 -sub “$i.sub” -subcp latin1 -subpos 100 -subfont-text-scale 2.8 -o “c$i” “$i”
done

No caso do Motorola Milestone você pode esticar um pouco mais a resolução para que ela se ajuste perfeitamente à tela. Na frequência default, o Milestone vai engasgar, mas você pode resolver o problema fazendo overclock para 1.0 GHz usando o Milestone Overclock (disponível no Market para aparelhos com acesso de root). Nesse frequência ele fica com praticamente o mesmo desempenho do Droid 2, mais do que suficiente para exibir vídeos 480p sem falhas:

for i in *; do
mkvextract tracks $i 3:$i.sub
mencoder -oac mp3lame -lameopts cbr:br=128 -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1024 -vf scale=854:480 -sub “$i.sub” -subcp latin1 -subpos 100 -subfont-text-scale 2.8 -o “c$i” “$i”
done

Em aparelhos com processadores mais lentos, ou com telas HVGA (480×320) você pode usar este:

for i in *; do
mkvextract tracks $i 3:$i.sub
mencoder -oac mp3lame -lameopts cbr:br=128 -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=768 -vf scale=480:280 -sub “$i.sub” -subcp latin1 -subpos 100 -subfont-text-scale 2.8 -o “c$i” “$i”
done
Ver Mais

Postagem relacionada