Arquivo da tag: converter

FFmpeg: Convertendo um video em um gif animado

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

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:

ffmpeg -i teste.avi -pix_fmt rgb24 -f gif teste.gif

Detalhes:

  • -i = especifica o arquivo de entrada (teste.avi)
  • -pix_fmt = especifica o formato dos pixels (rgb24, formato suportado pelo gif  )
  • -f = força a saida para .gif
  • teste.gif é o arquivo de saída do comando

Se você precisa de uma solução mais específica, abaixo segue alguns outros comandos e as explicações dos parâmetros:

GIF com tamanho final específico e com loop:

ffmpeg -i teste.avi -pix_fmt rgb24 -r 10.0 -loop_output 0 -f gif -s 120x120 teste.gif

Detalhes:

  • -r = especifica o frame rate do gif
  • -loop_output = especifica quantas vezes o gif vai entrar em loop (zero para infinito)
  • -s = especifica o tamanho do gif em pixels

GIF com inicio definido pelo tempo e final limitado por frames:

ffmpeg -i widescreen.avi -pix_fmt rgb24 -r 10.0 -loop_output 0 -vframes 100 -ss 00:00:02 -f gif teste.gif

Detalhes:

  • -ss = especifica a posição inicial do video para gravação (formato: hh:mm:ss)
  • -vframes = limita a quantidade de frames que serão gravados a partir do video original
  • No exemplo, o gif será formado apenas pelos 100 primeiros frames depois da posição 2 segundos

GIF com inicio definido pelo tempo e final limitado pelo tempo:

ffmpeg -i widescreen.avi -pix_fmt rgb24 -r 10.0 -loop_output 0 -ss 00:00:02 -t 00:00:04 -f gif teste.gif

Detalhes:

  • -ss = especifica a posição inicial do video para gravação (formato: hh:mm:ss)
  • -t = especifica a posição final de gravação do video (formato: hh:mm:ss)
  • No exemplo, o gif será criado a partir do segundo 2 até o segundo 4 do vídeo.

Você também pode experimente a combinação dos parâmetros, até encontrar o comando que lhe sirva melhor… 😉

Share

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

FFmpeg: Conversão de mp4 para wmv

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

Mês passado, tive que fazer uma conversão deste tipo. Eu possuia um vídeo em mp4 e precisava converter para wmv, para que o mesmo fosse executado no windows utilizando o codec nativo, sem utilizar nenhum codec adicional para isso.

O Arquivo .MP4:
Stream #0.0(und): Video: h264, yuv420p, 480×360 [PAR 0:1 DAR 0:1], 29.97 tb(r)
Stream #0.1(und): Audio: mpeg4aac, 44100 Hz, stereo

Ao final de alguns testes, consegui converter para o seguinte arquivo .wmv:
Stream #0.0: Video: wmv1, yuv420p, 480×360 [PAR 0:1 DAR 0:1], 29.92 tb(r)
Stream #0.1: Audio: wmav2, 44100 Hz, stereo, 64 kb/s

Abaixo segue a linha de comando:
ffmpeg -i video_entrada.mp4 -vcodec wmv1 -acodec wmav2 -deinterlace -sameq video_saida.wmv

Utilizei o codec de vídeo WMV1 e o codec de áudio WMVA2, seguidos pelo deinterlace ( desentrelaçamento do vídeo ) e o sameq ( mesma qualidade de vídeo do original ).

——————————————————-
Instalação do FFmpeg:
FFmpeg: Solução ideal para Áudio e Vídeo

——————————————————

Procedimento de Uso:

ubuntu

Usuários Linux tem sempre mais facilidade, nesse tipo de procedimento.

Basta abrir o Terminal e digitar:

ffmpeg -i video_entrada.mp4 -vcodec wmv1 -acodec wmav2 -deinterlace -sameq video_saida.wmv

Onde meu arquivo se chama video_entrada.mp4 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 )

————————————————————————————————————

logo_windowsUsuá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_ffmpeg/
em seguida:
ffmpeg.exe -i “../video_entrada.mp4” -vcodec wmv1 -acodec wmav2 -deinterlace -sameq “../video_saida.wmv”

Onde meu arquivo se chama video_entrada.mp4 e se encontra na área de trabalho.
( Utilizamos ../ para sair da pasta do ffmpeg e acessar o filme.avi a partir da área de trabalho. )

————————————————————————————————————
Leitura recomendada:
Windows VS FFmpeg e Mplayer
————————————————————————————————————

Share

Mplayer: Extraindo o áudio de um vídeo

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

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:

mplayer video_qualquer.avi -ao pcm:file=saida_audio.wav -vc dummy -aid 1 -vo null

