Blog


Player multimídia em Java

Recentemente precisei fazer, para uma agência de publicidade, um player de vídeo em Java, que além da necessidade óbvia de rodar no Linux, atendesse à vários requisitos deles, como: sempre iniciar em full screen, ler a playlist de um arquivo XML remoto (ou não), fornecer estatísticas de uso pra um banco de dados, exibir imagens, reproduzir cada item durante um tempo programado, exibir arquivos Flash, etc.

Como não achei tutorial algum na web explicando o que fazer (seja em português, seja em inglês), vou descrever brevemente o que fiz e funcionou tanto no Windows XP, Vista e Ubuntu 9.10.

Existe uma plataforma de multimídia pra Java, o Java Multimedia Framework, da Sun. Funciona bem, captura vídeo também, porém os codecs já estão bem desatualizados. Saí em busca de algo que pudesse reproduzir os formatos mais populares hoje em dia.

Primeiramente um resumo do que procurei e NÃO funcionou:

- FMJ: uma tentativa de reescrever o código do JMF. Funciona bem pra reproduzir vídeos, porém faltam várias features, e é muito difícil de se reaproveitar o código pra fazer algo.

- JFFMPEG: um wrapper Java para a FFMPEG (biblioteca de codecs feitos em C e usado para vários players tanto em Windows quanto Linux). A idéia deles é boa: se o codec existir nativamente, usa a versão nativa, senão usa a versão em Java. O problema: eles não fornecem as bibliotecas nativas para Windows. Eu notei que os envolvidos fundaram uma empresa e agora VENDEM uma solução. Por isso tiraram os arquivos que fariam a coisa funcionar. Até existem os passos pra se compilar tudo, mas além de estarem escondidos no site, são incompletos.

Depois de abandonar estas duas soluções, achei o FOBS4J, que é uma solução em Java baseada no JMF e um wrapper sobre a FFMPEG. Baixei e funcionou com todos os vídeos comumente usados.

Como eles usam o JMF como base, baixei o código dele também do site da Sun. Não é o código mais lindo do mundo, mas pode ser reusado numa boa.

Agora aqui mais algumas dicas salvadoras:

- a versão 0.4.2 do fobs4j (que só existe pra Windows) é altamente instável, não a use (ela sempre dá crash por volta de 5 minutos de reprodução de vídeo);

- como você vai ver nos exemplos do fobs4j, você vai precisar sempre informar qual o path das DLLs/SOs (use um script no Linux, e um .bat ou .exe no Windows);

- o código do JMStudio é meio porquinho, então você pode tentar fazer seu próprio player, ou se estiver acostumado a ler código, pode tentar usar o do JMStudio pra algo.

- o JMF do fobs4j não inclui várias bibliotecas nativas. Se você precisar fazer captura de vídeo, vai precisar delas. Ou seja, basta baixar a versão do site da Sun e copiar estas bibliotecas.

Espero que isso possa ajudar quem tiver que passar pelos mesmos problemas.






Fotos do Níver do Pimpolho Jr.
Categoria(s): Vida Pessoal

Coloquei no ar as fotos do aniversário do Pimpolho Jr, tiradas pelo meu bom amigo Guilherme Lechat.

Lembrando que as fotos foram redimensionadas automaticamente pelo JAlbum (programa para gerar álbums, feito em Java).

Portanto se você acha que saiu muito feio na foto, não se culpe, culpe o JAlbum e não se torture.






Por que não rouba a mãe?

Domingo, como de costume, fui com minha esposa levar o Pimpolho Jr ao SESC, para ele socializar com outras crianças, ver brinquedos diferentes, e eu também aproveitar e ler as revistas da semana.

Aproveito a revistaria do SESC para ler as revistas por diversos motivos: não tenho a menor vontade de comprar tantas revistas semanalmente (e nem verba pra isso); é ótimo sair de casa (e a revistaria tem até ar-condicionado); aproveito a onda eco-chata e não derrubo mais árvores comprando tantas revistas (e por consequência vou levar à falência a Votorantim e a Abril).

Uma coisa "interessante" em fazer isso: sempre tem uma ou duas pessoas que não respeitam o silêncio da sala de leitura, e vão lá apenas pra incomodar alguém que está lendo. Já notei que são sempre as mesmas duas ou três pessoas, que ficam o final de semana inteiro vagando pelo SESC, na tentativa desesperada de fazer amigos. Se eles vêem alguém vagamente conhecido em qualquer setor, vão lá correndo e não páram mais de falar. Tudo bem, desde que não seja na sala de leitura.

