Há alguns dias atrás, me perguntaram se tinha como converter trechos de vídeos para um arquivo .gif, para ser usado em lugares que só aceitam imagens, como foruns, msn e etc…
Abaixo segue um exemplo simples que faz isso, usando FFmpeg:
Para os que ainda não conhecem a ferramenta, Google Docs é um pacote de aplicativos de escritório ( processador de texto, editor de planilhas, apresentações, etc…) que rodam diretamente do navegador.
Apesar de conhecer a ferramenta, dificilmente eu a utilizava. Pelo menos o até mês passado. Quando meu amigo Nilton Gonçalves Jr. sugeriu uma idéia bastante funcional.
Atualmente utilizamos a ferramente diariamente na faculdade ( Adeus a cadernos e fichários ). Chega de ficar pedindo folhas de matéria emprestada, quando você perde algum conteúdo. Mas especificamente o que nós fazemos é: Criar um documento novo, e copiar qualquer conteúdo da aula, dentro do documento do Google Docs. A parte legal disso, é que este documento por ser compartilhado com quantas pessoas quiserem, basta possuir uma conta google.
Um recursos que está frequentemente sendo utilizado é a edição simultânea de documentos. Quando compartilho o documento com o Nilton, cada um pode copiar um pedaço da aula. Sendo assim, enquanto um presta atenção o outro está copiando, e assim por diante. O recurso é bastante prático, sem nenhuma margem de erro na hora de sincronizar os documentos que estão abertos em paralelo. É bem frequente um ajeitar o erro do outro nos parágrafos acima. Ou seja, enquanto um está digitando um paragrafo, o outro está também verificando o conteúdo digitado nos paragrafos acima.
A ideia não para por ai não, também é possível adicionar não só colaboradores, mas também leitores dos arquivos. Isso significa que podemos liberar acesso de leitura dos documentos para os outros colegas da sala, ou então enviar o documento anexado num email de forma rápida.
Com Google Gear, é possível você editar seus documento offline, sendo assim, não precisa estar na internet para poder estudar e editar os documento. E ao entrar efetuar o login no Google Docs, os documentos são automaticamente sincronizados.
Existem pequenas dificuldades que são encontradas pelo caminho, primeiro, nas aulas em que tenha que fazer algum pequeno diagrama. Evidentemente que nenhum editor de texto possui um editor de imagens integrado, mas bem que seria uma solução ideal. Para isso usamos o editor de imagem da máquina local. Como na faculdade é Windows, fazemos os pequenos diagramas no PAINT ( não é muito profissional, mas quebra um galho ), e depois efetuamos o upload para o documento em edição, e o Google Docs anexa ao documento.
Uma solução WEB recém encontrada para o problemas das imagens está em: http://canvaspaint.org/, um editor de imagens online, muito similar ao PAINT que ao final é possível fazer o download da imagem, e depois fazer o upload para o documento no DOCs.
Um outro problema identificado no aplicativo, foi a falta de controle no compartilhamento de arquivos, pois qualquer pessoa com uma conta google pode criar e compartilhar um documento com qualquer outro usuário google. Isso significa que você pode ser marcado como contribuinte ou leitor de um documento desconhecido. Poderia pelo menos ser implementado um sistema para pode filtrar os arquivos compatilhados. Uma forma de selecionar ou melhor dizendo, de aceitar o compartilhamento ou não. Mesmo deletando os arquivos indesejáveis, nada impede que ele seja compartilhado novamente.
Através de tudo que eu disse aqui, muitos levantaram a seguinte pergunta: Qual o limite de armazenamento do Google Docs ?
Com algumas pesquisas, descobri que não está ligado com o espaço do Gmail. E sim com a quantidade de arquivos.
Cada documento pode ter até 500KB, aumentoado de 2MB para cada imagem no documento.
Os seguintes formatos são suportados:
HTML
Texto Simples (.txt)
Microsoft Word
.rtf
Open Office (.odt)
Você pode ter uma combinação de 5000 documentos e apresentações e 5000 imagens
Planilhas
Cada planilha pode ter até 256 colunas ou até 200.000 celulas ou até 100 tabelas– Vale o limite que for alcançado primeiro. Não há limites para numero de linhas.
Cada planilha pode ter até 20,000 celulas com fórmulas. Com esse total, os limites são aplicados à:
Até 1,000 GoogleFinance formulas
Até 1,000 GoogleLookup formulas
Até 50 formulas importadas
Você tem o limite de 1000 planilhas. A Planilha que está compartilhada com você não conta neste limite.
O limite de planilhas abertas ao mesmo tempo é 11.
Você pode importar planilhas de até 1 Mb nos formatos xls, xlsx, csv, or ods, txt, tsv, tsb.
Apresentações
Apresentações nos formatos .ppt e .pps podem ser enviados com até 10MB.
Via URL, você pode fazer o upload de apresentações da WEB de até 2MB.
Por email, a apresentação enviada por ter até 500KB.
Você pode ter uma combinação de 5000 documentos e apresentações e 5000 imagens
PDF:
Você pode armazenar até 10MB por PDF enviado e 2MB para PDFs que já estão na WEB, com o limite de até 100 PDFs.
Bom, espero que a idéia tenha sido útil para alguém… Se você já faz, ou vai passar a fazer o mesmo que nós, deixe um comentário… =)
Para separar o arquivo de áudio num vídeo, podemos utilizar o Mplayer.
Este procedimento pode ser bastante utilizado para quem quer extrair o áudio de um clip por exemplo.
Linha de comando:
video_qualquer.avi = O video a ser convertido. Poder ser em outros formatos como .mpg ou .mov por exemplo.
-ao = codec de audio. Neste caso utilizamos o PCM
pcm:file = Utilizamos o PCM como codec pois o mesmo aceita um parametro “file” onde podemos especificar o arquivo de saida.
saida_audio.wav = Arquivo de áudio de saída. Extensão wav, devido ao codec selecionado “pcm”.
-vc dummy = Codec de vídeo. No caso selecionamos dummy para que o vídeo seja desconsiderado.
-aid 1 = Seleciona o canal de áudio. No caso, primeiro canal. Se o arquivo for um .VOB ( DVD ) pode ter diversos canais de áudio, devido as dublagens e etc..
-vo null = Atribui um valor nulo para saída de vídeo. Isso significa que ao fazer o procedimento, o vídeo não será exibido pelo player.
——————————————————
Instalação do pacote Mplayer ( Mencoder incluído )
Usuários Linux tem sempre mais facilidade, nesse tipo de procedimento.
Basta abrir o Terminal e digitar: mplayer video_qualquer.avi -ao pcm:file=saida_audio.wav -vc dummy -aid 1 -vo null
Onde meu arquivo se chama video_qualquer.avi e se encontra na área de trabalho.
( Levando em consideração que ao abrir o terminal você vai estar dentro da pasta home do usuário local )
——————————————————
Usuários Windows levam mais tempo para poder executar o comando.
Entre em INICIAR > EXECUTAR e digite cmd > OK ( Para abrir o Terminal do Windows )
Acesse a pasta digitando: cd Desktop/pasta_do_mplayer/ em seguida: mplayer “../video_qualquer.avi” -ao pcm:file=”../saida_audio.wav” -vc dummy -aid 1 -vo null
Onde meu arquivo se chama video_qualquer.avie se encontra na área de trabalho.
( Utilizamos ../ para sair da pasta do mplayer e acessar o video_qualquer.avi e gravar o saida_audio.wav na área de trabalho. )
Para maiores informações visite o POST: Windows XP vs FFmpeg e Mplayer
Rotacionar um vídeo talvez seja um dos grandes problemas em filmar com uma camera digital, por exemplo. Todos ja devem ter tido alguma experiência em filmar alguma coisa, com a camera deitada, e só depoi perceber ue no computador o vídeo também fica na horizontal !
Abaixo segue o passo a passo para converter o video e deixa-lo na posição correta, utilizando uma ferramenta disponível no pacote Mplayer, o Mencoder.
A linha de comando é: mencoder video_original.mpg -vf rotate=1:pp=ci -oac pcm -ovc lavc -o video_rotacionado.mpg
Onde:
video_original.mpg = O video a ser convertido. Poder ser em outros formatos como .avi ou .mov por exemplo.
-vf rotate = comando para rotacionar o video. Veja a tabela abaixo: -vf rotate=0 (Rotaciona 90 graus sentido horário e inverte a imagem) -vf rotate=1 (Rotaciona 90 graus somente) -vf rotate=2 (Rotaciona 90 graus sentido anti-horário somente) -vf rotate=3 (Rotaciona 90 graus sentido anti-horário e inverte a imagem)
pp=ci = Ativa o filtro para desentrelaçar o video: “Cubic interpolating deinterlacing”
-oac = codec de audio. -oac pcm (uncompressed PCM audio) -oac copy (copia o audio, sem codificar) -oac mp3lame (mp3 codec)
-ovc = codec de video -ovc lavc (libavcodec: mpeg1video, mpeg2video, flv, mpeg4, dvvideo, dentre outros )
-ovc xvid ( Xvid, MPEG-4 codec)
-ovc copy (copia o video, sem codificar)
-o video_rotacionado.mpg = Video de saida. Pode ser em outros formatos como .avi ou .mov por exemplo.
*Não é necessário que esteja com a mesma extensão que o arquivo de entrada.
——————————————————
Instalação do pacote Mplayer ( Mencoder incluído )
Usuários Linux tem sempre mais facilidade, nesse tipo de procedimento.
Basta abrir o Terminal e digitar: mencoder video_original.mpg -vf rotate=1:pp=ci -oac pcm -ovc lavc -o video_rotacionado.mpg
Onde meu arquivo se chama video_original.mpg e se encontra na área de trabalho.
( Levando em consideração que ao abrir o terminal você vai estar dentro da pasta home do usuário local )
——————————————————
Usuários Windows levam mais tempo para poder executar o comando.
Entre em INICIAR > EXECUTAR e digite cmd > OK ( Para abrir o Terminal do Windows )
Acesse a pasta digitando: cd Desktop/pasta_do_mplayer/ em seguida: mencoder “../video_original.mpg” -vf rotate=1:pp=ci -oac pcm -ovc lavc -o “../video_rotacionado.mpg“
Onde meu arquivo se chama video_original.mpg e se encontra na área de trabalho.
( Utilizamos ../ para sair da pasta do mplayer e acessar o video_original.mpg e gravar o video_rotacionado.mpg na área de trabalho. )
Para maiores informações visite o POST: Windows XP vs FFmpeg e Mplayer
Vamos lá… Mais uma vez ajudando nossos amigos usuários Windows ! Para aqueles que não leram a máteria sobre Windows XP vs Linux Ubuntu podem acessar clicando aqui.
Mas ainda há aqueles que preferem o windows, não sei porque se tudo nele é mais complicado, mas vamos lá !
Existe uma certa dificuldade de usar o FFmpeg em ambiente Windows. No linux, basta digitar na linha de comando ffmpeg “mais os parametros” ou até mplayer “mais os parametros“, infelizmente Windows é tão bom, que vai nos dar um pouco mais de trabalho ! O motivo disso ? Simples… Porque o FFmpeg e o Mplayer ( derivado do ffmpeg ) forão desenvolvidos dentro do Linux. Como o código é aberto, é possível achar algumas versões compiladas para Windows.
Para ficar mais acessível, extraia o arquivo .zip na área de trabalho, depois abra o bloco de notas ( Iniciar > Executar > Digite cmd > OK )
Com o terminal aberto, devemos agora entrar no diretório do ffmpeg.
Acesse a pasta digitando: cd Desktop/pasta_do_ffmpeg/
Agora com o diretório do FFmpeg aberto pasta digitar: ffmpeg.exe mais os parametros desejados
Com o Mplayer será bem parecido, basta extrair na área de trabalho ( mais acessível ), entrar na pasta do Mplayer no terminal e digitar mplayer.exe mais os paramentros.
Só gostaria de ressaltar, e reafirmar a facilidade desta operação quando realizada em Linux. Já vou adiantando que nem todos os Codecs tanto de vídeo como áudio, não estão disponíveis para a maioria das compilações Windows. Hoje mesmo, tive um super-problema para rodar o codec de vídeo libdv no Mplayer numa máquina Windows, e a unica solução que eu consegui achar foi: não usar o codec libdv. Logicamente arrumei uma outra saida com outro codec utilizando ffmpeg e o codec dvvideo. Porém existe muitos outros que não estão disponíveis.
Meu conselho: Eu já dei.. use Linux… Para quem se recusa de qualquer forma, também já disse que é possível utilizar rodando de um CD, também é possível instala-lo num pendrive e até mesmo rodar junto com o Windows ( Dual Boot ). Opções é que não faltam… Agora cabe a você avaliar qual vai ser mais útil para você trabalhar e usar…
Recebi uma dúvida bem plausível, sobre extrair imagens de um vídeo. Com os comandos fornecidos em meu ultimo POST, é possível atrasar a captura da imagem, para começar a extrair a partir de 10 segundos por exemplo, depois do vídeo ter iniciado, como mostra o comando a seguir: ffmpeg -itsoffset -10 -i foo.avi -r 1 -s 800×600 -f image2 snapshot-%03d.jpeg
A dúvida seria exatamente essa:
“Se possuirmos um vídeo de 2 horas de duração, e precisarmos extrair somente uma imagem da posição 1 hora, 30 minutos e 20 segundos, como seria feito ?”
Simples:
Para isso utilizaremos o parametro -vframes, comando utilizado para limitar o numero de frames que vai ser capturado. No nosso caso será 1 frame. O outro comando, bastante similar ao -itsoffset, seria o -ss, serve para atribuir uma posição de inicio para capturarmos o nosso frame. Essa posição deve ser indicada como hh:mm:ss. Sendo hora : minutos : segundos da posição desejada. Abaixo segue a solução para nosso problema:
Para certificarmos que iremos extrair exatamente o frame que desejamos o valor do vframes pode ser alterado para capturar alguns frames seguintes, por segurança.
foo.avi > Vídeo de entrada, podendo ser .avi, .mpeg, .mov, ou qualquer outra extensão suportada pelo FFmpeg. -r 1 > frame rate ( 1 frame por segundo ) – s 800×600 > Dimensão desejada da imagem final. Caso o valor seja maior que o vídeo de entrada, será acrescentado bordas pretas na imagem. -f image2 > Força o formato de imagem de saída para imagem. Deve ser seguido pelo nome do arquivo desejado.jpeg snapshot–03%d.jpeg > Snapshot- é o nome do arquivo desejado. 03%d é a numeração de 3 digitos iniciando em zero. Sendo assim 04%d para 4 digitos e assim por diante, seguido pela extenção .jpeg , ou .png, .bmp ou até mesmo .tiff
Opções Adicionais:
• Sabendo que as snapshots são extraídas por segundo, então ajustando o parametro -r é possível definir de quantos em quantos frames deve-se extrair uma imagem.
• Acrescentando o parametro: -itsoffset -4 as imagens começam a ser extraídas 4 segundos depois do inicio do vídeo. Exemplo utilizando um delay de 10 segundos: ffmpeg -itsoffset -10 -i foo.avi -r 1 -s 800×600 -f image2 snapshot-%03d.jpeg
• Parametros para CROP ( corte de imagem )
Para “cropar” um vídeo, o parametro de crop deve estar localizado antes do parametro -s ( tamanho do frame )
-croptop 100 = Define o corte no topo em 100 pixels
-cropbottom 250 = Define o corte no rodapé de 250 pixels
-cropleft 30 = Define o corte da lateral esquerda de 30 pixels
-cropright 25 = Define o corte da lateral direita de 25 pixels
* Valores em pixels ilustrativos, devendo ser usados conforme sua necessidade. Não é necessário utilizar todos os parametros para fazer um crop.
Exemplo: ffmpeg -i foo.avi -croptop 250 -cropright 25 -r 1 -s hd1080 -f image2 snapshot-%03d.jpeg Onde é feito o crop do topo e da lateral direita.
No FFmpeg os codecs de áudio e vídeo são selecionados por: “-acodec codec” e “-vcodec codec” respectivamente.
Através do comando: ffmpeg -formats , é possível listar os formatos de arquivos de entrada e saída, e também os codecs suportados.
Abaixo segue algumas das opçoes comuns:
Nome do codec de áudio
Descrição
mp3lame
encode to VBR, ABR or CBR MP3 with LAME
faac
FAAC AAC audio encoder
toolame
MPEG Audio Layer 2 encoder
twolame
MPEG Audio Layer 2 encoder based on tooLAME
pcm
uncompressed PCM audio
copy
sem compreensão, somente copia os frames
Nome do codec de vídeo
Descrição
flv
Flash Video
xvid
Xvid, MPEG-4 Advanced Simple Profile (ASP) codec
x264
x264, MPEG-4 Advanced Video Coding (AVC), AKA H.264 codec
nuv
nuppel video, used by some realtime applications
raw
uncompressed video frames
copy
não recodifica, somente copia os frames
mov
QuickTime Video
dv
Digital Video
Também existe uma formam mais simples de selecionar o codec, utilizando no lugar do -vcodec, o parametro: “-target type“
Onde no lugar de type, podemos substituir por:
(“vcd”, “svcd”, “dvd”, “dv”, “dv50”, “dv25″,”pal-vcd”, “ntsc-svcd”, … )
Sendo assim, os parametros de bitrate, codecs, buffer sizes serão automaticamente ajustados.
Na próxima publicação, aprenderemos a utilizar a ferramenta, convertendo vídeos, removendo o audio, criando snapshot, etc…
FFmpeg é uma solução completa para gravar, converter e transmitir áudio e vídeo. Desenvolvido para linux, também pode ser compilado para Windows.
O projeto está sempre sendo considerado muito experimental, apesar de funcionar muito bem, pois muitos componentes multimedia e recursos estão constantemente sendo adicionados. Pequenas atualizações são feitas e um espaço muito curto de tempo, por isso não é lançado ainda uma versão formal do projeto.
O projeto é formado por diversos componentes:
ffmpeg: Linha de comando para converter arquivos multimedia entre vários formatos diferentes. ffserver: É um “multimedia streaming server” para transmissões ao vivo via HTTP. ( RTSP em desenvolvimento ) ffplay: É um simples “media player” com biblioteca FFmpeg libavcodec: É uma biblioteca que contém “decoders” e “encoders” para codec de áudio e vídeo libavformat: É uma biblioteca que contém demultiplexador e multiplexador para formatos de “container” multimedia. libavutil: É uma biblioteca de ajuda que contém rotinas comuns para diferentes partes do FFmpeg. libpostpro: É uma biblioteca que contém rotina de processamento pós video. libswscale: É uma biblioteca que contém rotina de escala de imagem. libavfilter: É o substituto do “vhook”, que permite o video ser modificado ou examinado entre o “decoder” e o “encoder”
Codecs Suportados:
* Snow
* FFV1
* ATRAC3
* H.261, H.263 and H.264/MPEG-4 AVC
* Indeo 2 and 3
* QDesign Music Codec 2, used by many QuickTime movies prior to QuickTime 7.
* Smacker video
* Sorenson 3 Codec used by many QuickTime movies
* Theora (together with Vorbis makes a base for the .ogg format)
* Truespeech
* TXD
* VP5 and VP6
* Vorbis
* Windows Media Audio
* Some Windows Media Video codecs, including WMV1, WMV2 and WMV3
The default MPEG-4 codec used by FFmpeg for encoding has the FourCC of FMP4.
Formatos
* ASF
* AVI
* BFI
* IFF
* RL2
* FLV
* Material Exchange Format
* Matroska
* Maxis XA
* MSN Webcam stream
* MPEG transport stream
* TXD
* OMA
Protocolos
* HTTP
* RTP
* RTSP
* TCP
* UDP
——————————————————————-
Instalando em LINUX ( No exemplo, Utilizei o UBUNTU )
sudo aptitude install ffmpeg
Depois disso, basta utilizar o ffmpeg com os parametros necessário, que será apresentado em um novo POST !
——————————————————————-
Instalando em Windows ( No exemplo, Windows XP )
O Objetivo deste POST foi além de apresentar o FFmpeg, foi disponibilizar o executável para download, já que é complicado de encontrar e de compilar em Windows.
O download pode ser feito em: https://rafaelbiriba.com/ffmpeg-r16537-gpl-static-win32.zip
Fonte Original: http://ffmpeg.arrozcru.com/builds/
O arquivo .zip ( 6.5 MB ) possui a documentação do FFmpeg, a documentação da versão, uma dll (pthreadGC2) e os executáveis ffmpeg.exe e ffplay.exe.
Antes de utilizar-los, precisamos mover a dll (pthreadGC2) para dentro da pasta system32 do windows. Para isso copie o arquivo pthreadGC2.dll e cole em C:\WINDOWS\system32\ de forma que seja acessivel por: C:\WINDOWS\system32\pthreadGC2.dll
Depois disso, os executáveis estão disponíveis para uso !
Sua utilização será exemplificada e explicada num próximo post. =)