FFmpeg: Batch para conversão de vídeos para iPhone [Windows]

FFmpeg: http://www.ffmpeg.org/
FFmpeg: http://www.ffmpeg.org/

Já tem um tempo que estou tentando decidir o que fazer com um computador velho lá de casa. Resolvi instalar Windows nele, e fazer algumas experiências (:D)… de todo tipo, inclusive instalar servidor de games, VNC, Torrent, e tudo mais… Configurei meu roteador para deixar esse PC completamente exposto, assim posso brincar também com algumas regras de firewall e fazer o que quiser…

Como esse meu “PC cobaia” está ligado 24h lá em casa, resolvi não desperdiçar seu “poder de processamento” e fiz um script em Batch (.bat do windows) para converter vários filmes/vídeos que estou querendo colocar no meu iPhone.

Segue o “programa” de enconding para H264:

cd C:\Documents and Settings\Rafael\Desktop\ffmpeg-r16537-gpl-static-win32
for %%i in (“H:\videos\*.rmvb”) do
(
ffmpeg -i “%%i” -vcodec libx264 -acodec libfaac -deinterlace -sameq “C:\videos-iphone\%%~ni.mov”

)

Salve todo o código acima num arquivo .bat (Pelo bloco de notas mesmo !)
Você pode baixar o FFmpeg acessando:  https://rafaelbiriba.com/ffmpeg-r16537-gpl-static-win32.zip
Leia também: https://rafaelbiriba.com/2009/02/13/windows-xp-vs-ffmpeg-e-mplayer.html

Bom, continuando…
O Script pega meus videos com extensão .rmvb de dentro da pasta H:\videos e salva os novos arquivos na pasta videos-iphone que fica na unidade C:\.
Note que o comando %%~ni faz com que o arquivo seja salvo com o mesmo nome do original, só que com a extensão .mov.

O profile de encoding para iphone (linha de comando do ffmpeg) que estou utilizando, deixa o video final com a qualidade quase que igual ao vídeo original, o que deixa a codificação bem lenta. Esse script  que tem sido bastante útil pois tenho muitos arquivos de vídeo (muitos mesmo) e quero codifica-los um depois do outro automaticamente (enquanto a máquina não morrer de stress 🙂 ).

Espero que essa informação seja útil para mais alguém… Provavelmente enquanto estou escrevendo este post, o script está rodando lá em casa 🙂

Abraços a todos 😉

Share

FFmpeg: converta vídeos para iPhone

FFmpeg: http://www.ffmpeg.org/
FFmpeg: http://www.ffmpeg.org/

 

Eu utilizo essa linha de comando quase sempre, para converter algum filme e colocar no meu iPhone… Também serve para iPod Touch 🙂

Na hora que eu preciso dela, eu nunca a encontro. Então resolvi publicar aqui, para servir como consulta:

ffmpeg -i video.mpg -vcodec libx264 -acodec libfaac -deinterlace -sameq video_saida.mov

Alguns outros parâmetros úteis para uma conversão mais específica:
* bitrate do vídeo  (-b 300 = Exemplo),
* bitrate do áudio (-ab 32 = Exemplo),
* dimensão do vídeo (-s 200×300 = Exemplo).

OBS: Comando testado e executado no Linux. Para rodar o comando em windows, veja aqui.

[…] Espero ter ajudado. […]

Share

VirtualBox: VMs com IPs estáticos e internet de maneira simples

virtualbox-imageTem certas coisas que você só aprende tentando… Mas esse assunto foi muito além desse princípio.

Durante toda a semana, procurei por soluções para colocar 2 máquinas virtuais acessíveis pela minha máquina hospedeira, com ip fixo e com internet.

O que acontece é o seguinte: Quem possui as versões mais atuais do virtualbox (a minha é a 3.1.2), possui uma opção de adaptador de rede, que se chama host-only. Ela cria uma conexão de rede em seu sistema hospedeiro, e utiliza um DHCP próprio para gerenciar as VMs, e com isso você consegue tanto utilizar internet, quanto se comunicar entre máquina real e máquina virtual.

