quarta-feira, 26 de agosto de 2009

Entrando no Jogo: Palestra sobre Game Design na UFRN

A pedido de amigos, estou divulgando...

PALESTRA: Entrando no Jogo: O que fazer e o que não fazer ao criar uma proposta de jogo para um game publisher ou para participar de um concurso

PALESTRANTE: Prof. Dr. Lauro Kozovits (Departamento de Informática e Matemática Aplicada, Universidade Federal do Rio Grande do Norte - DIMAp/UFRN).
Doutor em Computação Gráfica e Jogos pela PUC-RJ, finalista do concurso mundial de Game Design "NGage Game Challenge 2008" da Nokia entre outros de TI em geral e premiado pela mesma empresa com o título Nokia Champion em 2006, 2007 e 2008 por sua atuação na área.

RESUMO: Numa breve palestra, o autor irá compartilhar sua experiência na escrita de documentos de game design tanto por já ter trabalhado em uma comissão avaliadora de proposta de jogos, quanto por ter sido ele próprio finalista em concurso mundial de Game Design. A palestra irá apresentar uma visão pessoal sobre o tema e não algo já consolidado na literatura, o que é, portanto, um convite para uma discussão e troca de experiências.

LOCAL: Auditório do Departamento de Artes da Universidade Federal do Rio Grande do Norte (DEART/UFRN), no Campus de Lagoa Nova, próximo à BR-101.

DATA/HORÁRIO: 04/09/2009, sexta-feira, às 15:30 (como parte do evento Tecnosextas).

É isso aí, pessoal!! Está divulgado!! Boa palestra e troca de experiência a todos!!! No que eu puder ajudar, ou se gostaram da palestra e querem dizer alguma coisa: passem aqui e COMENTEM!!!

terça-feira, 11 de agosto de 2009

Desenhos do Duke: O Mascote do Java é Open Source!!

Todo mundo já deve ter visto ao menos uma vez o Duke, aquele camaradinha em forma de gota, de corpo branco e cabecinha preta, com um narigão vermelho impressionante (nem sei como ele enxerga!!). Pois é, o Duke é open source!! Isto quer dizer que você pode desenhar, distribuir e utilizar o desenhozinho do Duke em seus programas e trabalhos livremente!! Ao menos é o que nos contam os próprios camaradas da Sun (veja aqui).
O Duke foi criado por Joe Palrang, um artista e animador de grande envergadura, que trabalhou na Sun de 1992 a 1994 e já trabalhou inclusive na Dreams Works. Na ocasião, o Duke foi criado para o Green Project, da Sun, de onde o Java se originou. Assim que anunciaram o lançamento da primeira versão do Java, na mesma época em que criaram a famosa xícara de café, lá estava o Duke como mascote do Java!!
Hoje, com o Duke open source, já temos uma recente mas fiel leva de animadores, artistas gráficos e entusiastas desenhando e contextualizando o Duke das mais diversas maneiras possíveis!! Vejamos algumas imagens do Duke...


No início, era só um Dukerino...


O Duke num momento de lazer (afinal, ninguém é de ferro!!)



Duke pronto para mais uma missão interestelar!!



Porque o Duke também é Brasileiro!!


Mamãe Duke e seu filhinho...


...e enquanto isso, o papai Duke só enchendo a cara!!


Duke de férias em Natal, RN, bebendo água de côco em Ponta Negra!!


Êta Duke bão dimais, Sô!!


Como o Duke influenciou Da Vinci...


Amigos para sempre, Duke e Tux Forever!!


Ufa!! Alguém precisava salvar o mundo dos tenebrosos usuários!!

Mais um monte de imagens gratuitas do Duke podem ser encontradas na página dele, no Projeto Kenai, da Sun: clique aqui!! Inclusive se vê por lá esta última aí em cima, numa versão gigante de fundo de tela com quase 4 megas (sim, eu a diminuí com pena de você, pelo quão que sofreria para baixar 3,8 megas de apenas 1 figura...).
Gostou?? Detestou?? Adorou?? Com corda ou sem corda?? Então COMENTE!!!!!!

domingo, 9 de agosto de 2009

HTML 5: Um Novo Paradigma Para a Web

O Que é o HTML 5 e de Onde Ele Vem??

Todos sabemos que a chamada web, ou seja, todo o conjunto de tecnologias usadas para transferir, carregar e visualizar páginas da internet, é inevitavelmente baseada na linguagem HTML. O HTML (HyperText Markup Language) é a linguagem básica que os navegadores entendem, carro-chefe da revolução da internet. Isso quer dizer que tudo que é visto em um navegador é baseado em HTML. É e sempre foi assim, desde há muito tempo, quando as máquinas só "entendiam" textos e imagens simples...
Mas há um problema: hoje em dia, precisamos de muito mais (digo, vídeos, animações, interações, chamadas remotas e assícronas, etc.). Assim, há muito tempo, o HTML já não é mais suficiente para compor tudo o que se precisa numa página web. Assim, surgiram várias novas tecnologias, no intuito de completar o HTML, sem substituí-lo, entretanto. São algumas delas: JavaScript (originalmente LiveScript, criado pelo Netscape), CSS (Cascade Style Sheets, ou folha de estilo), o XML e o XHTML, uma tentativa de "organizar" mais formalmente o HTML, o AJAX (e o XMLHttpRequest, objeto do navegador no qual as chamadas assíncronas são gerenciadas) dentre muitas outras. Hoje, o HTML e a maioria dos padrões relacionados a ele são mantidos e desenvolvidos pela World Wide Web Consortium (W3C).
Devido ao franco desenvolvimento das tecnologias web e da estagnação do HTML, há (realmente!) muitos anos parada na versão 4.0.1, a W3C tem empreendido um grande esforço para desenvolver a nova versão desta importante linguagem: o HTML 5, que conterá uma série de melhorias importantes, e está anunciada para lançamento talvez somente em 2012. Na verdade, esta nova versão tem sido desenvolvida por um grupo denominado Web Hypertext Application Technology Working Group (WHATWG), organizada pelo W3C e contando com colaboradores de diversas empresas de desenvolvimento de navegadores, como o Opera e o Mozilla.
Para se ter uma idéia do que vem por aí no HTML 5, podemos citar que estão sendo desenvolvidas as seguintes funcionalidades:

  • Controle embutido de conteúdos multimídia;
  • Nova API para desenvolvimento de gráficos 2D, em especial SVG;
  • Aprimoramento do uso off-line;
  • Melhoria na depuração de erros;
  • Suporte a Drag & Drop e Métrica de Progressão de fluxo de dados;
  • Eventos do DOM recebidos pelo servidor;
  • Etc...

As novas perspectivas do HTML 5 estão presentes nas versões mais recentes dos principais navegadores, como Firefox, Opera, IE 8, etc.


Uso de Canvas e desenhos bidimensionais (2D)

"Canvas" é uma tag desenvolvida pelo Mozilla e usada no Firefox para criar desenhos 2D (semelhantes a gráficos SVG) dentro da área especificada. Como o desenho pode ser criado/manipulado dinamicamente via Javascript, estes desenhos podem ser um grande adversário ao JavaFX, Flash e Siverlight, no tocante a manipulação dinâmica de gráficos. Esta funcionalidade nova está sendo implementada no HTML 5 e funcionará da seguinte maneira:

1- Crie uma área para o seu desenho (substitua os colchetes por símbolos de maior e menor, para as tags):

[canvas id="canvas" width="100" height="100"]

2- Para criar o desenho, é preciso se obter o contexto do canvas:

[script]
var context = document.getElementById("canvas").getContext("2d");
[/script]

3- Agora, basta fazer o desenho que quiser!! Pode-se inclusive alterá-lo dinamicamente, via Javascript.

if (context != null) { // Descobre se o navagador o suporta!!
context.fillRect(25, 25, 50, 50); // Faz um quadradão :-)
}

Bem fácil, né?? Fizemos um quadrado preto sem usar DIV!! Para quem sabe alguma coisa de Java2D, vai sentir que é bem parecido em vários pontos.
As ferramentas que estão sendo anunciadas pretendem carregar imagens SVG e poder editá-las. Isto pode levar a grandes transformações tecnológicas nas áreas de animação e jogos!!


Web Forms 2.0

Forms são os elementos presentes em formulários em HTML. Isto inclui botões, campos de texto, caixas de seleção, checkboxes, dentre várias outras coisas.... o problema do Web Forms 1.0 é que as ferramentas declaráveis nas tags de validação são muito simples e, por isso, as validações são praticamente todas feitas via javascript. Com o Web Forms 2.0, algumas novidades surgirão:

  • Presença de novos atributos de validação, como required, min e max;
  • Lançamento do evento invalid pelo DOM;
  • Atributo validity;
  • Atributo list, indicando ao navegador quando e quais elementos devem ser lembrados ou autocompletados;
  • Atributo autofocus, para dar foco a um elemento quando do carregamento da página;
  • Atributo inputmode, que detalha alguma formatação/validação desejada para entrada de texto em um formulário;
  • Aprimoramento no upload de arquivos, permitindo filtros de tipo e tamanho do arquivo a ser enviado;
  • Novos input types: datetime, number, range, email, e url, facilitando a formatação e validação dos mesmos.

Claro que muitas outras melhorias estão sendo providenciadas, e aos poucos, especialmente com as suas implementações pelos navegadores, teremos informações mais sólidas e confiança no seu uso intensivo.
Este artigo foi útil?? Aprendeu com ele?? Então... COMENTE!!!!!!!

Bibliografia

Documento Formal do W3C e dos desenvolvedores do HTML 5 e das novas especificações.
Exemplo da IBM de uso de Canvas e SVG.
HTML 5 na Wikipedia.

segunda-feira, 20 de julho de 2009

Ativando e Desativando Serviços no Linux e no Ubuntu Com Upstart

  • Atenção!! - Acrescentado em 10/12/2009
Se você roda Ubuntu/Kubuntu 9.10, este artigo não vai te ajudar tanto, mas os comentários sim. Vá direto a eles. Para versões anteriores do Ubuntu e outras tantas distribuições, mesmo as mais recentes, o artigo mantém-se válido e certo.


  • Como desligar o modo gráfico nos sistemas Linux tradicionais??
"No início, não havia nada. Então, Deus carregou o INIT..."

Desligar o modo gráfico é uma das coisas mais antigas de sistemas linux e pode ser feito tradicionalmente no arquivo /etc/inittab. Ou podia... já que nas versões mais novas do Ubuntu a coisa mudou de figura!! Como é isso?? Bom, vamos aos poucos...
Primeiro, é preciso saber como isto tudo funciona. No Linux, o primeiro processo a rodar é um programa chamado INIT. O INIT é o responsável por carregar todo o sistema, roda com prioridade de root e é o primeiro a iniciar e o último a terminar. Se você tem dúvidas, digite:

ps -e | grep in


e veja quem é o processo de número "1". Isto mesmo, o INIT!! É Deus no céu e o INIT na Terra.
O INIT opera tradicionalmente em 7 diferentes modos, chamados runlevels, a saber:

0 - halt;
1 - Inicia normalmente, porém em monousuário. Usado para manutenção pesada na máquina;
2-5 - Multiusuário, sendo 3 = modo texto e 5 = modo gráfico;
6 - Encerra todos os aplicativos e reinicia a máquina.

Quando queremos mudar o modo em que o INIT está rodando, basta digitar "init [modo]". Assim, se queremos desligar a máquina, basta digitar "init 6", por exemplo!! Bem simples e fácil!!
Existe uma maneira de se selecionar um modo padrão para a inicialização do sistema. Basta irmos no arquivo /etc/inittab e vermos o que tem nele. Ali se encontram uma série de informações para configurar cada modo. É possível que se encontre uma linha parecida com esta:

# The default runlevel.
id:5:initdefault:

Isto indica que o padrão do sistema é iniciar em modo 5 (multiusuário e modo gráfico). Imagine que queremos configurar um servidor e, portanto, não precisamos do modo gráfico, mas apenas modo texto (o servidor vai ser acessado remotamente, sem necessidade da telinha bonitinha de login do KDM ou GDM). Basta trocar o modo de "5" para "3":

# The default runlevel.
id:3:initdefault:

Antigamente bastava isto e pumba: estamos em modo texto!! Mas observe que isto não funciona diretamente no Debian (ou distros baseadas nele)... por quê??


  • Onde Estão os Scripts do INIT?

O INIT tem, para cada modo, uma série de links simbólicos para os executáveis de serviços do sistema. Estes executáveis ficam todos amontoados no diretório:

/etc/init.d/


Mas cada modo (runlevel) do init tem um diretório a parte, contendo os seus links para suas configurações próprias dos executáveis de serviços do sistema. Estes diretórios são:

/etc/rc0.d/ /etc/rc1.d/ /etc/rc2.d/
/etc/rc3.d/ /etc/rc4.d/ /etc/rc5.d/
/etc/rc6.d/

Até aí, tudo certo. O problema é que, no Debian, estes links simbólicos dizem algo mais: se eles começam com a letra "S", significa "Start", ou seja, o serviço será forçosamente iniciado. Para pará-lo, é preciso renomear o arquivo do link simbólico de modo que ele inicie com a letra "K" (de "Kill").
Assim, simplesmente mudar para o modo 3 não retira o carregamento do KDM (ou GDM), por exemplo... é preciso, além disto, renomear o link simbólico respectivo (algo como "S30kdm") para "K30kdm".
Fazendo isto, você acaba de configurar seu sistema para iniciar em modo texto. Parabéns!!


  • O Ubuntu e Outros Com Upstart

A partir das novas versões do Ubuntu (e Kubuntu, etc.), o iniciador não é mais o nosso bom e velho conhecido e camarada, o INIT, mas sim o novo Upstart. Desenvolvido inicialmente para o Ubuntu, o Upstart se propõe a ser mais eficiente e seguro que o INIT. Isto muda algumas coisas... a primeira delas é que não há mais o arquivo /etc/inittab, obviamente, já que não temos INIT nenhum. Outro problema é como ativar ou desativar o carregamento automático de serviços durante o boot.
Para resolver estes problemas insanos, apresento um comando muito simples e amigo de todas as horas, o update-rc.d, que não é exclusivo destas distros e já existe mesmo no Debian.
O update-rc.d se propõe a ativar ou desativar serviços dos scripts de inicialização do sistema de maneira mais fácil e automática. Seu uso é feito da seguinte maneira:

update-rc.d -f [servico] remove


Imagine que instalamos o SSH no Debian. Por padrão, qualquer serviço instalado no Debian é ativado automaticamente para inicialização nos modos 2-5. Assim, para que ele não carregue no boot, precisamos digitar:

update-rc.d -f ssh remove


O parâmetro "-f" significa "force" e força a remoção do link simbólico, mesmo existindo seu alvo correspondente em /etc/init.d.
Para reativar o carregamento do serviço durante o boot, basta digitar:

update-rc.d ssh defaults


Simples, né?? Vamos complicar um pouquinho então... imagine que você agora quer reativar o serviço, mas quer definir exatamente o momento em que ele vai ser carregado. Isto é definido pelo número inteiro de 2 dígitos logo após a letra "S", no nome do link simbólico. Este número define a prioridade, ordem de carregamento dos serviços. Assim, se o nosso SSH deverá ser carregado na posição 20 (antes do item de posição 21 e após o de posição 19), basta digitar:

update-rc.d ssh defaults 20

Isto criará o arquivo "S20ssh" em todos os /etc/rcX.d, sendo X entre 2 e 5 (inclusive).
Nota: para o SSH, que não é um serviço tão essencial e usualmente pode necessitar de outros serviços, isto pode ser um número muito pequeno. Tente 40 ou 50. ;-)
É possível também se definir uma prioridade diferente para a ativação e desativação do serviço. Imagine que nosso serviço deverá ser ativado na posição 20, mas desativado na posição 70 (para desativação, é considerada a ordem inversa, ou seja, são desativados os itens dos números maiores para os menores). Assim, definimos:

update-rc.d ssh defaults 20 70

