1

Я хочу создать много видео с несколькими аудиопотоками и одним изображением.

Например у меня

  • song1.mp3
  • song2.mp3
  • song3.mp3

и одна картинка. Что мне нужно сделать, это создать много видео и назвать эти видео как: song1.mp4 , song2.mp4 , song3.mp4

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

ffmpeg -loop 1 -shortest -r 0.1 -i online.mp3 -i imagen.png -ab 128k output.avi

Вы можете мне помочь?

1 ответ1

3

Во-первых, вам нужно немного переупорядочить параметры ffmpeg. -loop 1 должен стоять перед входным изображением, а -r 0.1 идеале должно идти как выходной параметр после изображения. Смотрите больше на вики FFmpeg о создании слайд-шоу из изображений.

Затем убедитесь, что вы используете последнюю версию ffmpeg. Загрузите один здесь и не используйте тот, который вы установили с apt-get - он очень устарел.

Кроме того, вы хотите использовать H.264 и AAC в качестве видео- и аудиокодека соответственно с MP4 в качестве контейнера, а не с комбинацией MPEG-4 и MP3 в AVI, которую вы получите с помощью текущей команды.

Зациклите все MP3-файлы, удалите расширение и запустите сценарий ffmpeg:

for f in *.mp3; do
    # create output filename songX.mp4
    name="${f%%.mp3}.mp4"
    # run ffmpeg command
    ffmpeg -loop 1 -i imagen.png -i "$f" \
      -r 0.1 -shortest \
      -c:v libx264 -pix_fmt yuv420p -c:a aac -strict experimental \
      -crf 18 -b:a 128k "$name"
done

То, что я также добавил, это:

  • CRF (коэффициент постоянной скорости) устанавливает качество видео (используйте значение от 18 до 28, чем ниже, тем лучше)
  • явное преобразование в субсэмплинг 4:2:0 - в противном случае вы получите 4:4:4, если у вас есть PNG в качестве ввода, и это не может быть воспроизведено у всех игроков

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .