J'ai utilisé une commande comme:
ffmpeg -i video.avi -i audio.mp3 -vcodec codec -acodec codec output_video.avi -newaudio
dans la dernière version pour ajouter une nouvelle piste audio à la vidéo (pas de mixage).
Mais j'ai mis à jour le ffmpeg vers la dernière version (version ffmpeg git-2012-06-16-809d71d ) et maintenant dans cette version, le paramètre -newaudio
ne fonctionne pas.
Dites-moi s'il vous plaît comment je peux ajouter un nouvel audio à ma vidéo (pas de mixage) en utilisant ffmpeg
.
Réponses:
Ajouter de l'audio à la vidéo: copie de flux
-map
option utilisera la sélection de flux par défaut . Cela fonctionnera si votre entrée vidéo n'a pas d'audio.-codec copy
pour diffuser la copie (pas de ré-encodage; la qualité est préservée et c'est rapide).-shortest
option auraoutput.avi
la même durée que l'entrée la plus courte.Ajouter de l'audio à la vidéo: ré-encoder
Si votre sortie n'aime pas les formats d'origine, ou si vous souhaitez modifier les formats, vous pouvez spécifier les encodeurs:
Pour choisir manuellement des flux spécifiques
Parfois, la sélection de flux par défaut ne vous donnera pas le résultat souhaité. Dans cet exemple, il
video.mp4
contient de la vidéo et de l' audio, etaudio.m4a
uniquement de l'audio. Utilisez-map
pour choisir la vidéovideo.mp4
et l'audio à partir deaudio.m4a
:-map 0:v
- À partir de l'entrée0
(la première entrée, qui estvideo.mp4
), choisissez lev
flux idéo.-map 1:a
- À partir de l'entrée1
(la deuxième entrée, qui estaudio.m4a
), choisissez lea
(s) flux udio.Mixer / combiner deux entrées audio en une
Prenez une vidéo à partir de
video.webm
et utilisez le filtre amerge pour combiner l'audio devideo.webm
etaudio.oga
:Générer un son silencieux
Vous pouvez utiliser le filtre anullsrc pour créer un flux audio silencieux. Le filtre vous permet de choisir la disposition des canaux souhaitée (mono, stéréo, 5.1, etc.) et la fréquence d'échantillonnage.
Regarde aussi
la source
-map 0:0 -map 1:0
place a-map 0 -map 1
fait l'affaire pour moi. Merci!-shortest
option fonctionnait mieux pour moi.musique mp3 en wav
tronquer pour adapter la vidéo
mélanger la musique et la vidéo
la source
Si la vidéo d'entrée a plusieurs pistes audio et que vous devez en ajouter une autre, utilisez la commande suivante:
-map 0
signifie copier (inclure) tous les flux du premier fichier d'entrée (input_video_with_audio.avi
) et-map 1
moyen d'inclure tous les flux (dans ce cas un) du deuxième fichier d'entrée (new_audio.ac3
).la source
Aucune de ces solutions n'a vraiment fonctionné pour moi. Mon audio d'origine était en cours d'écrasement, ou j'obtenais une erreur du type «échec de la cartographie de la mémoire» avec l'exemple plus complexe «amerge». Il semble que j'avais besoin de -filter_complex amix.
la source
Rien n'a vraiment fonctionné pour moi (je pense que c'était parce que ma vidéo d'entrée .mp4 n'avait pas d'audio), alors j'ai trouvé que cela fonctionnait pour moi:
la source
Si vous utilisez une ancienne version de FFMPEG et que vous ne pouvez pas mettre à niveau, vous pouvez effectuer les opérations suivantes:
Notez que j'ai utilisé -vcodec
la source
Code pour ajouter de l'audio à la vidéo à l'aide de ffmpeg.
Si la longueur audio est supérieure à la longueur vidéo, la longueur audio en vidéo sera coupée. Si vous voulez un son complet dans la vidéo, supprimez -shortest de la cmd.
String[] cmd = new String[]{"-i", selectedVideoPath,"-i",audiopath,"-map","1:a","-map","0:v","-codec","copy", ,outputFile.getPath()};
la source
Environment.getExternalStorageDirectory().getAbsolutePath()+"/videoaudiomerger/"+"Vid"+"output"+i1+".mp4");
?