quarta-feira, 21 de janeiro de 2015

Conversão de vídeos com o avconv

O ffmpeg foi substituindo pelo seu fork nas últimas versões do Ubuntu e derivado, embora você possa especificar codecs e bitrate de vídeo e áudio da forma antiga e recomendado sempre usar a nova sintaxe, para uma melhor precisão sendo isto avisado nas primeiras linhas durante a conversão.

Nova forma de especificação:
Codec de vídeo= -c:v codec
Codec de áudio= -c:a codec
Bitrate de vídeo é -b:v valor
Bitrate de áudio é -b:a valor

Notas:
Estas nova sintaxe já é usada nas últimas versões do ffmpeg.

Convertendo para avi com codec de vídeo x264

$ avconv -i video.mp4 -c:v libx264 -c:a libmp3lame -b:a 48000 seu.avi


Especificando um tamanho de janela, bitrate de vídeo e áudio e frame rate (fps) do vídeo

$ avconv -i video.mp4 -s 320x240 -r 15 -c:v libx264 -c:a libmp3lame -b:a 44100 -b:v 800k video.avi

Convertendo para div3 (codec msmpeg4)

$ avconv -i video.flv -c:v msmpeg4 -c:a libmp3lame -b:a 128k -b:v 1800k -f avi video5.avi

Conversão para xvid

$ avconv -y -i video.mp4 -vtag xvid -c:a libmp3lame -b:a 128k -b:v 620k -f avi video.avi

ou

$ avconv -y -i video.mp4 -c:v libxvid -c:a libmp3lame -b:a 128k -b:v 620k -f avi video2.avi

Screencast

$ avconv -f x11grab -s 1024x768 -r 30 -i :0.0 -qscale 1 -vcodec msmpeg4 grab3.avi

ou

$ avconv -f x11grab -s sxga -r 30 -i :0.0 -qscale 1 tela2.avi

Screencast com som

$ avconv -f alsa -ac 2 -i pulse -f x11grab -r 30 -s 1280x1024 -i :0.0 -acodec libmp3lame -vcodec libx264 -threads 0 teste.mp4

Este linha captura o som que tiver sendo reproduzido no computador com ótima qualidade de imagem, pode ser necessário ativar opção no pavucontrol para funcionar a captura com esta linha.
Você pode usar o codec mpeg4 também no lugar do libx264 mas a qualidade é baixa com pixel bem visíveis, a vantagem será no tamanho do arquivo.

Rotacionando vídeos com avconv

Todos os teste foram feitos com um vídeo na posição normal gravado na horizontal.

$ avconv -i alex.mp4 -vf transpose=1,transpose=1 rota1.avi

Este comando vira o vídeo de cabeça para baixo ou seja 180 graus.
Se aplicar este mesmo comando a um vídeo gravado de cabeça para baixo, ele ficará de cabeça para cima, ou seja ao contrário do anterior sendo virado 180 graus.

$ avconv -i alex.mp4 -vf transpose=3 video-direita.avi

Este comando gira 90 graus o vídeo para a direita.

$ avconv -i alex.mp4 -vf transpose=2 video-esquerda.avi

Este comando gira 90 graus o vídeo para a esquerda.

Extraindo fotos de um vídeo

$ avconv -i alex.mp4 -s 800x600 -f image2 foo-%03d.jpeg

Nota:
Foram 5748 fotos de um vídeo de 3 minutos.

Criando um vídeo de todas as fotos extraídas

$ avconv -f image2 -r 15 -i foo-%03d.jpeg video.mp4


Criando um vídeos com fotos

$ avconv -r 1 -i imagem%03d.jpg -r 1 -vcodec libx264 -crf 20 -g 15 seu.mp4

Inserindo som em vídeo sem som (vídeos feito com fotos)

$ avconv -i seu.mp4 -i som.mp3 -vcodec copy video-final.mp4

Nota:
Se o vídeo o vídeo de fotos tiver tiver apenas 9 fotos com duração de 12 segundos, ao inserir som de 2 minutos no arquivo gerando a duração total do vídeo será 2 minutos, sendo que após 12 segundos ficará sendo exibida a última imagem do foto do vídeo apresentada.


Fazendo cortes em vídeos

Removendo os primeiros 25 segundos iniciais do vídeo

Use a opção -ss tempo

$ avconv -i “Fim de noite.mp4" -ss 00:00:25 video_editado.avi

Quero apenas os 39 segundos finais de um vídeo.

Por exemplo num vídeo de 00:04:39 de duração você que apenas os 39 segundos finais dele, devendo usar novamente a opção -ss.

$ avconv -y -i "Fim de noite.mp4 .mp4" -ss 00:04:00 final.avi

Cortando um trecho do meio do vídeo

$ avconv -i Fim de noite.mp4 -ss 00:04:09 -t 00:00:08 trecho.avi

-ss = igual tempo da posição do vídeo a ser iniciado o corte ou seja a partir de 4 minutos e 09 segundos será feito o corte tudo e anterior a este tempo será apagado.

-t = duração do corte = no vídeo na posição 00:04:09 mais a duração de 00:00:08 será cortada ou seja você retirar as imagens do vídeo da posição 00:04:09 até 00:04:17 para gerar um novo arquivo de vídeo com conteúdo deste intervalo de tempo.

Inserido um logotipo no vídeo

$ avconv -i celeste.avi -vf "movie=chip2.png [watermark]; [in][watermark] overlay=10:10 [out]" -acodec libvo_aacenc -vcodec libx264 -threads auto logo.mp4

inserido o logotipo e convertendo para xvid utilizando com a nova sintaxe

$ avconv -i Paula.mp4 -vf "movie=firefox.png [watermark]; [in][watermark] overlay=10:10 [out]" -c:a libmp3lame -c:v libxvid -q:v 1 logo2.avi

Onde -q:v 1 é o mesmo que -qscale 1

O logotipo é inserido no alto a esquerda do vídeo, sendo usado uma figura no formato png com tamanho 36x36.

Onde
A:B
overlay=30:10

O valor em A desloca a imagem a partir da esquerda do vídeo, quando maior o valor mair fica afastado da esquerda.
O valor A com 590 deixa a figura quase encostada na lateral direita do vídeo em um vídeo com tela 640x360.
Neste vídeo de tela 640x360 você não pode usar o valor 600 devido ao tamanho da figura que ultrapassaria a lateral direita e neste caso o avconv não cria o vídeo.

O valor em B com 100 desloca a figura para baixo na vertical, e deixa a figura quase na metade da altura em um vídeo com tela 640x360.

Convertendo para mp3

$ avconv -i goto.mp4 -c:a libmp3lame -b:a 128k -vn gotovn.mp3


Criando um vídeo com uma foto fixa com áudio

$ avconv -loop 1 -shortest -y -i kelly.png -i musica.mp3 -acodec copy -vcodec mjpeg fotofixa.avi

Convertendo para wmv

$ avconv -i alex.mp4 -c:v wmv2 -b:v 900k -c:a wmav2 -b:a 192k output2.wmv

Conversão para avi

$ avconv -i adriana.mp4 -c:v mpeg4 -b:v 1000k -c:a libmp3lame -b:a 128k output.avi

Convertendo para usar em celular comum sem Android

Convertendo vídeo para usar em um celular comum sem Android que usa tela 320x240, teclado básico e que possuir mp3player e que grava vídeo em 3gp, mas ler mp4.

$ avconv -i adriana.mp4 -s 320x240 -r 15 -c:v mpeg4 -b:v 192 -c:a libmp3lame -b:a 64k celular.mp4

Você também pode usar este outro codec para o celulares simples sem Android, deste que o mesmo suporte mp4.

$ avconv -i Paula.mp4 -f mp4 -vcodec mpeg4 -b:v 100k -s 320x240 -r 15 -acodec libvo_aacenc -ar 22050 -b:a 64k paula.mp4




Um comentário: