将旧的 mjpeg avi 转码为 h264

将旧的 mjpeg avi 转码为 h264

我收藏了一些用 Olympus u5000 相机录制的私人 jpeg 和 avi(mjpeg 格式)。由于 mjpeg 格式不适合在 xbmc 中播放,因此我想将其转码为 h264 格式。我得到的最多内容是以下行:

avconv -i P3040001.AVI -strict experimental -c:v libx264 -b:v 8000k -c:a ac3 -b:a 192k output.mp4

此行转换:

avconv version 9.11-6:9.11-2ubuntu2, Copyright (c) 2000-2013 the Libav developers
  built on Mar 24 2014 06:12:33 with gcc 4.8 (Ubuntu 4.8.2-17ubuntu1)
Guessed Channel Layout for  Input Stream #0.1 : mono
Input #0, avi, from 'P3040001.AVI':
  Metadata:
    creation_time   : 2013-03-04 12:21:39
    encoder         : OLYMPUS u5000
  Duration: 00:00:01.99, start: 0.000000, bitrate: 12920 kb/s
    Stream #0.0: Video: mjpeg, yuvj422p, 640x480, 30 fps, 30 tbr, 30 tbn
    Stream #0.1: Audio: pcm_u8, 8000 Hz, mono, u8, 64 kb/s

avconv version 9.11-6:9.11-2ubuntu2, Copyright (c) 2000-2013 the Libav developers
  built on Mar 24 2014 06:12:33 with gcc 4.8 (Ubuntu 4.8.2-17ubuntu1)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'output.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    creation_time   : 2013-03-04 12:21:39
    encoder         : Lavf54.20.3
  Duration: 00:00:02.09, start: 0.000000, bitrate: 35 kb/s
    Stream #0.0(und): Video: h264 (High), yuv420p, 640x480, 17 kb/s, 30 fps, 30 tbr, 30 tbn, 60 tbc
    Metadata:
      creation_time   : 2013-03-04 12:21:39
    Stream #0.1(und): Audio: aac, 8000 Hz, mono, fltp, 9 kb/s
    Metadata:
      creation_time   : 2013-03-04 12:21:39

如您所见,我的音频有问题。在 output.mp4 中根本没有音频。我想使用 avconv,因为我的 xubuntu 14.04 服务器上有很多文件。

我做错了什么?

问候。

答案1

在您的命令中,您没有指定应该对音轨执行什么操作。

尝试这个:

avconv -i P3040001.AVI -strict experimental -c:v libx264 -b:v 8000k -c:a ac3 -b:a 192k output.mp4.

您可以随意调整比特率。您可以使用avinfo它来了解原始比特率,然后将其转码为类似的比特率。

您还可以使用像 Avidemux 这样的 GUI 程序。

答案2

尝试这个:

 avconv -i input.avi -c:v libx264 -b 800k output.mp4

这将使用 libx264 编解码器以 800k 的速率重新编码视频,并让编码器决定如何处理音频以确保与 mp4 容器兼容。根据您的质量偏好调整比特率。考虑到所有因素,您应该为较大的电影允许更高的比特率。(例如,一部 1280x960 的电影需要大约 4 倍于 640x480 的比特率才能保持类似的质量)

答案3

也许最好的选择是使用预设对于 x264 编码并指定恒定速率因子 (CRF) 而不是固定比特率。源的声音一开始并不是最好的,但转换为相对低比特率的 VBR mp3 可能听起来不错。尝试以下操作:

avconv -i P3040001.AVI \
   -c:v libx264 -preset slow -crf 22 -tune film \
   -c:a libmp3lame -qscale:a 7 -ar 44100 \
   output.mp4

这可能会提供合理的视频质量和更好的声音。调整-qscale:a 7设置更好的声音,较低的数字将提供更高的比特率目标。

如果 avconv 在 x264 或 libmp3lame 上卡住,则需要添加适当的libavcodec-extra* 适合您的 Ubuntu 版本的软件包。

相关内容