Linux multimídia
Descubra o que são e como assistir vídeos no formato DivX, a nova febre do mundo multimídia, e como, usando apenas ferramentas livres, convertê-los em discos VCD, que podem ser assistidos na maioria dos DVD Players do mercado
A revolução do vídeo digital
O vídeo digital, além de permitir que você assista a programas de TV e filmes com qualidade de som e imagem inquestionável, abre também uma nova porta para distribuição de conteúdo, a Internet. Recentemente, um novo formato de vídeo digital tomou de assalto o lugar de formatos consagrados como MPEG e Quicktime, sendo chamado por alguns de “O MP3 do vídeo”. Este formato é o DivX.
Se você costuma freqüentar sistemas de compartilhamento de arquivos como o Napster, eDonkey ou Kazaa, provavelmente já encontrou arquivos neste formato. Mas você sabe o que eles são, e como assistir estes arquivos em seu PC? E na TV, usando seu DVD Player?
Acompanhando este artigo, você irá aprender um pouco sobre o DivX e sua história, quais programas utilizar para assitir tais arquivos e como, usando apenas ferramentas Open Source, convertê-los em um disco VCD, formato compatível com a maioria dos DVDs encontrados no mercado. Interessante, não?
Para “desfrutar” deste artigo será necessário um PC com gravador de CD, um DVD player e algumas horas de paciência. Memória RAM e de HD de sobra também são fundamentais para o sucesso dessa empreitada. Depois de todo o esforço você poderá dizer a todo o mundo que seu Linux pode ser um terminal multimídia de dar inveja a muitos “sistemas multimídia” baseados em sotware proprietário por aí.
O que é DivX?
O DivX é um novo formato de compressão de vídeo que está sendo chamado por alguns de “O MP3 do vídeo”. Compatível com o padrão MPEG 4, arquivos no formato DivX apresentam simultaneamente duas características há muito desejadas: são pequenos, o que facilita seu transporte através da Internet (algo importante, mesmo nestes tempos de Cable Modem e ADSL) e tem excelente qualidade de imagem, similar à encontrada nos DVDs. Para se ter uma idéia, um mesmo arquivo “fonte”, compactado em DivX, pode ser até oito vezes menor do que seu equivalente em MPEG 2 (o padrão usado nos DVDs) e leva menos da metade do tempo para ser comprimido.
O padrão foi criado a partir de uma versão modificada do codec MPEG 4 encontrado na versão 6.4 do Windows Media Player. Com o tempo, uma nova versão do codec DivX foi desenvolvida, totalmente livre do código fonte original da Microsoft, e uma empresa, a DivX Networks, foi criada para cuidar da evolução e divulgação do padrão.
Enquanto isso, um grupo de desenvolvedores criou o Project Mayo (caso esteja curioso, Mayo vem de Mayonnaise, maionese, em francês), e começou o desenvolvimento do OpenDivX, uma versão Open Source do codec DivX, com alguns “extras”, como uma maior taxa de compressão do vídeo, mas ainda assim mantendo uma excelente qualidade de imagem. O projeto conta atualmente com mais de 50 desenvolvedores.
Como faço para assistir DivX?
Há vários programas para Linux capazes de reproduzir vídeos no formato DivX. Os mais populares são o aviplay, parte da biblioteca avifile, e o MPlayer, este último um player de arquivos multimídia muito completo, capaz de reproduzir, além de vídeos DivX, arquivos nos formatos AVI, MPEG, Quicktime (MOV, desde que não tenham sido comprimidos com o codec Sorenson), VIVO, ASF, WMV (Windows Media Vídeo) e muitos outros, além de contar com aceleração via hardware para vários modelos populares de placas de vídeo.
Para quem está acostumado com a instalação de programas através de pacotes RPM, instalar o MPlayer pode ser um pouco estranho. Por usar uma série de métodos de otimização para conseguir o melhor desempenho possível, a equipe de desenvolvimento proibia a distribuição de pacotes binários, alegando que uma versão erroneamente compilada poderia apresentar desempenho muito abaixo do normal. Com a recente mudança da licença do programa para a GPL, essa restrição foi afrouxada, e já é possível encontrar alguns pacotes RPM na Internet. Contudo, a equipe de desenvolvimento continua recomendando, em letras maiúsculas: compile sua própria versão do MPlayer.
Não é tão complicado como parece: além do código fonte do MPlayer, Você precisará dos pacotes de desenvolvimento das bibliotecas SDL, LibPNG e GTK. Descompacte o código fonte em um diretório qualquer e execute a já clássica seqüência de comandos ./configure, make, make install neste diretório. Se quiser compilar a interface gráfica do MPlayer, adicione o parâmetro --enable-gui ao ./configure. Para conhecer as dezenas de outras opções que podem ser passadas ao script de configuração, digite ./configure -- help.
Com o MPlayer instalado, assistir a um vídeo DivX é fácil. Execute o programa com o comando mplayer -vo sdl NomeDoVideo.avi. O parâmetro -vo sdl indica qual plugin deve ser usado para a saída do vídeo na tela. -vo help mostra uma lista de todos os plugins possíveis.
A versão 5 do codec DivX está se popularizando rapidamente, e é cada vez mais comum encontrar vídeos compactados neste formato. Para assistí-los, basta instalar o codec apropriado em seu micro. O arquivo divx4linux-20020418.tgz pode ser baixado no site avifile.sourceforge.net, e deve ser descompactado em um diretório qualquer. Como root, entre no recém criado diretório divx4linux-20020418 e execute o script de instalação, ./install.sh.
E para quem se assusta com todas estas linhas de comando, o MPlayer tem uma interface gráfica, cuja aparência pode ser customizada com o uso de “skins”. Para acessá-la, o comando é mplayer -vo sdl -gui.
Dentro do MPlayer, há uma série de atalhos de teclado que podem ser usados. Veja alguns deles no box ao lado.
Várias opções de linha de comando podem ser usadas. Duas delas são -vcd, para reprodução de Vídeo CDs (basta colocar o disco no drive e digitar mplayer -vo sdl -vcd 1 para começar pela primeira trilha do disco) e -dvd, para reprodução de DVDs. Para conhecer todas as outras, digite: mplayer --help ou man mplayer
Convertendo para a “telinha”
OK, assistir vídeos DivX em seu micro é legal mas, a não ser que você tenha um monitor de 21 polegadas e um bom sistema de som, não seria melhor assistí-los em uma TV? Uma alternativa, que se torna a cada dia mais popular é converter os vídeos para o formato Vídeo CD (VCD) e assistí-los em qualquer DVD player que suporte este formato.
O Vídeo CD é um padrão para armazenamento de vídeo digital criado no início da década de 90 por uma parceria entre a Philips e a JVC, originalmente com o propósito de ser usado em máquinas de karaokê no mercado asiático (tanto que o primeiro nome do formato era Karaoke-CD). Um Vídeo CD é um CD comum, de 650 MB, em que vídeo e áudio são armazenados em um arquivo no formato MPEG 1. O vídeo pode ter uma resolução de 352x240 pixels em um disco NTSC (352x288 em um disco PAL), resolução equivalente ao VHS, com áudio em estéreo a 44100 kHz (a mesma qualidade de um CD). Com o tempo, vários “upgrades” do padrão foram surgindo, como o VCD 2.0, que adicionou suporte a imagens estáticas e menus, e o SVCD (Super Vídeo CD) que aumenta a resolução do vídeo para 480x480 pixels, o que propicia qualidade de imagem similar ao S-VHS, e utiliza o padrão MPEG 2 para compressão de vídeo, o mesmo utilizado nos DVDs.
Apesar de tentativas de algumas empresas, como a própria Philips com seu CD-I (um sistema interativo ligado à TV que, além de tocar CDs, rodar alguns jogos e acessar conteúdo multimídia como enciclopédias, também tocava VCDs), o formato nunca se popularizou fora da Ásia, onde é um sucesso absoluto, devido principalmente à enorme quantidade de players instalados e o baixo custo dos discos, juntamente com a disponibilidade de novos lançamentos, originais, quase simultaneamente com DVD, tornando-o uma alternativa econômica e muito interessante.
Muitos especulam que o verdadeiro motivo do VCD nunca ter se tornado popular no ocidente tem a ver com sua única grande falha: Discos VCD não possuem nenhum tipo de proteção anticópia, o que fez com que os grandes estúdios de cinema tivessem medo de ver o mercado inundado com cópias piratas de seus sucessos caso o padrão fosse largamente aceito. Preferiram esperar alguns anos pela evolução dos sistemas de criptografia, e apostar no padrão DVD.
Como o padrão VCD é praticamente um “subconjunto” das especificações DVD, muitos fabricantes adicionam, como uma espécie de “bônus”, suporte a discos VCD em seus DVD Players (consulte a imensa lista de compatibilidade no site VCDHelp, veja o quadro Para Saber Mais). E com uma máquina com o Linux e as ferramentas certas, como o transcode e o GNU/VCDImager, fica fácil criar seus próprios discos VCD em casa.
Pondo a mão na massa
Para começar, você precisará dos pacotes avifile, MJPEG Tools (e o adicional MMX JPEG), Lame, tooLame e Transcode (todos inclusos no CD desta edição). Descompacte-os em um diretório qualquer, e compile cada um deles com a seqüência ./configure, make, make install. Atenção! A instalação deve ser feita na seqüência: avifile -> JPEG MMX -> MJPEG Tools -> LAME -> tooLAME e Transcode.
Ao final, você terá o transcode, que será o utilitário que iremos usar para criar nossos VCDs, e alguns módulos de importação/exportação de vídeo instalados em sua máquina. Para exemplificar a conversão, vamos usar um trailer do filme O Senhor dos Anéis, encontrado para download junto a vários outros clipes, trailer e vídeos DivX em www.divxter.com.
O comando para iniciar a conversão de DivX para um VCD 1.1 (a forma mais “básica” de VCD) é:
transcode -x af6,mp3 -i lotr.avi -V -y mpeg2enc,mp2enc -F 1 -Z 352x240 -E 44100 -b 224 -o lotr
Parece complexo? Não mais depois que você descobre o significado de cada opção:
-x: Especifica quais módulos devem ser usados para importação de vídeo e áudio, respectivamente. af6 é um módulo que suporta todos os formatos de vídeo aceitos pela biblioteca avifile, incluindo DivX, e mp3 é o módulo para importação de áudio MPEG (Layer II ou III), formato geralmente usado nos arquivos DivX.
-i: Indica o arquivo a ser importado
-V: Diz ao transcode para lidar internamente com o vídeo no formato YUV, seu formato nativo. Isso acelera, bastante, o processo de conversão.
-y mpeg2enc, mp2enc: Módulos a serem usados para exportar vídeo e áudio. mpeg2enc é um módulo para “encoding” de vídeo nos formatos MPEG 1 (VCD) e MPEG 2 (SVCD e DVD). mp2enc é o módulo para encoding de áudio no formato MPEG Layer II (MP2), usado nos VCDs.
-F: Ativa uma série de parâmetros internos que dizem ao Transcode para gerar um arquivo que siga estritamente o padrão VCD, incluindo número de quadros por segundo e bitrate.
-Z 352x240: Redimensiona o vídeo para o tamanho de 352x240 pixels, o utilizado em um VCD 1.1 no padrão NTSC.
-E 44100: Especifica a taxa de amostragem usada no áudio. 44100 kHz é a mesma taxa de amostragem utilizada em um CD.
-b 224: Bitrate utilizado na trilha de áudio. No caso, 224 Kbps.
-o lotr: Após a conversão, o transcode terá gerado em seu disco dois arquivos, com as extensões .mlv .mpa. (vídeo e áudio, respectivamente). O parâmetro -o diz qual nome deve ser usado nestes arquivos. Em nosso exemplo, os arquivos de saída seriam lotr.mlv e lotr.mpa.
OK, agora que você conhece o significado de cada opção, dê o comando acima e aguarde o final da conversão. Dependendo do tamanho do arquivo de origem, o processo pode levar de alguns minutos a várias horas, portanto, pegue um café ou vá dar uma volta. Em uma de nossas máquinas de testes, um AMD Duron de 600 MHZ com 256 MB de RAM, a taxa de conversão era de cerca de 6 quadros por segundo, o que significa que um segundo de vídeo no padrão NTSC (que tem 30 quadros por segundo) demora 5 segundos para ser convertido para VCD.
Claro que problemas podem acontecer durante o processo de conversão, afinal de contas, todos sabemos que a Lei de Murphy (cujo postulado básico diz: “Se algo tem a mais remota possibilidade de dar errado, com certeza dará errado)” é uma realidade. Os problemas mais comuns são a inversão das cores vermelha e azul na imagem de seu VCD, o que transformará todos os personagens de seu vídeo em “marcianos”, e a inversão da imagem, que fica de ponta cabeça. Para resolver o primeiro problema, basta adicionar o parâmetro -k à linha de comando do transcode. Para o segundo caso, não é necessário virar sua TV de ponta cabeça. Apenas adicione o parâmetro -Z.
Como foi dito acima, ao final do processo você terá dois arquivos em seu disco, com as extensões .mlv e .mpa, que são as trilhas de vídeo e áudio de seu VCD. Antes de poder gravá-las em um CD, você precisa uni-las novamente em um único arquivo, através de um processo chamado multiplexação. A ferramenta usada para isto é o mplex, parte do pacote MJPEG Tools. O comando é simples:
mplex -f 1 lotr.m1v lotr.mpa -o Lotr.mpg
O resultado final será um único arquivo, em nosso exemplo chamado Lotr.mpg. Experimente verificar o tipo deste arquivo com o comando file. O resultado deve ser algo como:
Lotr.mpg: MPEG system stream data
O que significa que nosso arquivo já está no formato adequado para um VCD, prontinho para ser gravado. Para isso, iremos usar dois outros programas, o GNU/VCDImager e o CDRDAO.
Para gerar o VCD em si, contendo nosso vídeo e toda a estrutura de diretórios e arquivos auxiliares requeridos pelo padrão VCD, usamos o GNU/VCDImager. O comando mais simples possível para a geração de um disco VCD é: vcdimager --type='vcd11' --iso-volume-label='Nome do Disco' Arquivo.mpg. Veja o significado de cada parâmetro:
--type='vcd11' - Especifica que um disco no padrão VCD 1.1 deve ser gerado. Caso haja menus e imagens estáticas em seu disco, deve-se usar --type='vcd20'. Se, ao gerar o aqrquivo MPEG, houver sido utilizado o encoding para MPEG 2, use --type='svcd' (Super Vídeo CD).
--iso-volume-label='Nome do Disco' - Aqui você diz qual é o título de seu disco. Esta informação não é necessária, mas alguns players a mostram na tela.
Arquivo.mpg - Arquivo (ou arquivos) a serem incluídos no disco. Você pode especificar mais de um arquivo, o que gerará um VCD com várias trilhas de vídeo, uma para cada arquivo. O primeiro será a trilha um, o segundo a trilha dois e assim por diante.
Quando chamado, o GNU/VCD Imager faz uma análise dos arquivos MPEG a serem incluídos no disco e gera dois arquivos em seu HD. videocd.bin é a imagem do VCD, como um arquivo ISO. Já videocd.cue é uma cuesheet, como um “folheto de instruções”, que indica ao programa de gravação de CDs (no caso o CDRDAO) como a imagem deve ser gravada no disco.
Agora, basta gravar tudo isso no CD. Usamos o CDRDAO, presente na maioria das distribuições. O comando é cdrdao write --device w,x,y --speed=z videocd.cue. --device é o dispositivo de seu gravador de CDs, (descubra qual é com o cdrecord, comando cdrecord --scanbus), --speed indica a velocidade com a qual o CD será gravado, e videocd.cue é o arquivo de “instruções” para a gravação de nosso VCD.
Ao final da gravação, seu primeiro VCD estará pronto! Para testá-lo, coloque-o em seu drive de CD-ROM e mande o MPlayer reproduzir o CD, com o comando mplayer -vo sdl -vcd 1. Ou melhor ainda, coloque-o em seu DVD Player (se ele suportar discos CD-R e VCD) e aperte o Play.
É claro que este artigo não é um tutorial definitivo sobre DivX e criação de VCDs, e muito mais pode ser conseguido se você tiver um pouco de paciência para aprender como os programas e suas inúmeras opções funcionam. Para os interessados, deixamos no Box “Para Saber Mais” uma série de links com mais informações sobre o assunto.
Onde encontro os filmes?
Encontrar conteúdo no formato DivX na internet é muito fácil. Um ponto de referência é a seção showcase do site www.divx.com. E se você gosta de colecionar trailers de filmes, talvez se interesse pelo site www.divxter.com. Até mesmo os grandes estúdios de cinema estão começando a perceber o poder deste formato: A Sony Pictures lançou uma versão em alta resolução do trailer de seu próximo filme de ação, Triple X, em formato DivX, e empresas como a Monument Entertainment oferecem a locação, em formato DivX, de títulos de sucesso, como Eye of the Dragon, de Bruce Lee. Além disso, as grandes redes P2P, como Napster, Kazaa e eDonkey estão literalmente lotadas de material. Só tenha cuidado com as infrações de copyright!
Quanto mais, melhor
Em se tratando de vídeo digital, uma regra mestre diz: “Nunca é suficiente”. Quanto mais rápido seu processador, menor a chance de perda de quadros, ou da síncronia entre o áudio e o vídeo, ao assistir arquivos DivX, menos tempo levará o processo de conversão deles para o formato VCD. Espaço em disco também é algo muito importante, principalmente ao lidar com arquivos grandes. Lembre-se que, por sua alta taxa de compressão, um arquivo DivX de “apenas” 47 MB pode se tornar um monstro com centenas de megabytes quando convertido para um outro formato. Recomenda-se ter ao menos 2 GB de espaço livre em disco, margem de segurança já inclusa, antes de começar esta empreitada.
Utilizamos duas máquinas durante nossos testes para confecção deste artigo. Um AMD Duron de 600 MHZ, com 256 MB de RAM e disco rígido de 40 GB, e um Intel Pentium III de 550 MHZ, com 128 MB de RAM e disco rígido de 8 GB. Os sistemas operacionais usados foram o Conectiva Linux 8 e o Red Hat Linux 7.2. Você pode até acompanhar nosso tutorial usando uma máquina menos potente, especialmente se você pretende apenas assistir vídeos no formato DivX, mas pode ter de enfrentar longos (bem longos) tempos de conversão de arquivo caso queira ir um pouco mais longe.
Atenção!!
Usuários do Red Hat Linux 7.0 ou superior: Devido a inúmeros problemas gerados pelo compilador C (gcc 2.96) incluso nesta distribuição, a equipe de desenvolvimento do MPlayer decidiu não suportá-la. Ao tentar compilar o programa em uma máquina com o Red Hat 7.x, você receberá uma mensagem de erro, informando que uma versão incompatível do GCC foi encontrada. A solução é passar o parâmetro -- disable-gcc-checking ao script de configuração. A equipe do MPlayer avisa que você deve preparar-se para todo o tipo de bugs e comportamentos bizarros, e que relatórios de bugs não são aceitos neste caso. Contudo, em nossos testes em uma máquina com o Red Hat Linux 7.2, não encontramos nada anormal. Mas saiba de antemão que “sua milhagem pode variar”.
Atalhos de teclado do MPlayer
Seta acima: avança um minuto de filme
Seta abaixo: retrocede um minuto de filme
Seta esquerda: avança dez segundos de filme
Seta direita: retrocede dez segundos de filme
F: muda para o modo Full Screen (tela cheia)
C: alterna entre os modos de tela cheia disponíveis
P ou Espaço: pausa o vídeo
Q ou ESC: sai do programa
Legendas:
Cenas do VCD “Star Wars - The Phantom Menace”
Cenas do trailer em Divx de Farscape
Para Saber Mais:
Avifile – avifile.sourceforge.net
MJPEG Tools – mjpeg.sourceforge.net
Mplayer – www.mplayerhq.hu
LAME – www.mp3dev.org
tooLAME - members.dingoblue.net.au/~mikecheng
LibMPEG3 – www.heroinewarrior.com
DivX – www.divx.com
VCD Help – www.vcdhelp.com
Rafael Rigues - rigues@RevistaDoLinux.com.br
Colaboraram: Rodrigo Asturian e Ednilson Miura