Wiem, że flv
i mp4
zawierają aac
dźwięk, a avi
wideo zwykle mp3
strumienie audio.
Jakie polecenie (avconv, ffmpeg) wyodrębniłoby dźwięk bez transkodowania?
Komentarze
- Może Cię to zainteresować skrypt PHP , który stworzyłem, którego używam do automatycznego określania rozszerzenia wyjściowego pliku audio.
Odpowiedź
ffmpeg -i video.mp4 -vn -acodec copy audio.aac
Oto krótkie wyjaśnienie, co robi każdy parametr:
-
-i
określa plik wejściowy. -
-vn
służy do pominięcia części wideo. -
-acodec copy
skopiuje strumień audio zachowując oryginalny kodek.
Comme nts
- podczas gdy wideo mp4 zawiera dźwięk w formacie aac, a nie mp3, czy to jest zachowanie strumienia audio bez transkodowania?
- Didn ' nie dbam o rozszerzenie pliku wyjściowego, mój błąd. Zaktualizowałem odpowiedź. W każdym razie, jeśli przeczytasz pełną odpowiedź, przekonasz się, że kopia -acodec, aby uniknąć transkodowania.
- Sugeruję m4a (kontener dla aac) zamiast aac, ponieważ wydaje się, że nie jest to łatwe do odtworzenia
- czy jest możliwe, używając ffmpeg lub avconv, mieć polecenie bez wymieniania prawdziwych nazw plików wejściowych / wyjściowych, tak aby polecenie było używane jako takie? (chciałbym tego użyć w akcji menu kontekstowego w menedżerze plików nemo)
- Możesz chcieć użyć zmiennej lub czegoś podobnego, ale lepiej jest zadać pytanie ze wszystkimi szczegółami.
Odpowiedź
Jako odpowiedź uzupełniającą, z poleceniem, które nie wymaga określonej nazwy pliku.
W przypadku wideo zawierającego dźwięk aac:
ffmpeg -i "$0" -map 0:1 -c:a copy "${0%%.*}".m4a
Formularz taki jak ten działa w poleceniu menu kontekstowego:
bash -c "ffmpeg -i "$0" -map 0:1 -c:a copy "${0%%.*}".m4a" %f
Zastąp odpowiednim wyjściem audio dla wejścia innego formatu wideo.
Początkowe źródło tutaj .