Onde,

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 )

Visite o POST: Mplayer: Projeto baseado no FFmpeg

——————————————————

Procedimento de Uso:

ubuntuUsuá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 )

——————————————————

logo_windowsUsuá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.avi e 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

——————————————————

Em caso de dúvidas, entre em contato …

Share

Mplayer: Rotacionando um Vídeo

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

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 )

Visite o POST: Mplayer: Projeto baseado no FFmpeg

——————————————————

Procedimento de Uso:

ubuntuUsuá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 )

——————————————————

logo_windowsUsuá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

——————————————————

Em caso de dúvidas, entre em contato …

Share

FFmpeg / Mplayer: Reproduzindo Vídeos

Alguns dias atrás eu apresentei o FFmpeg e também como extrair imagens de um vídeo, mas somente agora me alertaram, que não demonstrei como reproduzir vídeos utilizando a ferramenta. Então vou exemplificar a reprodução utilizando tanto o FFmpeg como o Mplayer.

Para quem é usuário Linux, já deve conhecer o Mplayer (  Mplayer Movie Player ) um dos melhores reprodutores para linux, muito usado em sua versão com interface gráfica.
Para quem é usuário Windows, deve conhecer um Pacote de codec chamado K-Lite Mega Codec Pack, onde vem o Media Player Classic, famoso por reproduzir todos os tipos de vídeo. O pacote FFmpeg funciona também de maneira bem similar, só que com opções mais avançadas como a conversão de vídeos, por exemplo, utilizando codecs variados.

Utilizando o FFmpeg:

Para assistir seus vídeos com o FFmpeg, utilizamos o componente FFplay.

ubuntuUsuários Linux tem sempre mais facilidade, nesse tipo de procedimento.

Basta abrir o Terminal e digitar:
ffplay “Desktop/filme.avi”

Onde meu arquivo se chama filme.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 )

logo_windowsUsuá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_ffmpeg/
em seguida:
ffplay.exe “../filme.avi”

Onde meu arquivo se chama filme.avi e se encontra na área de trabalho.
( Utilizamos ../ para sair da pasta do ffmpeg e acessar o filme.avi a partir da área de trabalho. )
Para maiores informações visite o POST: Windows XP vs FFmpeg e Mplayer

Utilizando o Mplayer:

ubuntuBasta abrir o Terminal e digitar:
mplayer “Desktop/filme.avi”

Onde meu arquivo se chama filme.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 )

logo_windowsEntre 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.exe “../filme.avi”
Onde meu arquivo se chama filme.avi e se encontra na área de trabalho.

( Utilizamos ../ para sair da pasta do mplayer e acessar o filme.avi a partir da área de trabalho. )
Para maiores informações visite o POST: Windows XP vs FFmpeg e Mplayer

Share

Windows XP vs FFmpeg e Mplayer

logo_windows

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.

Vamos agora por a mão na massa !

Para quem não leu a matéria FFmpeg: Solução ideal para Áudio e Vídeo, o FFmpeg pode ser obtido pelo link: https://rafaelbiriba.com/ffmpeg-r16537-gpl-static-win32.zip

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…

Share

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

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

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:

ffmpeg -vframes 1 -ss 01:30:20 -i foo.avi -r 1 -s 800×600 -f image2 snapshot-%03d.jpeg

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.

Veja o restante do tópico: Extraindo imagens de um vídeo – parte I, pelo link:
https://rafaelbiriba.com/?p=53

Share

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

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

Utilizando o seguinte comando:

ffmpeg -i foo.avi -r 1 -s 800×600 -f image2 snapshot%03d.jpeg

Onde:

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
snapshot03%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

• Parametro -s ( tamanho do frame ):
Ao invés de especificar o tamanho, é possível utilizar uma das abreviações a seguir:
sqcif = 128×96
qcif = 176×144
cif = 352×288
4cif = 704×576
qqvga = 160×120
qvga = 320×240
vga = 640×480
svga = 800×600
xga = 1024×768
uxga = 1600×1200
qxga = 2048×1536
sxga = 1280×1024
qsxga = 2560×2048
hsxga  = 5120×4096
wvga = 852×480
wxga = 1366×768
wsxga = 1600×1024
wuxga = 1920×1200
woxga = 2560×1600
wqsxga = 3200×2048
wquxga = 3840×2400
whsxga = 6400×4096
whuxga = 7680×4800
cga = 320×200
ega = 640×350
hd480 = 852×480
hd720 = 1280×720
hd1080 = 1920×1080

Exemplo:
ffmpeg -i foo.avi -r 1 -s hd1080 -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.

Espero ter ajudado a todos… =)

Share