Объедините аудио и GIF в видео, сохранив прозрачность, используя ffmpeg

Объедините аудио и GIF в видео, сохранив прозрачность, используя ffmpeg

Я пытаюсь объединитьаудиофайли агифкаввидеои я сталкиваюсь с некоторыми проблемами, несмотря на то, что перепробовал довольно много решений на Stack Overflow.

Мне бы хотелось, чтобы общая длительность файла соответствовала продолжительности аудио, а также сохранить прозрачность GIF.

  • Продолжительность аудиофайла составляет00:00:17.53
  • Продолжительность GIF-файла составляет00:00:00.40, он прозрачный.

Мне удалось объединить их, но полученная длительность совершенно неправильная, и прозрачность теряется при использовании следующей команды:

ffmpeg -i input.mp3 -ignore_loop 0 \
-i input.gif -movflags +faststart \
-vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" \
-shortest -strict -2 \
-c:v libx264 -c:a aac -b:a 192k -b:v 2M -pix_fmt yuv420p output.mp4

Продолжительность полученного видео составляет00:00:24.21

  1. Можно ли как-то правильно задать длительность выходного сигнала, не прибегая к использованию -t 00:00:17.53опций?
  2. Я пробовал конвертировать с использованием других кодеков, таких как libvpx-vp9, но мне не удалось добиться нужной прозрачности. Есть ли другой кодек, который мне нужно использовать?

Редактировать: Мне удалось создать прозрачное видео (формат webm) с помощью следующей команды:

ffmpeg -i source.mp3 -ignore_loop 0 -i source.gif -c:v libvpx -pix_fmt yuva420p -auto-alt-ref 0 -t 00:00:17.53

Однако мой первый вопрос о том, что длительность не является автоматически правильной, все еще остается в силе.

Связанный контент