web-dev-qa-db-fra.com

Comment supprimer une piste d'un fichier vidéo en utilisant ffmpeg?

Comment supprimer une seule piste (pas toutes) du conteneur de fichiers vidéo (.vob ou .mkv) à l'aide de ffmpeg?

Je sais que je peux simplement copier la vidéo (-c:v copy -an) et une piste audio spécifique du conteneur en deux fichiers séparés, puis les joindre.

Mais existe-t-il un moyen plus simple? Puis-je simplement supprimer une piste audio spécifique du conteneur? Commande ffmpeg?

19
user25

La méthode la plus efficace consiste à utiliser mappage négatif dans le -map option pour exclure des flux spécifiques tout en conservant tous les autres flux.

Supprimer un flux audio spécifique

ffmpeg -i input -map 0 -map -0:a:2 -c copy output
  • -map 0 sélectionne tous les flux de l'entrée.
  • -map -0:a:2 désélectionne ensuite le flux audio 3. L'index du flux commence à compter à partir de 0, le flux audio 10 serait donc 0:a:9.

Supprimer tous les flux audio

ffmpeg -i input -map 0 -map -0:a -c copy output
  • -map 0 sélectionne tous les flux de l'entrée.
  • -map -0:a désélectionne ensuite tous les flux audio de l'entrée.

Suppression d'autres types de flux

Si vous souhaitez supprimer d'autres types de flux, vous pouvez utiliser le spécificateur de flux approprié.

  • v - vidéo, telle que -map -0:v
  • a - audio, tel que -map -0:a (Comme montré ci-dessus)
  • s - sous-titres, tels que -map -0:s
  • d - données, telles que -map -0:d
37
llogan

Tu recherches -map.

J'ai changé pour utiliser avconv, mais cela devrait être à peu près le même.

Disons que vous avez un fichier appelé "input.vob" avec une vidéo et deux pistes audio; et vous voulez avoir "output.vob" avec la vidéo et le dernier audio.

Vous feriez:

avconv -i input.vob -map 0:0 -c:v copy -map 0:2 -c:a copy output.vob

Vous devez noter que:

  1. Je n'ai pas copié -map 0:1
  2. Je n'avais pas besoin de faire -an, car il existe des pistes audio. Cependant, s'il n'y a aucune piste audio, vous devrez peut-être utiliser un tel attribut.
  3. Parfois, les flux ne sont pas numérotés comme je l'ai décrit, par exemple l'audio peut précéder la vidéo.
  4. S'il y a des flux de sous-titres, vous devez également savoir comment les traiter.

Vous ne pouvez pas travailler sur des fichiers "en place", vous devez enregistrer dans un fichier différent.

P.S. Vous voudrez peut-être poser ces questions sur video.stackexchange.com la prochaine fois.

3
v010dya