E um fato realmente chato: no melhor estilo "sou brasileiro e não desisto de ser pilantra nunca", essa semana roubaram as revistas Super Interessante, a Info, e a Quatro Rodas.

Tudo bem que a Super virou ultra-pop, a Info é genérica demais (e só usa os termos "de lavada" ou "deu um banho na concorrência"), e a Quatro Rodas ama de paixão todos os carros da Volks. Ao menos não roubaram a Exame, Você S/A, Scientific American Brazil e as revistas genéricas de mulher (com matérias como "perca N quilos com a dieta do ", "aprenda os segredos mais apimentado do sexo", "fique linda com a coleção primavera-verão"). Também não roubaram a revistinha com a Programação do SESC.

Isso porque de uns dois anos pra cá, o SESC já diminuiu bastante a quantidade de revistas que compram por semana (basicamente tiraram todas as revistas que tratavam do mesmo assunto e deixaram apenas uma do gênero). Daqui a pouco eles cansam de abastecer de revistas o espertinho que anda levando tudo pra casa, e pronto: nem o espertinho e nem todas as outras pessoas que frequentam o local vão poder ler nada.






Upload de grandes arquivos no PHP

Bom, seguindo a idéia do meu grande amigo TaQ (de usar o blog para anotar resolução de problemas), vou postar aqui um problema frequente para quem usa PHP: o upload de grandes arquivos.

É possível alterar as configurações relacionadas à isto tanto no arquivo php.ini, quanto num arquivo .htaccess (caso você não tenha acesso ao php.ini e esteja usando o Apache).

No php.ini, altere as diretivas abaixo:

# Tamanho máximo do upload (em MB)
upload_max_filesize = 20M

# Tamanho máximo de arquivos enviados via post (em MB)
post_max_size = 20M

# Tempo máximo de execução de um script (em segundos)
max_execution_time = 1800

# Tempo máximo para processar um upload (em segundos)
max_input_time = 1800

# Quantidade máxima de memória que um script pode usar (em MB)
memory_limit = 50M

Caso você prefira (sou só possa) fazer as alterações usando o .htaccess ao invés do php.ini, use da seguinte forma:

php_value upload_max_filesize 20M
php_value post_max_size 20M
php_value max_execution_time 1800
php_value max_input_time 1800
php_value memory_limit 50M

E um lembrete: max_execution_time pode ser alterada no próprio script (sem precisar mexer no php.ini ou no .htaccess) através da função set_time_limit.






Vaquinha para comprar direitos sobre Terminator
Categoria(s): Cinema TV

Segundo notícia do Terra, os produtores e atuais donos da franquia Terminator, Derek Anderson e Victor Kubicek, estão vendendo a franquia para possíveis interessados.

Eles compraram a franquia em 2007 por U$ 25 milhões e produziram o filme meia-boca-porém-melhor-que-o-3-mas-não-quer-dizer-muita-coisa "Exterminador do Futuro 4".

O filme não foi um sucesso de bilheteria, e na época os produtores preferiram colocar parte da culpa no ator Christian Bale, porque segundo eles, ele se envolveu num problema familiar com sua mãe.

Claro, isso é mais fácil do que assumir que o filme 3 foi uma porcaria, e junto com o seriado, matou o nome da franquia.

Não preciso também lembrar que o dono original da franquia, e diretor dos 2 primeiros filmes, James Cameroon, nunca quis fazer o terceiro filme, porque considerava a história finalizada.

Sobre o seriado, a propaganda que passava na Warner era horrível. Era feita em computação gráfica, mas era tão ruim, mas tão ruim, que eu acho que seria melhor ter sido feita com stop-motion, como no primeiro filme.

O pior de tudo, que nem a trama a série de filmes evoluiu (o conflito Homem vs Máquinas). Só vai ter uma idéia do quanto isso pode ser explorado quem assistiu o remake da série Battlestar Galactica. Quando eu li sobre a série (BSG), achei que seria bem clichê, mas a série é espetacular, e leva o assunto a níveis que eu não imaginava. Não é a toa, a série apareceu em várias listas das séries mais influentes de todos os tempos.

E aí? Vamos fazer uma vaquinha pra comprar a franquia e enterrá-la de vez antes que façam mais algum lixo?





Anúncios