Jag vet att flv
och mp4
filer innehåller aac
ljud, medan avi
video vanligtvis mp3
ljudströmmar.
Vilket kommando (avconv, ffmpeg) skulle extrahera ljudet utan att koda om det?
Kommentarer
- Du kanske är intresserad av ett PHP-skript som jag skapade för att automatiskt bestämma förlängningen av den utgående ljudfilen.
Svara
ffmpeg -i video.mp4 -vn -acodec copy audio.aac
Här är en kort förklaring till vad varje parameter gör:
-
-i
alternativet anger inmatningsfilen. -
-vn
alternativet används för att hoppa över videodelen. -
-acodec copy
kopierar ljudströmmen med den ursprungliga codecen.
Komma nts
- medan mp4-videon innehåller aac-ljud, inte mp3, är det att hålla ljudströmmen utan omkodning?
- Visste inte ' ta inte hand om filtillägget, mitt misstag. Uppdaterade svaret. Hur som helst, om du läser hela svaret hittar du den -acodec-kopian, detta undviker omkodning.
- Jag föreslår m4a (behållare för aac) istället för aac, för det verkar som att det inte är lätt att spela
- är det möjligt att, medan vi använder ffmpeg eller avconv, ha ett kommando utan att nämna de riktiga namnen på in- / utdatafiler, så att kommandot används som sådant? (jag vill använda det i en snabbmenyåtgärd i nemo-filhanteraren)
- Du kanske vill använda en variabel eller något liknande, men bättre är att du ställer en fråga med alla specifika detaljer.
Svar
Som ett kompletterande svar med ett kommando som inte behöver filens specifika namn.
För en video som innehåller aac-ljud:
ffmpeg -i "$0" -map 0:1 -c:a copy "${0%%.*}".m4a
För att använda i ett snabbmenykommando fungerar en sådan form:
bash -c "ffmpeg -i "$0" -map 0:1 -c:a copy "${0%%.*}".m4a" %f
Ersätt med motsvarande ljudformatutmatning för annan videoformatingång.
Ursprunglig källa här .