J'essaie d'utiliser mencoder pour créer une vidéo avec de la musique sur une seule image. J'utilise mf pour ajouter l'image et j'obtiens toujours une vidéo avec environ une seconde d'audio avec une durée signalée de 0:00. J'ai essayé avec une variété de mp3 et d'images de différentes sources et j'ai essayé d'utiliser divers codecs et options mais je n'arrive pas à surmonter ce problème. Voici la commande de base:
mencoder "mf://image.jpg" -o out.avi -ovc lavc -lavcopts vcodec=mjpeg -audiofile music.mp3 -oac copy
Est-ce que quelqu'un sait comment faire cela ou pourquoi mencoder coupe la musique à une seconde?
C'est parce que le FPS par défaut est défini sur 30, donc mencoder attend 30 images par seconde - vous devez dire à mencoder d'utiliser une image pour l'enregistrement entier, vous devez donc définir FPS sur 1/"durée".
Ajoutez ces options:
-fps 1/132.8 -ofps 30
où 132.8
est la durée (en secondes) de votre audio.
Le résultat devrait donc ressembler à ceci:
mencoder mf://image.jpg -o out.avi \
-ovc lavc -lavcopts vcodec=mjpeg -audiofile music.mp3 \
-oac copy -fps 1/132.8 -ofps 30
Je suis seulement venu avec une alternative où vous fourniriez la même image à partir d'un tuyau:
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 -
où vous remplaceriez 55 par le nombre de secondes que vous souhaitez (ce serait la longueur de la chanson, comme vous le souhaitez).
Mais, comme vous pouvez le voir, c'est idiot que la réponse simple et directe de Vojtech. Le seul avantage que j'ai obtenu avec cette alternative était une taille de fichier résultante plus petite.