Я пытаюсь использовать mencoder для создания видео, в котором музыка воспроизводится на одном изображении. Я использую mf, чтобы добавить изображение, и я всегда получаю видео с примерно одной секундой аудио с заявленной длиной 0:00. Я пробовал с различными mp3 и изображениями из разных источников, и я пытался использовать различные кодеки и опции, но я не могу решить эту проблему. Вот основная команда:
mencoder "mf://image.jpg" -o out.avi -ovc lavc -lavcopts vcodec=mjpeg -audiofile music.mp3 -oac copy
Кто-нибудь знает, как это сделать, или почему mencoder обрезает музыку до одной секунды?
Я пришел только с альтернативой, в которой вы бы предоставили то же изображение из трубы:
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. Единственное преимущество, которое я получил с этой альтернативой, было меньший размер файла.
Это - потому что кадр/с по умолчанию установлен на 30, таким образом, mencoder ожидает 30 изображений в секунду - необходимо сказать mencoder использовать одно изображение для целой записи, таким образом, необходимо установить кадр/с на 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