2016-07-02 54 views
8

Come rimuovere una sola traccia (non tutte) dal contenitore di file video (.vob o .mkv) usando ffmpeg?Come rimuovere una traccia dal file video usando ffmpeg?

So che posso solo copiare video (-c:v copy -an) e traccia audio specifica dal contenitore in due file separati e quindi unirli.

Ma c'è un modo più semplice? Posso rimuovere una traccia audio specifica dal container? comando ffmpeg?

risposta

13

Usa negative mapping escludere flusso specifico (s):

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

Questo esempio mappare tutto tranne il secondo flusso audio.

+0

Wow, non sapevo nulla della funzionalità di mappatura negativa, fantastico! – v010dya

+0

Ho un problema quando il file di output è .vob ('ffmpeg -i" in.vob "-map 0 -map -0: a: 1 -c copia" out.vob "'): _Valori di tipo di supporto non validi per il flusso di output # 0_ e _Non è possibile scrivere l'intestazione per il file di output # 0 (parametri codec errati?): Argomento non valido_ ma se cambio out.vob in out.ts funziona 'ffmpeg -i" in.vob "-map 0 -map - 0: a: 1 -c copy "out.ts" ' – user25

+0

@ user25 Avrò bisogno di vedere l'output completo della console dal tuo comando. È possibile utilizzare un sito pastebin e fornire il collegamento. – LordNeckbeard

2

Stai cercando -map.

Sono passato a utilizzare avconv, ma dovrebbe essere più o meno lo stesso.

Supponiamo di avere un file chiamato "input.vob" con un video e due tracce audio; e vuoi avere "output.vob" con il video e l'ultimo audio.

si dovrebbe fare:

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

si dovrebbe notare che:

  1. non ho copiato -map 0:1
  2. non ho avuto bisogno di fare , perché ci sono le tracce audio. Tuttavia, se non ci sono tracce audio, potrebbe essere necessario utilizzare tale attributo.
  3. A volte gli stream non sono numerati nel modo in cui ho descritto, ad esempio l'audio può arrivare prima del video.
  4. Se ci sono flussi di sottotitoli, è necessario capire come gestirli.

Non è possibile lavorare sui file "sul posto", è necessario salvare in un file diverso.

P.S. Potresti chiedere queste domande al numero video.stackexchange.com la prossima volta.