![将旧的 mjpeg avi 转码为 h264](https://linux22.com/image/1046439/%E5%B0%86%E6%97%A7%E7%9A%84%20mjpeg%20avi%20%E8%BD%AC%E7%A0%81%E4%B8%BA%20h264.png)
我收藏了一些用 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 版本的软件包。