FFMPEG mux audio et vidéo (à partir d'une autre vidéo) - cartographie problème
Je voudrais mettre l'audio d'une vidéo à l'autre de la vidéo sans audio (en une seule commande):
ffmpeg.exe -i video1_noAudio.mov -i video2_wAudio.mov -vcodec copy -acodec copy video1_audioFromVideo2.mov
Je suppose que "-la carte" est la bonne façon de le faire mais je me suis confondue avec elle.
Pouvez-vous suggérer comment le résoudre?
Vous devez vous connecter pour publier un commentaire.
Vue d'ensemble des entrées
input_0.mp4
a souhaité flux vidéo etinput_1.mp4
a souhaité flux audio:Dans
ffmpeg
le flux ressembler à ceci:Numéros d'ID
ffmpeg
fait référence à des fichiers d'entrée et les cours d'eau avec des numéros d'index. Le format estinput_file_id:input_stream_id
. Depuisffmpeg
commence à compter à partir de 0, flux1:1
fait référence à l'audio à partir deinput_1.mp4
.Flux prescripteurs
Cela peut être amélioré avec flux des prescripteurs. Par exemple, vous pouvez dire
ffmpeg
que vous souhaitez que le premier flux vidéo à partir de la première entrée (0:v:0
), et le premier flux audio à partir de la deuxième entrée (1:a:0
). Je préfère cette méthode car elle est plus efficace. Aussi, il est moins enclin à accidentelle de cartographie parce que1:1
peut se référer à n'importe quel type de flux, tandis que2:v:3
seulement se réfère à la quatrième flux vidéo de la troisième fichier d'entrée.Exemples
La
-map
option indiqueffmpeg
ce flux que vous voulez. Pour copier la vidéoinput_0.mp4
et audio à partir deinput_1.mp4
:L'exemple suivant permettra de faire la même chose:
-map 0:v:0
peut être traduit comme: à partir de la première entrée (0
), sélectionnez vidéo type de flux (v
), premier flux vidéo (0
)-map 1:a:0
peut être traduit comme: à partir de la deuxième entrée (1
), sélectionnez audio type de flux (a
), premier flux audio (0
)Notes Complémentaires
Avec
-c copy
les flux seront flux copié, pas de re-codé, donc il n'y aura pas de perte de qualité. Si vous voulez ré-encoder, voir FFmpeg Wiki: H. 264 Guide D'Encodage.La
-shortest
option sera la cause de la durée de sortie pour correspondre à la durée de la plus courte du flux d'entrée.Voir le
-map
de la documentation pour plus d'info.J'ai une nouvelle commande pour la fusion de l'audio à la vidéo
-vcodec
a été autour pour toujours. C'est la même chose que les plus alias-codec:v
et-c:v
.ffmpeg -i 1.mp4 -i 0.wav -map 0 -map 1 -codec copy -shortest new.mp4
la commande, mais pas de travail-vcodec copy
pour éviter de ré-encodage de la vidéo