将旧的 AVI 文件转换为现代格式

将旧的 AVI 文件转换为现代格式

我们收集了一些很久以前以 AVI 格式保存的旧家庭视频。我想将这些文件转换为更现代的格式,因为 Ubuntu 10.4 自带的 Totem Movie Player 似乎是唯一能够播放这些文件的程序。

这些文件似乎是用 MJPEG 编解码器编码的,在 VLC 或 Windows Media Player 中播放它们只会播放声音,而没有视频。

艾维德姆克斯能够打开文件,但视频质量严重下降:视频跳帧并且是隔行扫描(在 Totem 中播放时不是隔行扫描)。

两者都不ffmpeg也不门编码器似乎能够读取视频流。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最后所证明的那样。

在上述所有情况下,音频输出均正常。

所以我的问题是:我该怎么做才能将这些文件转换为具有更现代编解码器的更现代格式?

答案1

轻松转码 安装 arista可以使用。

与 totem 类似,它使用 gstreamer 作为后端,因此应该能够读取您的文件。

答案2

我建议尝试 mplayer 拥有的其他 MJPEG 编解码器。mplayer -vc help列出了全部内容。其中一些依赖于 Win32 DLL 编解码器,因此您可能需要考虑 medibuntu 包。

相关内容