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

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