Как мне перезаписать аудиодорожку поверх видео, которое я делаю с помощью 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, но это меня беспокоит.

2
задан 5 February 2013 в 11:58

3 ответа

Как насчет использования ffmpeg в avi , который вы создали? Синтаксис будет выглядеть примерно так:

ffmpeg -i sound.wav -i input.avi output.mpg

Я не уверен, что он примет mp3 в качестве аудио импорта , поэтому вам, возможно, придется выполнить преобразование вашего звукового файла. .

Б-г удачи

0
ответ дан 5 February 2013 в 11:58
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 против avconv: ffmpeg далеко не устарел - это намеренно вводит в заблуждение. Если вам интересно , прочитайте это
0
ответ дан 5 February 2013 в 11:58

Это работало в том, что все аргументы были соблюдены; результат был то, что я хотел, в отличном качестве:

avconv -f image2 -i %06d.png -i aniron.mp3 -c:a copy -r 24 -qscale 1 test.avi

Порядок аргументов - небольшое раздражение в avconv и ffmpeg.

0
ответ дан 5 February 2013 в 11:58

Другие вопросы по тегам:

Похожие вопросы: