Arquivo da tag: multimedia

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

FFmpeg: Formatos de CODECs disponíveis

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

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…

Share

FFmpeg: Solução ideal para Áudio e Vídeo

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

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

——————————————————————-

ubuntuInstalando 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 !

——————————————————————-

logo_windowsInstalando 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. =)

Share