Converta arquivos AVI antigos para um formato moderno

3

temos uma coleção de vídeos caseiros antigos que foram salvos no formato AVI há muito tempo. Eu quero converter esses arquivos para um formato mais moderno, porque o Totem Movie Player que vem com o Ubuntu 10.4 parece ser o único programa capaz de tocá-los.

Os arquivos parecem estar codificados com um codec MJPEG e reproduzi-los no VLC ou o Windows Media Player reproduz apenas o som, mas não há vídeo.

O Avidemux conseguiu abrir os arquivos, mas a qualidade do vídeo é gravemente degradada: o vídeo pula quadros e é entrelaçado (não é entrelaçado quando é reproduzido no Totem).

Nem o ffmpeg nem o mencoder parecem conseguir ler o fluxo de vídeo. O mencoder relata que está usando o codec do ffmpeg. Aqui está uma seção de sua saída:

==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
[mjpeg @ 0x92a7260]mjpeg: using external huffman table
[mjpeg @ 0x92a7260]mjpeg: error using external huffman table, switching back to internal
Unsupported PixelFormat -1
Selected video codec: [ffmjpeg] vfm: ffmpeg (FFmpeg MJPEG)

enquanto a execução de ffmpeg produz o seguinte:

$ ffmpeg -i input.avi output.avi
FFmpeg version SVN-r0.5.1-4:0.5.1-1ubuntu1, Copyright (c) 2000-2009 Fabrice Bellard, et al.
  configuration: --extra-version=4:0.5.1-1ubuntu1 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --disable-stripping --disable-vhook --enable-runtime-cpudetect --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libdc1394 --enable-shared --disable-static
  libavutil     49.15. 0 / 49.15. 0
  libavcodec    52.20. 1 / 52.20. 1
  libavformat   52.31. 0 / 52.31. 0
  libavdevice   52. 1. 0 / 52. 1. 0
  libavfilter    0. 4. 0 /  0. 4. 0
  libswscale     0. 7. 1 /  0. 7. 1
  libpostproc   51. 2. 0 / 51. 2. 0
  built on Mar  4 2010 12:35:30, gcc: 4.4.3
[avi @ 0x87952c0]non-interleaved AVI
Input #0, avi, from 'input.avi':
  Duration: 00:00:15.24, start: 0.000000, bitrate: 22447 kb/s
    Stream #0.0: Video: mjpeg, yuvj422p, 720x544, 25 tbr, 25 tbn, 25 tbc
    Stream #0.1: Audio: pcm_s16le, 44100 Hz, stereo, s16, 1411 kb/s
Output #0, avi, to 'output.avi':
    Stream #0.0: Video: mpeg4, yuv420p, 720x544, q=2-31, 200 kb/s, 90k tbn, 25 tbc
    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=    0 fps=  0 q=0.0 Lsize=     143kB time=15.23 bitrate=  76.9kbits/s    
video:0kB audio:119kB global headers:0kB muxing overhead 20.101777%

Portanto, o problema é que a saída não contém nenhum vídeo, conforme evidenciado pelo video:0kB no final.

Em todos os casos acima, o áudio sai bem.

Então, minha pergunta é: O que posso fazer para converter esses arquivos em um formato mais moderno com codecs mais modernos?

    
por iWerner 11.01.2011 / 11:15

2 respostas

3

Para facilitar a transcodificação arista pode ser usado.

Como o totem, ele usa o gstreamer como backend e deve ser capaz de ler seus arquivos.

    
por Clausi 11.01.2011 / 14:53
2

Eu recomendaria tentar os outros codecs MJPEG que o mplayer possui. mplayer -vc help lista o lote inteiro. Alguns deles dependem de codecs Win32 DLL, então você pode precisar considerar os pacotes medibuntu.

    
por Chipaca 11.01.2011 / 14:40