Преобразование старых файлов AVI в современный формат

У нас есть коллекция старых домашних видео, которые были сохранены в формате AVI давным-давно. Я хочу преобразовать эти файлы в более современный формат, потому что Totem Movie Player, который поставляется с Ubuntu 10.4, кажется, единственная программа, способная воспроизводить их.

Файлы, кажется, закодированы с помощью кодека MJPEG, и воспроизведение их в VLC или Windows Media Player воспроизводит только звук, но видео отсутствует.

Avidemux смог открыть файлы, но качество видео сильно ухудшилось: видео пропускает кадры и чересстрочное (оно не чередуется при воспроизведении в Totem).

Кажется, что ни ffmpeg , ни mencoder не могут прочитать видеопоток. mencoder сообщает, что использует кодек ffmpeg. Вот раздел из его вывода:

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

во время работы ffmpeg производит следующее:

$ 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%

Таким образом, проблема заключается в том, что вывод не содержит никакого видео, о чем свидетельствует video:0kB в конце.

Во всех вышеперечисленных случаях звук выходит нормально.

Итак, мой вопрос: что я могу сделать, чтобы преобразовать эти файлы в более современный формат с более современными кодеками?

3
задан 11 January 2011 в 13:15

2 ответа

Я бы порекомендовал попробовать другие кодеки MJPEG, которые есть в mplayer. mplayer -vc help перечисляет всю партию. Некоторые из них зависят от кодеков Win32 DLL, поэтому вам может потребоваться рассмотреть пакеты medibuntu.

0
ответ дан 11 January 2011 в 13:15

Для легкого транскодирования можно использовать arista Install arista .

Как тотем, он использует gstreamer в качестве бэкэнда и поэтому должен иметь возможность читать ваши файлы.

0
ответ дан 11 January 2011 в 13:15

Другие вопросы по тегам:

Похожие вопросы: