web-dev-qa-db-fra.com

Comment puis-je échanger les premier et second flux audio dans un système à base de MKV dans un système basé sur Linux?

J'utilise du plex. Plex semble ignorer le flux audio par défaut (sur Roku) et utiliser simplement le premier flux audio. Ceci est par mes tests utilisant MKVPropedit.

Étant donné que Plex n'appuenne pas actuellement le changement de sources audio sur les clients en dehors du réseau local, j'aimerais modifier quelques-uns de mes fichiers afin que la deuxième source audio actuelle soit la première?

Quelle est la meilleure façon d'échanger des flux audio dans un MKV sur un système basé sur Linux tel que Ubuntu?

10
user191723

Avec FFMPEG , cela devrait être plutôt simple. Assurez-vous de télécharger une version statique à partir de leur page de téléchargement et n'utilisez pas la version du référentiel Ubuntu, qui est assez ancienne.

Voici la commande:

ffmpeg -i input.mkv -map 0:v:0 -map 0:a:1 -map 0:a:0 -c copy output.mkv

Voici ce qu'est -map fait:

  • La première partie avant que le côlon est l'ID d'entrée. Puisque nous n'avons qu'une seule entrée, c'est 0.
  • La deuxième partie spécifie le type de flux, video ou audio. Ceci est facultatif, mais c'est toujours une bonne idée de spécifier également le type, au cas où les flux vidéo et audio ne sont pas multiplexés correctement.
  • La troisième partie est l'ID du flux d'entrée. 0 sera d'abord, et 1 la seconde, c'est-à-dire le premier flux vidéo et le deuxième et premier flux audio.
  • L'ordre du -map Options détermine l'ordre des flux dans le fichier de sortie.

Cela signifie que nous allons laisser la vidéo bitstream comme premier flux, puis prenez le deuxième flux audio, puis la première en substance, nous échangeons les flux audio.

En utilisant le -c copy L'option garantit que les bitstreams sont copiés et non recodés.

Quelques exemples sur Comment utiliser le -map option peut être trouvé sur le wiki FFMPEG.

14
slhck

Utilisez simplement MKVTool pour éviter, reposer, re-encoder ... Perdre du temps.

mkvpropedit -v movie.mkv -v --edit track:2 --set track-number=3 --edit track:3 --set track-number=2

cela devrait suffire à échanger le flux.

7
Whoo