Існує набагато простіший спосіб, ніж запропонований тут, який не вимагає обчислення кількості кадрів або введення довжини окремих файлів (особливо краще для пакетної обробки). З останньою версією ffmpeg ви можете скористатися -shortest
параметром, який припиняє кодування, коли закінчується найкоротший потік - у цьому випадку input.mp3 (оскільки зображення візьметься циклічно, воно має нескінченну довжину):
ffmpeg -i input.mp3 -f image2 -loop 1 -r 2 -i input.jpg \
-shortest -c:a copy -c:v libx264 -crf 23 -preset veryfast output.mp4
Для зображення / відео використовується 2 кадри в секунду, що має бути нормальним, але ви можете встановити його на більш стандартні 25, якщо хочете.