Question Comment appliquer une piste audio à une mute h264 / mp4-video sans perte?


J'ai une vidéo MP4 / h.264 sans son. Avec ffmpeg ou similaire, comment puis-je appliquer une piste audio à ce fichier MP4 sans dégrader la qualité de la vidéo (c'est-à-dire sans recoder la piste vidéo)?

Je préférerais des solutions impliquant des logiciels libres, disponibles pour Win7, Ubuntu ou FreeBSD.


4
2017-11-30 16:33


origine




Réponses:


La commande FFmpeg correcte est:

ffmpeg -i video.mp4 -i audio.mp4 -map 0:0 -map 1:0 -c copy output.mp4

Cela fournira deux flux d'entrée, la vidéo que vous avez déjà et l'audio, par ex. à partir d'un fichier MP4 avec audio AAC, et les fusionner ensemble en utilisant le -map options

Ici, le premier numéro de 0:0 est le fichier d'entrée (0 pour le fichier vidéo et 1 pour le fichier audio), et le second nombre est le flux de ce fichier (0 puisqu'il n'y a qu'un seul flux, vidéo ou audio. Les deux flux seront mappés sur le premier fichier de sortie, donc première vidéo, puis audio.

Les flux binaires seront copiés et non ré-encodés en utilisant le -c copy option. Vous pouvez observer ceci dans la sortie FFmpeg:

Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #1:0 -> #0:1 (copy)

10
2017-11-30 17:15



Doux! Surtout que vous avez expliqué les arguments et l'utilisation de la cartographie. - poplitea
Aussi vous voudrez peut-être -shortest Si vous voulez que ce soit uniquement la durée de l'entrée la plus courte (utile si l'audio est une musique plus longue que la vidéo). - mark4o


Vous pouvez utiliser ffmpeg pour accomplir cela. Je le fais juste à partir de mon cerveau affaibli, mais peut-être que quelque chose comme ça fonctionnerait:

ffmpeg -i movie-file.mp4 -i audio-file.mp3 -c:v copy -c:a copy output.mp4

1
2017-11-30 17:10



C'est ce que je recherche. Bien que j'ai utilisé ffmpeg avant, je ne peux pas me souvenir de ses arguments. Je suppose qu'ils ont à faire avec codec / format, mais que faire -v:c, -a:c et -an représenter? - poplitea
Les options doivent être -c:v et -c:a, ne pas -v:c et -a:c. Aussi avec -an vous désactivez la sortie audio, donc le fichier de résultat n'aura plus aucun son. Si vous fusionnez des fichiers, vous devrez les mapper explicitement, à moins que FFmpeg ne puisse deviner ce que vous voulez (par exemple, fusion de vidéo AVI + audio WAV) / cc @poplitea - slhck
Oups - ont ceux qui ont changé dans mon cerveau. Ravi d'apprendre quelque chose de nouveau sur la cartographie. Merci. - thornomad


Il existe quelques éditeurs vidéo open source.

Sur Windows, il y a Windows Movie Maker ou Microsoft Live Movie Maker. Je n'ai cependant pas d'expérience avec ces derniers.

Sur Linux, il y a OpenShot qui est assez facile à utiliser.


-1
2017-11-30 17:14



Le problème avec les éditeurs non linéaires est qu’ils ne vous permettront pas de faire une copie bitstream très facilement. Si vous pouviez montrer un exemple de la façon de procéder, cela serait très utile - je ne suis pas sûr que ce soit faisable. - slhck
Vous importez votre fichier vidéo et votre fichier audio. Ensuite, il suffit de le faire glisser vers le bas (la chronologie). Vous faites de même avec votre fichier audio. Vous exportez ensuite votre projet en sélectionnant les paramètres souhaités. vous pouvez prévisualiser avant l'exportation. Je ne sais pas si c'est ce que vous demandez. - To Do
Ce que je veux dire, c'est que lorsque vous exportez le projet, la plupart des éditeurs ré-encoderont les flux vidéo et audio (en fonction des paramètres d’exportation, par exemple vers certains h.264 / AAC). Ils ne copient cependant pas le bitstream tel quel. Le recodage aggrave la qualité et l'OP souhaitait réaliser une copie bitstream. Connaissez-vous des éditeurs qui le font ou Windows Movie Maker / OpenShot peut-il le faire? - slhck
J'ai utilisé pitivi sur Ubuntu qui avait une option de sortie "direc" pour la vidéo et l'audio. Je pense que cela copie simplement le format original car l'encodage était beaucoup plus rapide qu'avec les réglages normaux. Dit que Pitivi était très instable, du moins à l'époque (il y a 1 an). - To Do