Conversione batch con passthrough video, ricodifica audio


0

Come faccio a convertire in batch tutti i file in una directory da mkv a mp4 in cui il video viene passato (non ricodificato) ma l'audio viene convertito (ricodificato)?

Ho pensato che sarebbe qualcosa di simile:

for file in *.mkv; do ffmpeg -i "$file" -acodec aac -vcodec copy "${file%.mkv}".mp4; done

ma non sta funzionando.


1
Sembra giusto, puoi spiegare cosa non funziona?
Paul

Non ricordo il messaggio esatto e al momento non sono a casa, ma sembrava avere qualcosa a che fare con il comando for. Il messaggio di errore era simile a: no "(" dopo per.
Huston

Ho capito il problema: stavo usando Powershell piuttosto che cmd e per qualche ragione non funzionano allo stesso modo. Ora il comando funziona bene. Ho anche capito come rimuovere l'estensione del file ora non necessaria: per% i in (* .mkv) do (ffmpeg -i "% i" -acodec aac -vcodec copia "% ~ ni" .mp4)
Huston

Solo per quello che sai, quel comando non funzionerà cmd o - è per la shell bash.
Paul
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.