我已经使用命令
ffmpeg -i input.webm -q:v 10 -c:a copy out.mp4
我也尝试使用它avconv
来代替ffmpeg。
转换成功,但质量很差。而且需要花费很多时间。它也无法使用 Windows Media Player 播放。(原因是文件转换为 mpegv1。)我如何添加将其转换为 mpegv2 的选项?
以下是命令行输出:
avconv version 0.8.16-4:0.8.16-0ubuntu0.12.04.1, Copyright (c) 2000-2014 the Libav developers
built on Sep 16 2014 18:33:49 with gcc 4.6.3
[matroska,webm @ 0xe737a0] Estimating duration from bitrate, this may be inaccurate
Input #0, matroska,webm, from 'test.webm':
Duration: 00:00:08.57, start: 0.000000, bitrate: N/A
Stream #0.0: Video: vp8, yuv420p, 1536x768, PAR 1:1 DAR 2:1, 1k fps, 1k tbr, 1k tbn, 1k tbc (default)
Stream #0.1: Audio: vorbis, 44100 Hz, stereo, s16 (default)
[buffer @ 0xee38e0] w:1536 h:768 pixfmt:yuv420p
Output #0, mp4, to 'c2.mp4':
Metadata:
encoder : Lavf53.21.1
Stream #0.0: Video: mpeg4, yuv420p, 1536x768 [PAR 1:1 DAR 2:1], q=2-31, 200 kb/s, 1k tbn, 1k tbc (default)
Stream #0.1: Audio: libvorbis, 44100 Hz, stereo (default)
Stream mapping:
Stream #0:0 -> #0:0 (vp8 -> mpeg4)
Stream #0:1 -> #0:1 (copy)
Press ctrl-c to stop encoding
frame= 8572 fps=342 q=10.0 Lsize= 90902kB time=8.56 bitrate=86984.0kbits/s dup=8438 drop=0
video:90823kB audio:0kB global headers:0kB muxing overhead 0.086778%
答案1
这里有几个问题:
avconv
您正在使用Ubuntu 12.04 存储库的旧版本。- 此版本没有
libx264
编译 H.264 编码器()。 - 这就是为什么它选择使用
mpeg4
编码器的 MPEG-4 Part II 视频。虽然它仍然使用相同的 .MP4 容器,但 MPEG-4 Part II 不如 H.264 高效。 - 您的命令使用了
-q:v 10
,质量相当低。范围是 1–31,其中 1 是最佳值,理想情况下您需要 2–5 左右的值。 - 您无法将 Vorbis 音频复制到 MP4 容器,因此
-c:a copy
不起作用。
因此,为了解决这个问题,我建议采用以下两个选项之一:
- 继续使用
avconv
。apt-get install libavcodec-extra-53
在 Ubuntu 12.04 和libavcodec-extra-54
Ubuntu 14.04 上安装以获取 x264 对 avconv 的支持。 - 请改用最近的版本
ffmpeg
。下载最近的 ffmpeg 构建(点击Linux 静态构建链接)。将ffmpeg
二进制文件提取到某处并使用它。
然后运行以下命令(并根据您的选择替换ffmpeg
)avconv
:
ffmpeg -i input.webm -c:v libx264 -crf 20 -c:a aac -strict experimental out.mp4
CRF 控制质量,其中 18–28 是合理的选择。越低越好,23 是默认值。您可以-b:a 128k
根据自己的喜好设置音频比特率或类似值。
如果你想加快转换速度,可以使用-preset
并将其设置为 之一ultrafast, superfast, veryfast, faster, fast
,例如-preset fast
。请注意,设置此项将增加文件大小。
这ffmpeg 的 H.264 编码指南非常有用,也应该适用于 avconv(但不保证这一点)。
至于 MPEG-2,请看一下这个问题:如何使用 FFMPEG 制作最高质量的 MPEG2 视频文件?— 并且不要忘记选择-c:a libmp3lame
音频。
答案2
ffmpeg 版本 1.2.6-7:1.2.6-1~trusty1
ffmpeg -i one.webm -r 10 -cpu-used 5 -c:v libx264 -crf 20 -c:a aac -strict experiments -loglevel error /tmp/one.mp4
效果很好。10 分钟内转换了 1 小时的视频。
答案3
尝试ffmpeg -i input.webm -sameq out.mp4
作为替代方案,你可以尝试 FFMC:http://www.noobslab.com/2013/04/latest-ff-multi-converter-for-ubuntu.html或者预编译的Miro:http://www.getmiro.com/download/for-ubuntu/