O problema é que preciso garantir que estou dando SSH para a VM certa. O DHCP pode comprometer essa garantia.

O que tentei fazer… Atribuir um ip fixo na máquina virtual. Mas sem utilizar o DHCP, faz com que a VM fique sem conectividade com a internet.

Procurando pelo google, vi várias soluções que se resumiam em criar interfaces de redes virtuais para cada VM e compartilhando a conexão de internet entre elas, alterando tudo no arquivo /etc/netwotk/interfaces (ubuntu) e mais algumas outras coisas.

Eu não só testei várias soluções, como nenhuma delas funcionou, e ainda fiquei com alguns problemas de rede, mas que foram facilmente resolvidos.

Não querendo complicar uma coisa tão simples, consegui achar uma solução que resolve tudo com apenas alguns cliques, sem alterar nenhuma configuração e nem arriscar problemas na sua rede atual (eth0) =D

Então, vamos para a solução final:

Existe uma outra opção para sua interface de rede no virtualbox: NAT. Ela atribui um IP para sua VM, que é inacessível não só entre a maquina real e a virtual, quanto entre as máquinas virtuais também… Essa opção apenas libera o acesso à internet para a VM.

A solução foi utilizar 2 interfaces de rede para cada VM. A primeira interface foi definida como NAT e a segunda como host-only. A ordem é importante… Certifique-se que a primeira interface é a NAT. Também é necessário desativar o DHCP do host-only (Vá em Arquivo > Preferências > Rede > “Edite a Rede Virtual do Host-Only” > “Na aba Servidor DHCP, desmarque a opção Habilitar Servidor”).

Feito isso, inicie a VM e atribua um IP fixo para a interface que utiliza o host-only… E como eu disse acima, essa interface com ip fixo fica acessível entre as máquinas virtuais e a real, perdendo apenas a conexão com a internet. Mas como você configurou uma interface NAT anteriormente, o problema está resolvido! 🙂

virtual-box-rede-2-interfaces

A imagem acima é um pedaço da descrição de uma das minhas máquinas virtuais que rodam num virtualbox para windows. A idéia é a mesma tanto para windows quanto para linux. 😉

Curiosidade: Note que no windows o nome do adaptador de rede para o host-only é “VirtualBox Host-Only Ethernet Adapter” e no linux é “vboxnet0”.

Dica rápida: Se o seu virtualbox foi instalado pelo aptitude/synaptic do ubuntu (linux), certamente você possui uma versão velha e com poucos recursos… Sugiro baixar uma versão mais atual no site do virtualbox.

Se conseguir uma outra solução, não deixe de compartilhar aqui! 🙂
Espero ter ajudado !

Share

Cloud Crowd: A primeira action

cloud-crowd

Cloud Crowd é um controlador de filas para processamento paralelo, desenvolvido em ruby. Pode ser utilizado em Encoding de video, migração de arquivos e bancos de dados, redimensionamento de imagens e etc…

Uma explicação rápida: Em uma máquina você levanta o server, onde é gerenciado a fila (criação, exclusão, status das tarefas e etc…). Em outras máquinas você levanta o node, onde as terefas serão recebidas e executadas. Ao terminar, o node informa ao server, liberando-se para receber outra tarefa.

Essa semana comecei a desvendar os benefícios do Cloud Crowd, principalmente para encoding paralelo de vídeo. Mas antes, tive que entender como ele funciona e o que tem para nos oferecer.

Então, acompanhando o “tutorial” em http://wiki.github.com/documentcloud/cloud-crowd/writing-an-action, escrevi uma pequena action:

class HelloWorld < CloudCrowd::Action
   def process
      Thin::Logging.log("HelloWorld :: -- criando arquivo #{input}!")
      `touch #{input}`
      0
   end
end

Você passa um nome qualquer, e o script cria um arquivo em branco. Simples !?, Mas serviu bem para meus primeiros testes.

Também aproveitei e usei o log do Thin que é o servidor que o Cloud Crowd levanta, para registrar o evento de dentro da action… Isso significa que as mensagens de log da minha action foram registradas no arquivo de log do node que a executou… Se preferir você pode utilizar o Logger do Rails. Como foi apenas um experimento, utilizei o do Thin mesmo.

Cadastrando tarefas:

Para começar a utilizar sua action,  você precisa postar um JSON com as informações necessárias no server, para cadastrar uma tarefa. (Não preciso lembrar que o server e algum node deve estar rodando, certo ?)

Para isso, crie um script ruby, ou rode pelo irb os comandos*:

require 'rubygems'
require 'restclient'
require 'json'
RestClient.post('http://localhost:9173/jobs',{:job => { 'action' => 'hello_world' , 'inputs' => ['/home/rafael/arquivo_teste1', '/home/rafael/arquivo_teste2']}.to_json})

Considerando que o server está rodando na máquina que rodou o script. Caso contrário, altere o localhost pelo ip do Server. E os arquivos são criados (pelo comando “touch”) na máquina que roda o Node. Para fins de teste e desenvolvimento, é possível rodar o server e o node na mesma máquina, já que eles sobem em portas diferentes…

Então é isso… Você já pode paralelizar qualquer tarefa. Basta escrever suas próprias actions… 😉

 

Share

Primeira festa de aniversário do blog

1-ano-rafaelbiribablog-mini

Hoje (05/02), o blog comemora 1 ano de existência. E não existe nada melhor do que comemorar com festa.

Como o Blog está recebendo pequenos “ganhos” com as publicidades, resolvi organizar uma festa “simbólica” no dia 03/02 junto com o pessoal da Globo.com. Por sorte o Leonardo Quixadá (Client-Side do time de vídeos), fazia aniversário no mesmo dia da festa e aproveitou para comemorar o seu aniversário. (Mais abaixo o vídeo e as fotos da festa)

Desde o lançamento (05/02/2009) até agora, o blog teve quase 30 mil acessos e mais de 75 mil páginas visualizadas.

Aproveito a ocasião para agradecer ao Bruno Souza, que me incentivou a criar o blog. A idéia de compartilhar conhecimentos com o mundo e ter muitos e muitos acessos por mês foi tudo o que eu precisei ouvir para criar o blog.

whois-rafaelbiribablog

Agradeço também a todos os leitores, principalmente os assíduos, pelo apoio e participação nos comentários. Tem alguns que me mandam emails constantemente cobrando posts novos no blog. Prometo que vou pensar num jeito de recompensa-los… Quem sabe com promoções e sorteios ? 🙂

O maior desafio mesmo é escrever um post de qualidade. Se tiver algum blogueiro lendo isso, vai saber do que eu estou falando. Procurar um tema bom, escrever, revisar, consertar alguns erros, revisar de novo, e etc… Mas a recompensa de todo esse esforço vem ao analisar as estatísticas do blog 😉

Um abraço a todos os leitores,

Vídeo da festa:

http://www.youtube.com/watch?v=4ps8FDOPtJA

 

Fotos:

Banner improvisado em cima da hora !Arrumação Inicial =DFesta de aniversário do blog: 1 anoBolo ou tortinha simbólica da festa...Festa de aniversário do blog: 1 anoAlgumas pessoas da equipe de vídeos da Globo.comFesta de aniversário do blog: 1 anoFesta de aniversário do blog: 1 anoFesta de aniversário do blog: 1 ano5 min. depois da festa... haha

 


 

 

Share

Globo.com: Área de tecnologia abre vagas para estágio

 

http://talentos.globo.com/talentos/
http://www.globo.com/estag

 

A pedido do RH da Globo.com, segue o “anúncio” com as informações sobre as vagas de estágio:

ESTÁGIO EM TECNOLOGIA PARA GLOBO.COM

Venha trabalhar com  a gente e dê um clique decisivo no seu futuro.

A GLOBO.COM é um dos 4 maiores portais brasileiros que possui em torno de 14 milhões de visitantes únicos domiciliar/mês;

Procuramos por Estudantes de Análise de Sistemas, Ciência da Computação, Engenharia da Computação e afins, com o perfil abaixo:
* Previsão de formatura: dezembro/2010 a dezembro/2011.
* Pessoas dinâmicas, criativas e fascinadas por internet.
* Interesse em estagiar com projeto e manutenção de infra-estrutura.

Envie seu currículo para [email protected]
Para maiores informações acesse: www.globo.com/estag
Espalhe a notícia para seus amigos e parentes que estejam interessados.
Avise-os por e-mail, MSN, Orkut ou pelo Twitter.
Não deixe-os perder essa oportunidade!

CONTAMOS COM SUA PARTICIPAÇÃO! DIVULGUE!
EQUIPE GLOBO.COM

Boa sorte a todos os candidatos… 😉

Share

Mencoder: Adicionando legenda em um vídeo

Mplayer: http://www.mplayerhq.hu
Mplayer: http://www.mplayerhq.hu

Uma legenda no formato .srt, pode ser inserida em um vídeo com diversos programas/ferramentas. Vou mostrar que mencoder é uma das opções mais simples e rápida para isso.

O mencoder é instalado junto com o pacote do Mplayer. Mais detalhes de como instalar, visite: Mplayer: Projeto baseado no FFmpeg

Antes de adicionar a legenda ao vídeo, verifique se existe o arquivo subfont.ttf na pasta do mplayer. Sem esse arquivo de fonte, o mencoder não consegue “escrever” no vídeo.

Criando o subfont.ttf

No windows, basta copiar uma font .ttf, colar na pasta do Mplayer e renomear para subfont.ttf

No linux, procure pelas fontes .ttf com o comando: locate ttf | grep ttf\$
Depois copie a fonte para o diretório local do mplayer. No meu caso:  (Utilizei a fonte VERA)
cp /usr/share/fonts/truetype/ttf-bitstream-vera/Vera.ttf ~/.mplayer/subfont.ttf

Testando a legenda:

Antes de inserir a legenda, podemos e devemos testa-la. Para isso rode o comando:
mplayer -sub legenda.srt video_original.avi
Assim, você pode ver mais ou menos como a legenda vai ficar, em relação a fonte escolhida.

Inserindo a legenda:

Comando:
mencoder video_original.avi -sub legenda.srt -subpos 95 -subfont-text-scale 3 -subcp enca:gr:iso-8859-1 -vf expand=640:384 -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=800:vhq -oac copy -o video_com_legenda.avi

Onde:
video_original.avi= Vídeo de entrada
legenda.srt=  Legenda a ser inserida
video_com_legenda.avi= Vídeo de Saída

Parâmetros:
-subpos= Especifica em que % da tela a legenda irá aparecer (A partir do topo)
-subfont-text-scale= Especifica o tamanho da legenda no vídeo
-subcp= Especifica a codificação do arquivo de legenda
-vf= Especifica o tamanho do vídeo. Neste caso, o vídeo original era 640 x 272, adicionei mais 112px na altura (384px) utilizando expand,ou seja, o vídeo vai ficar com uma tarja preta de 56px em cima e em baixo.
-ovc= Especifica o codec de vídeo. Neste caso lavc.
-lavcopts = Opções do lavc. Especifica o nome do codec, bitrate,…, do vídeo.
-oac= Especifica o áudio. O valor copy, copia o áudio exatamente como o original.
-o= Especifica o arquivo de saída.

OBS: O comando do mencoder foi testado e executado no Linux. Para rodar o comando em windows, veja aqui.

 

Share

Retrospectiva 2009: Os posts mais visitados do blog

Retrospectiva do Blog 2009
Retrospectiva do Blog 2009

Primeiro post de 2010! Nada melhor que uma retrospectiva dos melhores posts do ano passado, para começar este ano bem.

Os dados foram obtidos cruzando os valores das estatísticas de alguns plugins do wordpress com o google analytics no período de fevereiro à dezembro/2009.

Filtrei alguns posts, para não indicar muitos links com mesmo conteúdo, assim agradamos a todos…

Então, segue a listagem dividida por “categorias”:

Os mais lidos pelo feed:

Palestra: Vídeos para Internet (XIII Semana Tecnológica do IST-Rio) (491 leituras)

[off-topic] Blogueiros de todo o mundo contra as mudanças climáticas (Blog Action Day) (483 leituras)

Evento: XIII Semana Tecnológica e Cultural do IST-Rio (436 leituras)

IST-Rio: Inscrições abertas – Vestibular 2010: 1º semestre (399 leituras)

Ubuntu 9.10: Disponível para Download ou Atualização (388 leituras)

Tunneling com Tsocks (381 leituras)

Os mais visitados

Travian: Greasemonkey e seus Scripts (2856 visitas únicas)

Travian versão 3.5: Fim do greasemonkey e seus scripts ? (1266 visitas únicas)

Travian 3.6: Nova versão veio para assustar (637 visitas únicas)

Ubuntu 9.10: Disponível para Download ou Atualização (420 visitas únicas)

Globo.com: Aberta as inscrições para o programa de estágio (309 visitas únicas)

Os mais comentados:

Travian versão 3.5: Fim do greasemonkey e seus scripts ? (75 comentários)

Globo.com: Aberta as inscrições para o programa de estágio (68 comentários)

Travian versão 3.5: Fim do greasemonkey e seus scripts ? (41 comentários)

Newsletter para o WordPress 2.7.1 (28 comentários)

Agora, segue algumas curiosidades:

Os que eu mais gostei de escrever:

FFmpeg: Conversão de mp4 para wmv

Mplayer: Rotacionando um Vídeo

FFmpeg: Extraindo imagens de um vídeo ( Snapshot )

Tunneling: Passe por bloqueios de proxy ou de firewall com Socks

Os que mais resolveram problemas de amigos:

Newsletter para o WordPress 2.7.1

Ubuntu: Não foi possível resolver ‘br.archive.ubuntu.com’

Pidgin 2.5.5: Problemas para conectar no Yahoo Messenger

Ubuntu: Configurando teclado ABNT2 no vmware-server-console

Rapidinhas…

O primeiro do blog: Windows XP vs Linux UBUNTU

O mais recente:  Feliz ano novo com javascript !

O mais rico em conteúdo: Pesquisa científica: Segurança Digital (A pesquisa foi elaborada durante um período inteiro na faculdade)

O mais trabalhoso: Palestra: Vídeos para Internet (XIII Semana Tecnológica do IST-Rio) (A limitação do youtube quanto a duração do vídeo, me fez perder muito tempo, até utilizar o vimeo.com)

Estatística do Blog:

Em dezembro/2009:
Visitantes: 3671
Páginas visualizadas: 10210

No ano 2009:
Total de visitantes: 23846
Páginas visualizadas: 56537

Então é isso aí… Esse ano, pretendo trazer ainda mais informações para vocês…

Aproveite e assine a newsletter: https://rafaelbiriba.com/newsletter

Feliz ano novo! 😉

 

Share

Feliz ano novo com javascript !

natal-16Primeiramente, gostaria de desejar a todos os leitores e amigos que acompanham meu blog:

Um feliz natal e um próspero ano novo !

Entrando nesse ritmo de natal e ano novo, desenvolvi um pequeno código em javascript para desejar feliz natal e ano novo para os leitores do meu blog.

O código está realmente simples, e pode ser alterado e utilizado aonde quiser… Só não esqueça de deixar sua opnião nos comentários abaixo!

O script funciona da seguinte maneira:
3 variáveis são definidas no inicio:
Data atual (var agora).
Data do ano novo (var anoNovo).
Data máxima de exibição (var anoNovoMax).

O alert com a mensagem será exibida enquanto a data atual estiver dentro do intervalo das outras 2 datas.

Abaixo segue o código:

<script language="JavaScript">
var agora = new Date();
var anoNovo = new Date(2010, 0, 1, 0, 0, 0, 0);
var anoNovoMax = new Date(2010, 0, 1, 23, 59, 59, 0);
if(agora >= anoNovo && agora<anoNovoMax)
{
alert("Feliz ano novo !");
}
</script>

Para implementar no wordpress, é bem simples:
Adicione um Widget de texto em seu wordpress, e sem atribuir um titulo, insira o codigo javascript diretamente no campo de baixo “descrição”. Fazendo isso, o widget não ficará visível, mas o código vai funcionar… 🙂

Para implementar em seu site:
Basta inserir o javascript em sua página.

Dica:
Como o javascript pega a data da máquina do cliente, você corre o risco de pegar a data errada.  Uma solução seria usar o PHP para definir a data, ou seja,  seria a data atual seu servidor. Exemplo:

var agora = new Date(<?php echo date("Y, m, d, H, i, s"); ?>);

Então é isso… Façam bom proveito !

Aqui no blog, já está implementado as mensagens de Feliz Natal e Feliz Ano Novo… Serão exibidas durante todo o dia 25 e 01, respectivamente ! Visitem o Blog e confiram ! 😉

 

Share

Pesquisa científica: Segurança Digital

digital_security2 Essa semana estive organizando alguns arquivos antigos que estavam espalhados no HD, e encontrei esse trabalho que fiz no primeiro período da faculdade (IST-RIO – Tecnologia em análise de sistemas).

Com o auxílio de alguns colegas (Alan Ribeiro, Lincon Loyo, Rafael Lopes), desenvolvemos a pesquisa sobre Segurança Digital, um tema relativamente importante nos dias atuais.

Confira o resumo do trabalho:

Atualmente,  sistemas  digitais  são  utilizados  a  todo  tempo,  entretanto,  o desconhecimento  na  sua  utilização,  põe  em  risco  a  proteção  dos  dados  do  usuário contidos nele.  Devido aos perigos existentes nesses sistemas, a falta de conhecimento facilita a ação não autorizada desses programas e agentes maliciosos.

A  pesquisa  busca  analisar  os  perigos,  conscientizando  os  usuários  e apresentando soluções possíveis de prevenção e remoção dos agente maliciosos, para evitar as armadilhas existentes, como fraudes e roubos de informações.

Através  de  questionários  aplicados  a  profissionais  de  diversas  áreas,  foram analisadas informações de como está sendo realizada tal proteção do sistema e o nível de conhecimento de seus operadores, apresentando gráficos e explicações para cada análise feita.

Após a análise desses dados, os  resultados apontam para o desconhecimento dos  usuários  ao  operar  o  sistema  digital,  onde  programas  básicos  de  proteção  e correção não são utilizados pelos mesmos.

Dessa  forma,  o  trabalho  também  traz  recomendações  indispensáveis  para qualquer pessoa com interesse na contenção desses males.

O trabalho completo pode ser acessado pelos links abaixo:

Versão em PDF: http://www.slideshare.net/rafaelbiriba/faculdade-trabalho-sobre-seguranca-digital

Versão em Slides (Apresentação): http://www.slideshare.net/rafaelbiriba/faculdade-trabalho-sobre-seguranca-digital-verso-em-slides-2725726

 

 

Share

Tecnologia e informação no lugar certo !