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
  • Pingback: FFmpeg: Extraindo imagens de um vídeo ( Snapshot ) - Parte II | Rafael Biriba Blog's()

  • Pingback: FFmpeg / Mplayer: Reproduzindo Vídeos | Rafael Biriba Blog's()

  • Pingback: Retrospectiva 2009: Os posts mais visitados do blog | Rafael Biriba Blog()

  • Pingback: Retrospectiva 2009: Os posts mais visitados do blog | Planeta Globo.com()

  • Alvaro Hernandes

    Boa noite Rafael,
    Seus comentários a respeito do uso do FFMPEG são ótimos. Hoje tive um problema ao aplicar a seguinte linha de código:
    ffmpeg -i entrada.avi -r 1 -s 320×240 -f image2 snapshot-%03d.jpeg

    Quando mandeie rodar no “Command Prompt” obtive o seguinte erro:
    ………
    built on Jan 13 2009 02:57:09, gcc: 4.2.4
    Input #0, flv, from ‘C:/entrada.avi’:
    Duration: 00:00:29.73, start: 0.000000, bitrate: N/A
    Stream #0.0: Video: h264, yuv420p, 480×360 [PAR 1:1 DAR 4:3], 29.97 tb(r)
    Stream #0.1: Audio: aac, 22050 Hz, stereo, s16
    Output #0, image2, to ‘snapshot-processar.bat3d.jpeg’:
    Stream #0.0: Video: mjpeg, yuvj420p, 320×240 [PAR 1:1 DAR 4:3], q=2-31, 200
    kb/s, 1.00 tb(c)
    Stream mapping:
    Stream #0.0 -> #0.0
    Press [q] to stop encoding
    av_interleaved_write_frame(): I/O error occurred
    Usually that means that input file is truncated and/or corrupted.

    Eu so consigo extrair imagem quando insiro o parâmetro “-vframes 1”. Caso seja maior que 1, o erro é o mesmo exibido acima. Você sabe me dizer porque isso ocorre.

    Muito Obrigado e me desculpe por lhe encomodar.
    Álvaro Hernandes

  • Olá Alvaro,
    Não é um incomodo não,… É um prazer ajudar…
    Vamos lá:

    Esse erro que você está recebendo, talvez seja porque você está tentando extrair imagens de um vídeo entrelaçado, ou então o video está corrompido.

    Se tiver entrelaçado, você pode tentar rodar o comando:
    ffmpeg -i entrada.avi -r 1 -s 320×240 -deinterlace -f image2 snapshot-%03d.jpeg

    Ainda sim não tenho certeza se vai funcionar. Acho que você vai ter que rodar o ffmpeg no vídeo todo para desentrelaçar e depois extrair as imagens.
    Então, se o comando acima não funcionar, tente o seguinte:

    ffmpeg -i entrada.avi -deinterlace -sameq entrada2.avi
    Isso vai desentrelaçar o video todo, depois tente rodar o comando novamente, só que com o novo video:
    ffmpeg -i entrada2.avi -r 1 -s 320×240 -f image2 snapshot-%03d.jpeg

    Se ainda sim, não resolver, provavelmente o video está mesmo corrompido,… Então não há o que fazer, apenas conseguir o video em um melhor estado.

    Tenta aí, depois volta aqui para contar… 😉

    Abraços,

  • Alvaro Hernandes

    Boa tarde Rafael,

    Hoje de madrugada estudei mais profundamente os códigos FFMPEG e acabei testando o parâmetro “-deinterlace” coforme você havia reportado em seu “blog”. Eu só no não havia aplicado primeiramente a linha de código:
    ffmpeg -i entrada.avi -deinterlace -sameq entrada2.avi

    Após rodado a linha de código acima, apliquei a linha abaixo conforme você me orientou:
    ffmpeg -i entrada2.avi -r 1 -s 320×240 -f image2 snapshot-%03d.jpeg

    O problema ainda persiste. Experimente em alguns vídeos baixados do “youtube”, “UOL” e “Seicho-No-Ie”. Só funcionou nos vídeos baixados do site “www.sni.org.br” (Sicho-No-Ie).

    Como meu sistema operacional é “Windows Service Pack 3”, será que existe alguma limitação? Acredito que não, pois funcionou com o site da “Seicho-No-Ie”. Só não instalo Linux na minha máquina porque acabei de adquirir um novo Notebook e ainda está em garantia.
    Como eu sou teimoso nos problemas quase que insolúveis, eu não descanço enquanto não resolver o caso. Estarei analisando daqui e se você descobrir o porquê, aguardo seu “Post”.
    Lhe informarei a solução do problema caso eu consiga resolver.
    Mais uma vez lhe agradeço a atenção.

    Abraços

    Álvaro Hernandes

  • Olá Alvaro,

    Você está baixando os videos do youtube, ou da UOL como ?
    Parece que os vídeos estão chegando com problemas…
    Ao rodar o comando:
    ffmpeg -i entrada.avi -deinterlace -sameq entrada2.avi
    O ffmpeg retorna algum erro ? Ou processa o arquivo todo ?

    E faz mais esse teste:
    Roda o comando abaixo, e cola a saida dele aqui, para eu analisar o video…
    ffmpeg -i entrada.avi

    Abraços,

  • Alvaro Hernandes

    Não retorna. O processo ocorre perfeito. Veja abaixo:

    C:\>ffmpeg -i entrada.avi -deinterlace -sameq entrada2.avi
    FFmpeg version SVN-r16573, Copyright (c) 2000-2009 Fabrice Bellard, et al.
    configuration: –extra-cflags=-fno-common –enable-memalign-hack –enable-pthr
    eads –enable-libmp3lame –enable-libxvid –enable-libvorbis –enable-libtheora
    –enable-libspeex –enable-libfaac –enable-libgsm –enable-libx264 –enable-lib
    schroedinger –enable-avisynth –enable-swscale –enable-gpl
    libavutil 49.12. 0 / 49.12. 0
    libavcodec 52.10. 0 / 52.10. 0
    libavformat 52.23. 1 / 52.23. 1
    libavdevice 52. 1. 0 / 52. 1. 0
    libswscale 0. 6. 1 / 0. 6. 1
    built on Jan 13 2009 02:57:09, gcc: 4.2.4
    Input #0, flv, from ‘entrada.avi’:
    Duration: 00:01:00.00, start: 0.000000, bitrate: N/A
    Stream #0.0: Video: h264, yuv420p, 640×360 [PAR 1:1 DAR 16:9], 25.00 tb(r)
    Stream #0.1: Audio: aac, 44100 Hz, stereo, s16
    Output #0, avi, to ‘entrada2.avi’:
    Stream #0.0: Video: mpeg4, yuv420p, 640×360 [PAR 1:1 DAR 16:9], q=2-31, 200
    kb/s, 25.00 tb(c)
    Stream #0.1: Audio: mp2, 44100 Hz, stereo, s16, 64 kb/s
    Stream mapping:
    Stream #0.0 -> #0.0
    Stream #0.1 -> #0.1
    Press [q] to stop encoding
    frame= 1501 fps=127 q=0.0 Lsize= 25507kB time=60.04 bitrate=3480.2kbits/s
    video:24932kB audio:473kB global headers:0kB muxing overhead 0.402258%
    C:\>

    Depois eum apliquei as seguinte linha de código abaixo:

    C:\>ffmpeg -i entrada2.avi -r 1 -s 320Î240 -f image2 snapshot-processar.bat3d.jp
    eg
    FFmpeg version SVN-r16573, Copyright (c) 2000-2009 Fabrice Bellard, et al.
    configuration: –extra-cflags=-fno-common –enable-memalign-hack –enable-pthr
    eads –enable-libmp3lame –enable-libxvid –enable-libvorbis –enable-libtheora
    –enable-libspeex –enable-libfaac –enable-libgsm –enable-libx264 –enable-lib
    schroedinger –enable-avisynth –enable-swscale –enable-gpl
    libavutil 49.12. 0 / 49.12. 0
    libavcodec 52.10. 0 / 52.10. 0
    libavformat 52.23. 1 / 52.23. 1
    libavdevice 52. 1. 0 / 52. 1. 0
    libswscale 0. 6. 1 / 0. 6. 1
    built on Jan 13 2009 02:57:09, gcc: 4.2.4
    Input #0, avi, from ‘entrada2.avi’:
    Duration: 00:01:00.52, start: 0.000000, bitrate: 3452 kb/s
    Stream #0.0: Video: mpeg4, yuv420p, 640×360 [PAR 1:1 DAR 16:9], 25.00 tb(r)
    Stream #0.1: Audio: mp2, 44100 Hz, stereo, s16, 64 kb/s
    Output #0, image2, to ‘snapshot-processar.bat3d.jpeg’:
    Stream #0.0: Video: mjpeg, yuvj420p, 320×240 [PAR 4:3 DAR 16:9], q=2-31, 200
    kb/s, 1.00 tb(c)
    Stream mapping:
    Stream #0.0 -> #0.0
    Press [q] to stop encoding
    av_interleaved_write_frame(): I/O error occurred
    Usually that means that input file is truncated and/or corrupted.

    C:\>

    Retirei o parâmetro “-deinterlace” e substituí o formato “image2” pelo “mjpeg”. Veja abaixo:
    ffmpeg -i entrada.avi -r 1 -s 320×240 -f mjpeg snapshot-%03d.jpeg

    Não gerou qualquer erro, mas só coletou apenas uma imagem. Gostaria de coletar imagens sucessivas. Estou analisando outros formatos também.

    Abraços

  • Pelo que vi acima:
    Input #0, flv, from ‘entrada.avi’:
    Duration: 00:01:00.00, start: 0.000000, bitrate: N/A
    Stream #0.0: Video: h264, yuv420p, 640×360 [PAR 1:1 DAR 16:9], 25.00 tb(r)
    Stream #0.1: Audio: aac, 44100 Hz, stereo, s16
    Ele nem reconheceu o bitrate do video, acho que esse entrada.avi, está realmente corrompido !

    Faz mais esse teste simples:
    Roda o comando abaixo, e cola a saida dele aqui, para eu analisar o video…
    ffmpeg -i entrada.avi

    Abraços,

  • Alvaro Hernandes

    @Alvaro Hernandes
    Desculpe, eu não respondi a primeira pergunta. Eu coleto o arquivo temporário do diretório “C:\Documents and Settings\Administrator\Local Settings\Temp” algo como “flaAlgumNumero.tmp”, ou “flaLetraeAlgumNumero.tmp”. Depois eu dou um clique com o lado direto do mouse no mesmo e no “context menu” eu seleciono “Unlocker”, o qual é um programa de desbloqueio que baixei da internet. Na janela deste programa eu seleciono “copy” para salvar onde eu quiser este arquivo temporário, o qual passo a charmar de “entrada.avi”.

  • Alvaro Hernandes

    Eis os dados do arquivo de entrada:

    C:\>ffmpeg -i entrada.avi
    FFmpeg version SVN-r16573, Copyright (c) 2000-2009 Fabrice Bellard, et al.
    configuration: –extra-cflags=-fno-common –enable-memalign-hack –enable-pthr
    eads –enable-libmp3lame –enable-libxvid –enable-libvorbis –enable-libtheora
    –enable-libspeex –enable-libfaac –enable-libgsm –enable-libx264 –enable-lib
    schroedinger –enable-avisynth –enable-swscale –enable-gpl
    libavutil 49.12. 0 / 49.12. 0
    libavcodec 52.10. 0 / 52.10. 0
    libavformat 52.23. 1 / 52.23. 1
    libavdevice 52. 1. 0 / 52. 1. 0
    libswscale 0. 6. 1 / 0. 6. 1
    built on Jan 13 2009 02:57:09, gcc: 4.2.4
    Input #0, flv, from ‘entrada.avi’:
    Duration: 00:01:00.00, start: 0.000000, bitrate: N/A
    Stream #0.0: Video: h264, yuv420p, 640×360 [PAR 1:1 DAR 16:9], 25.00 tb(r)
    Stream #0.1: Audio: aac, 44100 Hz, stereo, s16
    At least one output file must be specified

  • Com certeza seu video está corrompido, ou pelo menos com o cabeçalho quebrado…
    Compare com a saida de um vídeo válido, que eu tenho aqui:
    Input #0, avi, from ‘widescreen.avi’:
    Duration: 00:00:34.30, start: 0.000000, bitrate: 3001 kb/s

    A forma como você captura o video do youtube pode estar introduzindo perdas no arquivo.

    Como você usa windows, já tentou baixar esse video do youtube, com algum programa próprio para isso? Tem vários que podem fazer isso. Acho que essa solução de pegar pela pasta temp não é a melhor delas.

    Qualquer coisa, volta aí !
    Abraços,

  • Alvaro Hernandes

    Quando eu baixo arquivos, costumo usar “vDownloader” e “aTube Catcher”. O problema é que existem sites que não permite baixar determinados arquivos de vídeo e não há programa que o faça. Qual seria a solução para tal ?

  • Utilizando algumas dessas soluções para o youtube, você consegue extrair as imagens do vídeo ??

  • Alvaro Hernandes

    Para o youtube não. O programa “aTubeCatcher” solicita “Username” e “Password” a qual não é a mesma da conta criada para O “Google/YouTube”. Com o “aTubeCatcher” eu consigo baixar vídeos “free” de alguns sites.

  • Entendi… Bom, boa sorte aí em suas pesquisas para obter os vídeos nos sites 😉

    Quanto a extração das imagens do vídeo, conseguiu resolver o problema ? Obtendo um vídeo não corrompido resolveu ?

  • Alvaro hernandes

    Sanado o problema. Eu havia executado a linha de código abaixo (compilando em ambiente Windows) para extrair imagens de um vídeo. Vide abaixo:
    ffmpeg -i c:/entrada.avi -r 1 -s 638×360 -f image2 snapshot-%03d.jpeg

    O seguinte erro foi gerado:
    av_interleaved_write_frame(): I/O error occurred
    Usually that means that input file is truncated and/or corrupted.

    No caso aqui é que a formatação de imagem “image2” o Windows não suporta. Foi constatado que quando se extrai mais de uma imagem, causa erro. Um dos formatos que se adaptou muito bem foi o “image2pipe”. Então a linha de código é a seguinte:
    ffmpeg -i c:/entrada.avi -r 1 -s 638×360 -f image2pipe snapshot-%03d.jpeg

    As imagens extraídas estarão no mesmo diretório do arquivo de entrada (C:/). No ambiente Windows, o arquivo de imagens se apresenta da seguinte forma: C:/snapshot-%03d.jpeg
    Dentro do arquivo “snapshot-%3d.jpeg” contém as várias imagens extraídas (snapshot-001.jpeg, snapshot-002.jpeg, snapshot-003.jpeg e etc.).
    Explicando melhor o que a linha de código acima fez foi: A cada segundo será extraído 1 frame do arquivo “entrada.avi” e cada qual será salvo no arquivo de saída como saída-001.jpeg, saída-002.jpeg, saída-003.jpeg e etc. Se o parâmetro “-r” fosse igual a 4, nesse caso a cada segundo seria extraído 4 frames do arquivo “entrada.avi” e cada grupo de 4 frames seria salvo no arquivo de saída como saída-001.jpeg, saída-002.jpeg, saída-003.jpeg e etc.

    Agora vamos utilizar estas imagens extraídas para criação de um vídeo. Digite a seguinte linha de código:
    ffmpeg -f image2pipe -i c:/snapshot-%03d.jpeg -s 638×360 -vcodec msmpeg4v2 c:/myvideo.avi

    Para o sistema operacional Windows caso você não atribua o parâmetro “–vcodec”, o padrão de formatação de vídeo adotado será “mpeg4”. Como esse padrão não é suportado pelo o Windows, logo as imagens não serão reproduzidas. Um dos padrões de formatação de vídeo que se adaptou bem foi o “msmpeg4v2”.

    Portanto Rafael, esta foi uma solução encontra para que se pudesse extrair imagens de um vídeo e depois remontá-la em outro vídeo. Testei com mais outros “codecs” de vídeo e funcionou perfeitamente.
    Agradeço seus esclarecimentos e que sirva de base para outros colegas.

    Abraços.

  • Sensacional sua explicação!

    O estranho, é que na época que escrevi esse post, eu havia testado o image2 no windows… Provavelmente pode ser a sua compilação de ffmpeg.

    Pode fazer um testezinho, e tentar rodar a minha compilação, só para sanar essa dúvida, se é ou não problema do ffmpeg ?
    https://rafaelbiriba.com/ffmpeg-r16537-gpl-static-win32.zip

    Abraços,

  • Alvaro hernandes

    Perfeito. Me aguarde que lhe retorno.

  • Alvaro hernandes

    Sua plataforma FFMPEG acontece a mesma coisa. Usar o formato -f image2 causa o mesmo erro. Se usar os formatos <b-f image2pipe e -f mpjpeg, a extração é perfeita.
    Realizaei até um teste retirando aquela biblioteca DLL (pthreadGC2.dl) do diretório C:\WINDOWS\system32.
    O DLL se torna irrelavante.

    Abraços.

  • Entendi… Obrigado pelo teste…

    Quando tiver um tempo vago, vou testar no windows com mais calma…
    Acho mais fácil fazer isso tudo no linux… Devia tentar =)

    Vi que você converteu as fotos de novo para vídeo… Qual seria o objetivo disso ?

  • Alvaro hernandes

    MENSAGEM CORRETIVA:
    Desculpe por eu ter assassinado a correção ortográfica da mensagem anterior..
    Sua plataforma FFMPEG acontece a mesma coisa. Usar o formato -f image2 causa o mesmo erro. Se usar os formatos -f image2pipe e -f mpjpeg, a extração é perfeita.
    Realizei até um teste retirando aquela biblioteca DLL (pthreadGC2.dll) do diretório C:\WINDOWS\system32\.
    O DLL se torna irrelavante.

    Abraços.

  • Alvaro hernandes

    O objetivo é apresentar cada imagem por um determinado tempo e causar um “fading” onde a primeira imagem vai desaparecendo lentamente e a segunda vai sendo exibida de forma suave. Na realidade é um controle de contraste. É como se fosse um apresentação de “slides”. Isto foi sugerido por um amigo meu.

    Abraços.

  • Entendi.
    Acho que você consegue obter um efeito melhor utilizando um programa próprio para edição de vídeo como o Windows Movie Maker (Já que usa windows.)

    Abraços,

  • Alvaro hernandes

    Perfeitamente. Eu sou programador de “Flex” (atual Flash Builder 4.0) da Adobe. A plataforma “Flex” nada mais é do que um “WEB 2.0”. Dá um pouco de trabalha, mas funciona. Quanto ao “Windows Movie Maker” não posso dizer muito, pois não tive intimidade com este programa.

    Abraços.

    • É bem simples de mexer… Tente e você terá o efeito desejado…

  • Jorge

    Ola Rafael, gostaria de saber se voce tem algum tutorial que explique a conversao de videos apos upload? Se nao, como posso faze-lo? Abracos Rafael e parabens…

    • O que você precisa fazer (de forma simples), é no código onde você recebe o arquivo por upload, fazer um “system call” e chamar a linha do ffmpeg para ele codificar o video.

  • João Silva Costa

    Rafael, estou tentando extrair imagens de um video (gravado em MiniDV), mas dá erro:

    $ ffmpeg -i video1.original.avi -deinterlace -sameq videoteste.avi

    ffmpeg: Symbol `av_pix_fmt_descriptors’ has different size in shared object, consider re-linking
    FFmpeg version SVN-r25838, Copyright (c) 2000-2010 the FFmpeg developers
    built on Sep 20 2011 16:58:16 with gcc 4.4.5
    configuration: –enable-libdc1394 –prefix=/usr –extra-cflags=’-Wall -g ‘ –cc=’ccache cc’ –enable-shared –enable-libmp3lame –enable-gpl –enable-libvorbis –enable-pthreads –enable-libfaac –enable-libxvid –enable-postproc –enable-x11grab –enable-libgsm –enable-libtheora –enable-libopencore-amrnb –enable-libopencore-amrwb –enable-libx264 –enable-libspeex –enable-nonfree –disable-stripping –enable-avfilter –enable-libdirac –disable-decoder=libdirac –enable-libschroedinger –disable-encoder=libschroedinger –enable-version3 –enable-libopenjpeg –enable-libvpx –enable-librtmp –extra-libs=-lgcrypt –disable-altivec –disable-armv5te –disable-armv6 –disable-vis
    libavutil 50.33. 0 / 50.43. 0
    libavcore 0.14. 0 / 0.14. 0
    libavcodec 52.97. 2 / 52.123. 0
    libavformat 52.87. 1 / 52.111. 0
    libavdevice 52. 2. 2 / 52. 2. 2
    libavfilter 1.65. 0 / 1.65. 0
    libswscale 0.12. 0 / 0.14. 1
    libpostproc 51. 2. 0 / 51. 2. 0
    Input #0, avi, from ‘video1.original.avi’:
    Duration: 01:02:08.89, start: 0.000000, bitrate: 30448 kb/s
    Stream #0.0: Video: dvvideo, yuv411p, 720×480 [PAR 8:9 DAR 4:3], 29.97 fps, 29.97 tbr, 29.97 tbn, 29.97 tbc
    Stream #0.1: Audio: pcm_s16le, 48000 Hz, 2 channels, s16, 1536 kb/s
    [buffer @ 0x8778800] w:720 h:480 pixfmt:yuv411p
    [ffsink @ 0x8779e80] auto-inserting filter ‘auto-inserted scaler 0’ between the filter ‘src’ and the filter ‘out’
    [scale @ 0x87751c0] w:720 h:480 fmt:yuv411p -> w:720 h:480 fmt:yuv420p flags:0x4
    Output #0, avi, to ‘videoteste.avi’:
    Metadata:
    ISFT : Lavf52.111.0
    Stream #0.0: Video: mpeg4, yuv420p, 720×480 [PAR 8:9 DAR 4:3], q=2-31, 200 kb/s, 29.97 tbn, 29.97 tbc
    Stream #0.1: Audio: mp2, 48000 Hz, 2 channels, s16, 64 kb/s
    Stream mapping:
    Stream #0.0 -> #0.0
    Stream #0.1 -> #0.1
    Press [q] to stop encoding
    Falha de segmentação

    o que podemos fazer para resolver o problema?

    $ ffmpeg -i video1.original.avi

    ffmpeg: Symbol `av_pix_fmt_descriptors’ has different size in shared object, consider re-linking
    FFmpeg version SVN-r25838, Copyright (c) 2000-2010 the FFmpeg developers
    built on Sep 20 2011 16:58:16 with gcc 4.4.5
    configuration: –enable-libdc1394 –prefix=/usr –extra-cflags=’-Wall -g ‘ –cc=’ccache cc’ –enable-shared –enable-libmp3lame –enable-gpl –enable-libvorbis –enable-pthreads –enable-libfaac –enable-libxvid –enable-postproc –enable-x11grab –enable-libgsm –enable-libtheora –enable-libopencore-amrnb –enable-libopencore-amrwb –enable-libx264 –enable-libspeex –enable-nonfree –disable-stripping –enable-avfilter –enable-libdirac –disable-decoder=libdirac –enable-libschroedinger –disable-encoder=libschroedinger –enable-version3 –enable-libopenjpeg –enable-libvpx –enable-librtmp –extra-libs=-lgcrypt –disable-altivec –disable-armv5te –disable-armv6 –disable-vis
    libavutil 50.33. 0 / 50.43. 0
    libavcore 0.14. 0 / 0.14. 0
    libavcodec 52.97. 2 / 52.123. 0
    libavformat 52.87. 1 / 52.111. 0
    libavdevice 52. 2. 2 / 52. 2. 2
    libavfilter 1.65. 0 / 1.65. 0
    libswscale 0.12. 0 / 0.14. 1
    libpostproc 51. 2. 0 / 51. 2. 0
    Input #0, avi, from ‘video1.original.avi’:
    Duration: 01:02:08.89, start: 0.000000, bitrate: 30448 kb/s
    Stream #0.0: Video: dvvideo, yuv411p, 720×480 [PAR 8:9 DAR 4:3], 29.97 fps, 29.97 tbr, 29.97 tbn, 29.97 tbc
    Stream #0.1: Audio: pcm_s16le, 48000 Hz, 2 channels, s16, 1536 kb/s
    At least one output file must be specified

    • Parece que o binário do seu ffmpeg está com problemas, dado que toda vez que ele é executado, um erro aparece logo nas primeiras linhas…

      Tente reinstalar / recompilar ele para ver se resolve…