Как добавить музыку к изображению с помощью mencoder
Я пытаюсь использовать mencoder для создания видео, в котором музыка воспроизводится на одном изображении. Я использую mf, чтобы добавить изображение, и я всегда получаю видео с примерно одной секундой аудио с заявленной длиной 0:00. Я пробовал с различными mp3 и изображениями из разных источников, и я пытался использовать различные кодеки и опции, но я не могу решить эту проблему. Вот основная команда:
mencoder "mf://image.jpg" -o out.avi -ovc lavc -lavcopts vcodec=mjpeg -audiofile music.mp3 -oac copy
Кто-нибудь знает, как это сделать или почему mencoder сокращает музыку до одной секунды?
2 ответа
Это потому, что по умолчанию FPS установлен на 30, поэтому mencoder ожидает 30 изображений в секунду - вы должны указать mencoder использовать одно изображение для всей записи, поэтому вы должны установить FPS на 1/"длительность".
Добавьте эти параметры:
-fps 1/132.8 -ofps 30
где 132.8
продолжительность (в секундах) вашего аудио.
Итак, результат должен выглядеть так:
mencoder mf://image.jpg -o out.avi \
-ovc lavc -lavcopts vcodec=mjpeg -audiofile music.mp3 \
-oac copy -fps 1/132.8 -ofps 30
Я только пришел с альтернативой, где вы могли бы предоставить то же изображение из трубы:
for x in `seq 1 55`; do cat image.jpg; done | mencoder -o out.avi -fps 1 -ovc lavc -demuxer lavf -lavfdopts format=mjpeg -audiofile music.mp3 -oac copy -
где вы бы заменили 55 на количество секунд, которое вы хотите (это будет длина песни, как вы хотите).
Но, как вы можете видеть, это глупее, чем простой и прямой ответ от Vojtech. Единственное преимущество, которое я получил с этой альтернативой, было меньший размер результирующего файла.