Videos no Zen V Plus: YouTube, Google Video, Channel9...

Olá pessoal,

recentemente ganhei um MP3 Player, um Creative Zen V Plus de 4Gb. Comecei a brincar nele e vi que podia automatizar algumas coisas com scripts, claro. Por enquanto, me preocupei em resolver o problema sobre como converter vídeos (no meu caso, entrevistas do Channel9 e palestras no YouTube e Google Video) para o formato utilizado no meu player.

Pra minha surpresa, o formato que ele lê é simples: AVI sem compressão nenhuma, algo como uma sequencia de arquivos bitmap. Não entendo muito disso e posso estar falando besteira... mas não encontrei nenhuma documentação no site da Creative. Isso chateia porque é filmes pequenos ficam enormes devido à falta de compressão. Testei com um de 50 minutos e ele se transformou em um monstro de 850Mb!

Depois de brigar bastante com o software da própria Creative para converter meus vídeos, encontrei uma solução na Internet de como usar um programinha chamado ffmpeg. O problema é que ele gerava arquivos com a imagem e as cores invertidas. Ainda no mesmo site, há um relato de que ao executar o comando mais uma vez sobre o mesmo arquivo o vídeo normalizava, mas ainda havia o problema do player travar quando se tentava deslocar para uma posição mais à frente (seek).

Em um dos meus testes, descobri como resolver o problema. Agora consigo converter videos perfeitamente, tanto filmes comuns quanto arquivos FLV e WMV também! Descobri quando esqueci acidentalmente do parâmetro -r na segunda vez que executava o ffmpeg. Veja como converter:

ffmpeg -i arquivo.mpg -vcodec rawvideo -acodec adpcm_ima_wav -r 12 -s 128x128 -pix_fmt rgb24 out.avi

ffmpeg -i out.avi -vcodec rawvideo -acodec adpcm_ima_wav -s 128x128 -pix_fmt rgb24 out2.avi

Note que os parâmetros tem que ser os mesmos, basta retirar o frame-rate. Sabendo do comando que funciona, criei um script pra isso, o movie2zen.ps1. Ele recebe como parâmetro o filme e, opcionalmente, o framerate e a resolução. Veja:

Param([string]$input_movie, [int]$rate = 12, [string]$resolution = '128x128')
$tempname = $input_movie + '.temp.avi'
$outname = $input_movie + '.out-zen.avi' 

.\ffmpeg.exe -y -i $input_movie -vcodec rawvideo -acodec adpcm_ima_wav -pix_fmt rgb24 -r $rate -s $resolution $tempname
.\ffmpeg.exe -y -i $tempname -vcodec rawvideo -acodec adpcm_ima_wav -pix_fmt rgb24 -s $resolution $outname
rm $tempname

Agora, para converter um filme:

.\movie2zen filme.mpg

ou ainda

.\movie2zen filme.mpg 15 '128x96'

Para converter uma pasta inteira:

cd c:\filmes-curtos
ls | foreach {.\movie2zen $_}

Note que eu dei antes um CD para a própria pasta para que os filmes gerados saiam na mesma pasta de origem. Meu script apenas gera um segundo arquivo com o sufixo '.out-zen.avi'.

Até a próxima!

PS: Se alguém quiser me ajudar e revisar a versão em inglês que estou fazendo deste tutorial, eu ficarei muitíssimo agradecido! =).

Categorias dessa postagem: , ,

Comentários

Rúben : Ola Vinicius,

Chegas-te a usar o programa 'Creative Video Converter'? É que eu comprei um Creative Zen V Plus, e nao estou a conseguir colocar videos lá... tento converter e o programa nao converte...

Será que me podes ajudar? [11/8/07 18:32 - link]

rúben : Deixo aqui o meu email para o caso de poderes ajudar...

daniel_pt100@hotmail.com [11/8/07 18:36 - link]

Vinicius Canto : Olá Ruben,


depende do vídeo... e do humor do programa da Creative também.

Cheguei às seguintes conclusões:

1) Ele dá a mesma mensagem de erro sempre, não importa a falha que tenha acontecido.

2) Ele falha na maioria das vezes com arquivos .mpeg. Sugiro converter antes ele pra AVI usando o ffmpeg (ffmpeg -i original.mpeg modificado.avi) e depois usar o programa da Creative

3) Ele também falha quando falta espaço em disco pra gerar o vídeo. ex: Vinicius tem um webcast de 30 minutos para converter, o que dá um video de mais ou menos 1Gb. Se no disco rigido não tiver ao menos 1gb pra ele fazer a conversão, ele falha...

As mensagens de erro são sempre "Conversão sem sucesso", em Inglês.

O problema é que os meus testes com o ffmpeg, embora funcionem, ainda estão meio desanimadores. Meus videos com o ffmpeg ainda não ficam tão pequenos quanto os feitos no programa da Creative... o que eu descobri é que eles usam uma compactação diferente da minha tanto no audio quanto no video. No video pq ele converte para 15 frames/segundo e para 128x128 e ainda assim fica menor que o meu em 12fps e 128x96. O audio eu tenho certeza que é diferente também porque, no Winamp, ele acusa a existencia de um "ACM Filter", que eu não entendi bem o que é... mas sei que vem do audio.

Ainda estou investigando o que fazer... mas não sei o que fazer até descobrir qual o codec que a Creative usa. Se tiver algum progresso, entre em contato comigo...

Espero ter ajudado,


Vinicius


PS: Ah, parabéns pelo Zen! É realmente o melhor MP3 player baseado em memória flash que existe até o momento! Nem o iPod é tão bom... =) [12/8/07 01:13 - link]

Anônimo : ola vinicius eu estava com mesmo problema que vc sobre o tamanha dos videos no zen v plus ... se vc puder me adicionar no msn ( pq eu estou com algumas duvidas )pra gente troca 1 ideia ... eu fico grato .. valeus ... muitatretta@hotmail.com [4/4/08 15:15 - link]

Nagüeva Guilherme : Eu tenho procurado uma forma de sincronizar um Zen V pelo Itunes. Por acaso você já conseguiu fazer isso? Tem interesse em tentar desenvolver algo?

Abraço,

Nagüeva Guilherme
http://blog.nagueva.com [7/7/08 11:32 - link]

Hugo Mendes™ : Existe alguma programa para converter os videos com tamanho res=duzido sem ser por linha de comando?

hugodqm@hotmail.com [17/10/08 10:45 - link]