如何使用 avconv 为我制作的视频配音轨?

如何使用 avconv 为我制作的视频配音轨?

首先,我已经想出了如何将多个静止帧制作成动画视频,如下所示:

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如果你不喜欢默认的视频编解码器,你可以指定输出视频编解码器( )
  • 至于ffmpegvs. avconv:ffmpeg远未被弃用 - 这是故意误导。如果你感兴趣读这个

答案2

如何使用ffmpegAVI您创建了什么?语法如下:

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 中的一个微妙的烦恼。

相关内容