Podemos ainda definir quais modos (runlevels) terão nosso serviço ativo ou não, informando os números dos modos e a nossa opção de Start ou Kill, conforme a seguir:

update-rc.d ssh start 20 2 3 4 5 . kill 70 0 1 6 .


Ou ainda, mudando de prioridade (ordem) entre os modos:

update-rc.d ssh start 20 2 4 . start 50 3 5 . kill 70 0 1 . kill 90 6 .

Isto inicia o SSH nos modos 2 a 5 e o pára nos modos 0, 1 e 6. No segundo comando, a prioridade não é a mesma para todos os modos. Serão iniciados com maior prioridade (20) apenas os modos 2 e 4, enquanto o 3 e 5 serão iniciados na posição 50, ou seja, posteriormente. Pode ser que estes modos tenham mais serviços, e acabem "empurrando" o SSH mais para a frente. Analogamente, nos modos 0 e 1, o SSH morre com prioridade 70, enquanto que no modo 6, onde talvez mais serviços serão desativados, ele morre com prioridade 90.


  • Enfim, Como Desativar o Modo Gráfico no Linux?

Como o modo gráfico é um serviço, basta desativar este serviço. Se seu Gerenciador de Janelas é o KDE, o serviço é o KDM (K Desktop Manager). Se é o Gnome, então o serviço será o GDM (Gnome Desktop Manager). Se não é nenhum destes, então informe-se com sua distro qual é o seu gerenciador de janelas e qual o serviço que ele dispara... Mas, para desativá-lo, utilize, genericamente, o comando:

update-rc.d -f kdm remove [ou]
update-rc.d -f gdm remove


  • Conclusão

Ativar ou desativar o modo gráfico no Linux é apenas compreender que o modo gráfico é um serviço, e este pode ser cadastrado via links simbólicos nos diversos modos de carregamento do sistema, assim como todos os outros serviços (como o ssh, seu servidor de e-mail, de impressão, de som, banco de dados, firewall, DHCP, FTP, servidor HTTP, etc.). Se seu gerenciador de inicialização é o INIT, isto pode ser feito de duas maneiras: manualmente, ou com o comando update-rc.d. Se você usa o Upstart em lugar do INIT (que é opção padrão no Ubuntu 9.04), então o melhor e mais prático é usar o comando update-rc.d.
O Upstart é uma opção ao INIT, desenvolvida para o (e pelo pessoal do) Ubuntu. É mais moderno e seguro, de arquitetura orientada a eventos. Está presente desde o Ubuntu 6.10, Fedora 9, no Debian (como opção), dentre outras distros. Porém, é mais chatinho de configurar os serviços. Assim, a melhor opção é utilizar o comando update-rc.d.

O objetivo deste artigo é ajudar tanto a quem está configurando seus serviços pela primeira vez quanto àqueles que sempre o fizeram manualmente e, de repente, sentiram-se inseguros com o Upstart.
Espero ter ajudado a todos!! E, como sempre, não fique calado diante do Pajé!!!! COMENTE!!!!!

domingo, 28 de junho de 2009

Qual a Resolução de Vídeo e Som do Youtube?

Recentemente, publiquei (ampliei e revisei algumas vezes) um artigo sobre o programa ffmpeg, uma excelente ferramenta gratuita para manipular vídeos, sons e legendas. Desde então, muitas pessoas têm me procurado (inclusive pessoalmente) pedindo dicas sobre como fazer um vídeo para colocar no Youtube (ou em outro portal de difusão de vídeos). Logo, para colaborar com nossos amigos, resolvi colocar aqui algumas dicas sobre os procedimentos necessários para fazer uma boa gravação de vídeo (com som) para divulgar no Youtube.


  • Gravação
Não é mistério para ninguém, mas preciso salientar que os vídeos destes portais de streaming não são lá de grande resolução, então tente fazer uma gravação que contenha boa luminosidade, com foco sempre bem controlado, e excelente captação de som. Tente usar microfones e uma mesa de som, se for possível. Os microfones devem ser próprios para o tipo de captação que você quer: seja direcional ou de ambiente. Evite usar microfones embutidos nas máquinas, especialmente se for webcam... mesmo que a gravação do som esteja com boa qualidade, o microfone certamente não lhe vai prouver a captação que você precisa.
Para o vídeo, evite cenas muito rápidas ou tremer a câmera, pois isto pode superar o frame rate (a "velocidade" da gravação, ou seja, a quantidade de quadros por segundo) e acabar sujando a tela com sombras e traços desfocados. Se a filmagem for em local aberto ou em um espaço muito grande (igrejas, teatros, salões, quintais, etc.), evite que seu objeto fique muito distante, porque pode sumir dentro do vídeo. Lembre-se de que, ao descer a resolução, coisas muito pequenas podem virar manchinhas ininteligíveis. Assim, não dá para filmar uma partida de futebol, por exemplo, de muito longe, e esperar que, no filme, você veja o número de cada jogador...
Importantíssimo: os vídeos devem ser sempre gravados mantendo (independente da resolução) a proporção de 4/3, que é a proporção das TVs antigas. Nunca grave seu vídeo em proporção de cinema, aquela 16/9, pois vai ser duro de encaixar no formato desejado, e você vai acabar perdendo conteúdo, ou ficando com as bordas superior e inferior pretas, diminuindo ainda mais o tamanho de seu vídeo...

  • Conversão
Quando colocamos os vídeos no Youtube, eles são convertidos para resoluções e dimensões padronizadas, procurando, no entanto, respeitar as proporções do original. Vamos aos detalhes técnicos:

SOM: É possível usar a freqüência de 44100 Hz, som estéreo. Esta é uma freqüência ótima e presente em muitas outras gravações consideradas de boa qualidade. Use esta configuração para gravar seu vídeo. Todavia, se o som não for importante, pode diminuir a freqüência para 22050 Hz e mono.

VÍDEO: É permitida a escolha do frame rate, ou 25fps ou 29,97fps. A diferença é pequena, então utilize o padrão que mais lhe agrade ou que lhe seja mais fácil de configurar, dependendo do seu sistema (PAL-M, NTSC, etc.). Muita importância há na resolução do vídeo: resoluções comuns são: 320x238, 450x360, 480x360, 320x240. Os vídeos em formato de cinema podem ser baixado em MP4 e ficam a 320x240.
A janelinha do Youtube é de tamanho fixo (630x360), e o seu vídeo terá uma das resoluções acima (ou alguma próxima), adaptando-se para caber nesta janela...

  • Como Baixar Vídeos do Youtube??
De maneira bem simples e rápida, e ainda podendo escolher entre o formato FLV (baixa resolução) e o MP4 (com melhor resolução), utilize o portal http://keepvid.com. Basta entrar nele, tendo saído de uma página do Youtube, que ele já captura aquele vídeo, converte e te dá os 2 links de download: o de baixa e o de alta resolução.

  • Como Examinar as Streams Presentes no meu Vídeo??
Para examinar detalhes sobre as streams de vídeo e áudio, baixamos alguns vídeos e utilizamos o programa ffmpeg, com a opção "ffmpeg -i [nome do arquivo]". Você pode utilizar qualquer editor de vídeo para colher estas informações. Observe que o ffmpeg também informa o codec de gravação do som e do vídeo, além de reconhecer facilmente o padrão FLV (Flash Vídeo), ao contrário de muitos editores de vídeo.

  • Conclusão...
Estas breve dicas são direcionadas para quem quer publicar no Youtube (ou outros portais de vídeos) gravações de reuniões, aulas, apresentações, palestras, encontros, experimentos, eventos, etc., que, sendo caras, necessitam ser bem gravadas e publicadas adequadamente. Espero ter ajudado!!

E, como sempre: gostou?? Detestou?? COMENTE!!!!!!

segunda-feira, 18 de maio de 2009

Como Converter Vídeos no Linux?

  • Introdução

Converter arquivos de vídeos e som no Linux, abrangendo os mais variados formatos e codecs, pode ser uma tarefa razoavelmente simples, bastando conhecer o programa certo. Nesta dica vamos apresentar o programa "ffmpeg". Este conversor de áudio e vídeo é extremamente flexível e poderoso, em linha de comando, permitindo que você faça as suas conversões remotamente, em seu servidor, ou mesmo escreva programas de conversão que fiquem rodando no servidor, esperando a próxima tarefa para ser disparada. O ffmpeg não só converte mídias, como também muda o bitrate, redimensiona o vídeo, dentre muitas outras opções avançadas.
Para baixar o ffmpeg, vá até a página oficial do projeto:

http://ffmpeg.mplayerhq.hu/

Ou use o seu gerenciador de pacotes favorito. Pode ser instalado via apt-get com o comando:

apt-get install ffmpeg

Observe que o ffmpeg necessita de algumas bibliotecas de áudio e vídeo, como a libavcodec e a libavformat. Para instalá-lo "na mão", procure antes as versões requeridas destas bibliotecas e as instale. Para conhecer a sintaxe e escrever a linha de comando correta, veja a página do manual "man ffmpeg" ou o FAQ oficial:

http://ffmpeg.mplayerhq.hu/faq.html

Existem versões do ffmpeg para várias plataformas, o que facilita o seu uso ou a implementação em um laboratório de convesão profissional. Abaixo, um breve tutorial de alguns parâmetros:


  • Conversão simples
Um arquivo pode ser convertido de maneira simples apenas com o comando:

ffmpeg -i arquivo.wmv arquivo.avi

O parâmetro "-i" indica o arquivo fonte. O formato do arquivo de saída é automaticamente reconhecido pelo ffmpeg, a partir da sua extensão.


  • Sugerindo um Codec de Vídeo

Se você quiser um codec específico, como Xvid ou DivX (versão 4+), use a opção -vcodec, passando o codec desejado (mpeg4, para o caso citado).

ffmpeg -i arquivo.wmv -vcodec mpeg4 arquivo.avi


  • Sugerindo um Codec de Áudio

Assim como o vídeo do seu arquivo pode ser comprimido, igualmente o áudio também o pode, reduzindo drasticamente o tamanho do arquivo final. Em alguns casos, como mídias para celulares, é necessário que o áudio esteja em AAC+ (AAC Plus), sob pena de não ser executado. Assim, utilize a opção -acodec, passando o codec desejado (libfaac, para o caso citado).

ffmpeg -i arquivo.wmv -vcodec mpeg4 -acodec libfaac arquivo.avi


  • Como converter vídeos para iPod?

ffmpeg -i arquivo.wmv -acodec libfaac -ab 128kb -vcodec mpeg4 -b 1200kb -mbd 2 -flags +4mv -trellis 2 -aic 2 -cmp 2 -subcmp 2 -s 320x180 -title X output.mp4

Este comando acima contém diversas configurações do áudio e do vídeo necessárias para que seu vídeo seja convertido no formato suportado pelo iPod. Veja mais destas opções adiante...


  • Definindo o bitrate do áudio e do vídeo
O bitrate do áudio e do vídeo são definidos separadamente, com os parâmetros:

-ab: é uma opção apenas do áudio, que define o bitrate em bits/s.
-b: é uma opção apenas do vídeo, que define o bitrate em bits/s.


  • Definindo o Frame Rate (quadros por segundo)
Basta usar a opção "-r" seguida do número desejado. Por exemplo, para forçar 25 quadros por segundo, use:

ffmpeg -i arquivo.wmv -r 25 arquivo.avi

Mas, cuidado: alguns codecs só suportam pequeno número de framerates padronizados. Se este for seu caso, a informação de framerate será ignorada.


  • Como ripar DVD com o ffmpeg??
Para este também tem uma "fórmula", com toda a configuração necessária!! Segue:

ffmpeg -i cap_1.vob -f avi -vcodec mpeg4 -b 800k -g 300 -bf 2 -acodec libmp3lame -ab 128k cap.avi


  • Como ler a entrada padrão, ou escrever para a saída padrão?
Basta usar, em lugar do nome do arquivo, o caracter "-".


  • Como fazer um vídeo a partir de figuras?
Primeiramente, coloque todas as figuras no mesmo diretório e as renomeie para um padrão qualquer, como img001.jpg, img002.jpg, img003.jpg, e assim por diante. Depois, execute o comando:

ffmpeg -f image2-i img%d.jpg saida.mpg


  • Como inspecionar as streams presentes em um arquivo?
Um arquivo de vídeo, por exemplo, pode estar em um formato dito container, ou seja, uma espécie de cápsula onde se podem encontrar diversas streams de áudio, vídeos e legendas. Com o ffmpeg é possível se extrair cada uma delas, ou mesmo formar um arquivo novo com determinadas streams específicas de arquivos diferentes. Para inspecionar um arquivo e descobrir quais streams existem nele, basta executar o comando:

ffmpeg -i arquivo.mp4

As streams estão no fim da mensagem, normalmente numeradas no padrão "0.0", "0.1", etc. Exemplo:

Duration: 00:01:48.48, start: 0.000000, bitrate: 550 kb/s
Stream #0.0(und): Audio: libfaad, 44100 Hz, stereo
Stream #0.1(und): Video: h264, yuv420p, 480x200, 23.97 tb(r)

Indica que a primeira stream é de áudio e a segunda de vídeo. O codec da primeira é libfaad, com 44100 Hz de freqüência e bitrate de 550 kb/s. Não tem stream de legenda neste arquivo.


  • Como trabalhar com legendas?
Para incluir uma legenda, basta usar uma das opções:

-scodec codec: define o codec da legenda (subtitle codec). O padrão de arquivos VOB, por exemplo, é o codec dvdsub. Se você não sabe qual é o codec e simplesmente quer copiar o existente no arquivo original, use a opção copy em lugar do nome do codec.

-newsubtitle: adiciona uma legenda inteiramente nova para seu arquivo de saída!! Pode ser esta sua opção!!

Como vou saber onde está a minha legenda?? Bom, é preciso primeiro inspecionar um arquivo, conforme demonstrado no item acima, e escolher a stream correta. Para montar seu arquivo final com streams de diversos arquivos, inclusive de legenda, siga a orientação abaixo...


  • Como montar um arquivo de partes de outros?
Simples e fácil: basta identificar as streams de cada arquivo fonte e usar a opção -map. Exemplo:

ffmpeg -i filme.vob -i audio.wav -map 0:0 -map 1:0 etc...

Este trecho de comando indica 2 arquivos de entrada, o arquivo "0" e o "1", e indica, pela opção map, que deve compor o arquivo de saída com a primeira stream do primeiro arquivo "0" e a primeira stream do arquivo "1".


Diversas outras opções e exemplos presentes na página de manual e no FAQ bem documentado do projeto!! Um tutorial avançado e detalhado encontra-se aqui.
O ffmpeg é livre e gratuito, seguro e poderoso!! Boa sorte!!

(Gostou?? Detestou?? COMENTE!!!)

terça-feira, 21 de abril de 2009

Como Recuperar o Manual de Usuário de DVD, TV, GPS, Câmeras, etc...

Pois é: uma das grandes vantagens da tecnologia é que a gente se livra por definitivo do papel, não é mesmo?? Errado!! A gente está sempre precisando de coisas impressas, principalmente quando menos esperamos e não sabemos onde elas foram parar...
Um exemplo disto é o fantástico Manual de Usuário, ou Manual de Instruções, ou Guia do Usuário. Ou seja: aquele fatídico livrinho em português-francês-inglês-italiano-espanhol-japonês que vem com cada aparelhinho que você compra e está fadado a ser perdido em fração de instantes... Que atire a primeira pedra quem, todas as vezes que precisou de seu manual da placa-mãe para ver alguma configuração específica, soube exatamente onde encontrá-lo. Eu disse todas as vezes!!
Se você não é este raro ser alienígena que coleciona todos os manuais de sua vida, então seus problemas acabaram!! Para isto existem as dicas do Pajé!!
Nos links abaixo, você pode fazer a busca de virtualmente qualquer manual, desde máquina fotográfica, TV, DVD, lava-louças, celulares, equipamentos de som e até GPS!!! E dos mais diversos fabricantes!! Basta clicar!!

Em inglês:


Em português:


É o Pajé mais uma vez facilitando a vida de toda a tribo...