首先,我已经想出了如何将多个静止帧制作成动画视频,如下所示:
avconv -f image2 -i %06d.png -r 24 -qscale 1 aniron.avi
我在目录中有一堆名为 000000.png、000001.png、000002.png 的文件。我可以用这种方式制作出质量足够高的视频。但是,到目前为止,通过输入“-i aniron.mp3”和其他几个选项来添加音轨的尝试都失败了。我总是得到这样的结果:
avconv version 0.8.5-4:0.8.5-0ubuntu0.12.04.1, Copyright (c) 2000-2012 the Libav
developers
built on Jan 24 2013 18:03:14 with gcc 4.6.3
[mp3 @ 0x8623aa0] max_analyze_duration reached
[mp3 @ 0x8623aa0] Estimating duration from bitrate, this may be inaccurate
Input #0, mp3, from 'aniron.mp3':
Metadata:
encoder : Lavf52.64.2
TDTG : 2012-07-28T18:05:36
Duration: 00:07:11.46, start: 0.000000, bitrate: 191 kb/s
Stream #0.0: Audio: mp3, 44100 Hz, stereo, s16, 192 kb/s
Input #1, image2, from '%06d.png':
Duration: 00:07:09.88, start: 0.000000, bitrate: N/A
Stream #1.0: Video: png, rgb24, 1920x1080, 25 fps, 25 tbr, 25 tbn, 25 tbc
File 'aniron.avi' already exists. Overwrite ? [y/N] y
Incompatible pixel format 'rgb24' for codec 'mpeg4', auto-selecting format 'yuv420p'
[buffer @ 0x8629500] w:1920 h:1080 pixfmt:rgb24
[avsink @ 0x8657d60] auto-inserting filter 'auto-inserted scaler 0' between the
filter 'src' and the filter 'out'
[scale @ 0x8634940] w:1920 h:1080 fmt:rgb24 -> w:1920 h:1080 fmt:yuv420p flags:0x4
Incompatible sample format 's16' for codec 'ac3', auto-selecting format 'flt'
[ac3 @ 0x86438e0] invalid bit rate
Output #0, avi, to 'aniron.avi':
Metadata:
encoder : Lavf52.64.2
TDTG : 2012-07-28T18:05:36
Stream #0.0: Video: mpeg4, yuv420p, 1920x1080, q=2-31, 200 kb/s, 90k tbn, 24 tbc
Stream #0.1: Audio: ac3, 44100 Hz, stereo, flt, 200 kb/s
Stream mapping:
Stream #1:0 -> #0:0 (png -> mpeg4)
Stream #0:0 -> #0:1 (mp3 -> ac3)
Error while opening encoder for output stream #0:1 - maybe incorrect parameters such
as bit_rate, rate, width or height
我最终可能会在 Kdenvlive 中执行此操作,但这让我很烦恼。
答案1
avconv -f image2 -i %06d.png -r 24 -qscale 1 -i audiofile.mp3 -c:a copy aniron.avi
注意事项:
-c:a
确定输出音频编解码器 - 我们只需从输入文件中复制一个即可- avi 容器相当缺乏,例如,如果您的 mp3 文件是 VBR,您可能会遇到同步问题。更好的替代方案是 MP4 或 MKV。
-c:v
如果你不喜欢默认的视频编解码器,你可以指定输出视频编解码器( )- 至于
ffmpeg
vs.avconv
:ffmpeg
远未被弃用 - 这是故意误导。如果你感兴趣读这个
答案2
如何使用ffmpeg在AVI您创建了什么?语法如下:
ffmpeg -i sound.wav -i input.avi output.mpg
我不确定是否需要mp3作为音频导入所以您可能需要转换您的声音文件。
祝你好运
答案3
这样做的目的是尊重所有参数,输出结果正是我想要的,而且质量很高:
avconv -f image2 -i %06d.png -i aniron.mp3 -c:a copy -r 24 -qscale 1 test.avi
参数的顺序是 avconv 和 ffmpeg 中的一个微妙的烦恼。