web-dev-qa-db-fra.com

Remplacer le flux audio d'un fichier par un flux audio d'un autre

J'ai deux fichiers vidéo: .mp4, avec un seul audiostream (incorrect), et un .mkv, avec deux flux audio (l'un incorrect, l'autre correct)

Existe-t-il un moyen de remplacer l'audio du fichier .mp4 par le deuxième flux du fichier .mkv?

Merci

5
CookieMonster

Vous devez d'abord extraire l'audio du MKV, puis combiner le MP4 remux avec la nouvelle piste. Quelque chose comme cela devrait fonctionner:

ffmpeg -i vid.mkv -acodec copy -vn audio.ext
ffmpeg -i vid.mp4 -i audio.ext -vcodec copy -acodec copy -map 0:1 -map 1:0 final.mp4
2
Oli

Bien sûr, avec avconv (identique à ffmpeg)

Essayer:

avconv -i INPUT_FILE_WITH_BROKEN_SOUND.mp4 -i SECOND_INPUT_FILE.mkv -c copy -map 0:v:0 -map 1:a:1 OUTPUT.mp4

- c copy copie les pistes au lieu de les ré-encoder

- map 0: v: sélectionne la piste à copier pour la sortie: 1er fichier -> pistes vidéo -> 1ère piste vidéo

- map 1: a: 1 sélectionne la piste à copier pour la sortie: 2ème fichier -> pistes audio -> 2ème piste audio

J'espère que ça aide!

1
Mr. P