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.
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?
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.
Tags video conversion