Как добавить музыку к изображению с помощью 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
задан 22 December 2010 в 11:04

16 ответов

Это потому, что для 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
3
ответ дан 25 July 2018 в 22:42
  • 1
    Это сделал трюк. Размер кодировки не был проблемой - я могу получить файл, который в основном является размером mp3 и jpg вместе. – Tim 23 December 2010 в 22:56
  • 2
    Просто одна проблема - я не могу искать видео. Я думал, что -idx будет работать, но это не помогло - даже при запуске второго прохода только с idx и a / v копией. Я также попробовал -forceidx и установил keyint в avcopts. Разве это невозможно, если нет изменений сцены? – Tim 23 December 2010 в 23:50
  • 3
    Вы можете просто положить 1/100000, и это тоже будет работать. (Спасибо, btw) – Dorian 20 January 2012 в 20:07

Я только пришел с альтернативой, где вы предоставили бы такое же изображение из трубы:

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

1
ответ дан 25 July 2018 в 22:42

Это потому, что для 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
3
ответ дан 26 July 2018 в 23:53
  • 1
    Это сделал трюк. Размер кодировки не был проблемой - я могу получить файл, который в основном является размером mp3 и jpg вместе. – Tim 23 December 2010 в 22:56
  • 2
    Просто одна проблема - я не могу искать видео. Я думал, что -idx будет работать, но это не помогло - даже при запуске второго прохода только с idx и a / v копией. Я также попробовал -forceidx и установил keyint в avcopts. Разве это невозможно, если нет изменений сцены? – Tim 23 December 2010 в 23:50
  • 3
    Вы можете просто положить 1/100000, и это тоже будет работать. (Спасибо, btw) – Dorian 20 January 2012 в 20:07

Я только пришел с альтернативой, где вы предоставили бы такое же изображение из трубы:

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

1
ответ дан 26 July 2018 в 23:53

Это потому, что для 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
3
ответ дан 2 August 2018 в 04:08
  • 1
    Это сделал трюк. Размер кодировки не был проблемой - я могу получить файл, который в основном является размером mp3 и jpg вместе. – Tim 23 December 2010 в 22:56
  • 2
    Просто одна проблема - я не могу искать видео. Я думал, что -idx будет работать, но это не помогло - даже при запуске второго прохода только с idx и a / v копией. Я также попробовал -forceidx и установил keyint в avcopts. Разве это невозможно, если нет изменений сцены? – Tim 23 December 2010 в 23:50
  • 3
    Вы можете просто положить 1/100000, и это тоже будет работать. (Спасибо, btw) – Dorian 20 January 2012 в 20:07

Я только пришел с альтернативой, где вы предоставили бы такое же изображение из трубы:

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

1
ответ дан 2 August 2018 в 04:08

Я только пришел с альтернативой, где вы предоставили бы такое же изображение из трубы:

  для x в `seq 1 55`;  do cat image.jpg;  сделано |  mencoder -o out.avi -fps 1 -ovc lavc -demuxer lavf -lavfdopts format = mjpeg -audiofile music.mp3 -oac copy -  

, где вы бы заменили 55 числом секунд вы хотите (это будет длина песни, как вы пожелаете).

Но, как вы можете видеть, это глупее, чем простой и прямой ответ на вопрос Vojtech. Единственное преимущество, которое я получил от этой альтернативы, - меньший результирующий размер файла.

1
ответ дан 4 August 2018 в 20:12

Это потому, что для 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  
3
ответ дан 4 August 2018 в 20:12

Я только пришел с альтернативой, где вы предоставили бы такое же изображение из трубы:

  для x в `seq 1 55`;  do cat image.jpg;  сделано |  mencoder -o out.avi -fps 1 -ovc lavc -demuxer lavf -lavfdopts format = mjpeg -audiofile music.mp3 -oac copy -  

, где вы бы заменили 55 числом секунд вы хотите (это будет длина песни, как вы пожелаете).

Но, как вы можете видеть, это глупее, чем простой и прямой ответ на вопрос Vojtech. Единственное преимущество, которое я получил от этой альтернативы, - меньший результирующий размер файла.

1
ответ дан 6 August 2018 в 04:13

Это потому, что для 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  
3
ответ дан 6 August 2018 в 04:13

Я только пришел с альтернативой, где вы предоставили бы такое же изображение из трубы:

  для x в `seq 1 55`;  do cat image.jpg;  сделано |  mencoder -o out.avi -fps 1 -ovc lavc -demuxer lavf -lavfdopts format = mjpeg -audiofile music.mp3 -oac copy -  

, где вы бы заменили 55 числом секунд вы хотите (это будет длина песни, как вы пожелаете).

Но, как вы можете видеть, это глупее, чем простой и прямой ответ на вопрос Vojtech. Единственное преимущество, которое я получил от этой альтернативы, - меньший результирующий размер файла.

1
ответ дан 7 August 2018 в 22:16

Это потому, что для 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  
3
ответ дан 7 August 2018 в 22:16

Это потому, что для 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  
3
ответ дан 10 August 2018 в 10:27

Я только пришел с альтернативой, где вы предоставили бы такое же изображение из трубы:

  для x в `seq 1 55`;  do cat image.jpg;  сделано |  mencoder -o out.avi -fps 1 -ovc lavc -demuxer lavf -lavfdopts format = mjpeg -audiofile music.mp3 -oac copy -  

, где вы бы заменили 55 числом секунд вы хотите (это будет длина песни, как вы пожелаете).

Но, как вы можете видеть, это глупее, чем простой и прямой ответ на вопрос Vojtech. Единственное преимущество, которое я получил от этой альтернативы, - меньший результирующий размер файла.

1
ответ дан 10 August 2018 в 10:27

Это потому, что для 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  
3
ответ дан 13 August 2018 в 16:53
  • 1
    Это сделал трюк. Размер кодировки не был проблемой - я могу получить файл, который в основном является размером mp3 и jpg вместе. – Tim 23 December 2010 в 22:56
  • 2
    Просто одна проблема - я не могу искать видео. Я думал, что -idx будет работать, но это не помогло - даже при запуске второго прохода только с idx и a / v копией. Я также попробовал -forceidx и установил keyint в avcopts. Разве это невозможно, если нет изменений сцены? – Tim 23 December 2010 в 23:50
  • 3
    Вы можете просто положить 1/100000, и это тоже будет работать. (Спасибо, btw) – Dorian 20 January 2012 в 20:07

Я только пришел с альтернативой, где вы предоставили бы такое же изображение из трубы:

  для x в `seq 1 55`;  do cat image.jpg;  сделано |  mencoder -o out.avi -fps 1 -ovc lavc -demuxer lavf -lavfdopts format = mjpeg -audiofile music.mp3 -oac copy -  

, где вы бы заменили 55 числом секунд вы хотите (это будет длина песни, как вы пожелаете).

Но, как вы можете видеть, это глупее, чем простой и прямой ответ на вопрос Vojtech. Единственное преимущество, которое я получил от этой альтернативы, - меньший результирующий размер файла.

1
ответ дан 13 August 2018 в 16:53

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

Похожие вопросы: