Polecenie wyodrębnienia audio z wideo bez konwersji

25

Wiem o tym, flva mp4pliki zawierają aacdźwięk, podczas gdy aviwideo to zwykle mp3strumienie audio.

Jakie polecenie (avconv, ffmpeg) wyodrębniłoby dźwięk bez transkodowania?


źródło
Być może zainteresuje Cię skrypt PHP , który stworzyłem, którego używam do automatycznego określania rozszerzenia wyjściowego pliku audio.
Gras Double

Odpowiedzi:

29
ffmpeg -i video.mp4 -vn -acodec copy audio.aac

Oto krótkie wyjaśnienie tego, co robi każdy parametr:

  • -i opcja określa plik wejściowy.
  • -vn Opcja służy do pominięcia części wideo.
  • -acodec copy skopiuje strumień audio zachowując oryginalny kodek.
Jherran
źródło
podczas gdy wideo MP4 zawiera audio AAC, a nie MP3, czy to utrzymuje strumień audio bez transkodowania?
1
Mój błąd, nie zadbałem o rozszerzenie pliku wyjściowego. Zaktualizowałem odpowiedź. W każdym razie, jeśli przeczytasz pełną odpowiedź, znajdziesz tę kopię -acodec, unikniesz transkodowania.
jherran
sugeruję m4a (pojemnik na AAC) zamiast AAC, ponieważ wydaje się, że nie jest to łatwe do gry
czy możliwe jest używanie polecenia ffmpeg lub avconv bez podania prawdziwych nazw plików wejściowych / wyjściowych, aby można było używać takiego polecenia? (Chciałbym użyć tego w akcji menu kontekstowego w menedżerze plików nemo)
1
Możesz użyć zmiennej lub czegoś takiego, ale lepiej zadać pytanie ze wszystkimi szczegółowymi szczegółami.
jherran
4

Jako odpowiedź uzupełniającą, z poleceniem, które nie potrzebuje konkretnej nazwy pliku.

W przypadku wideo zawierającego dźwięk AAC:

ffmpeg -i "$0" -map 0:1 -c:a copy "${0%%.*}".m4a

Aby użyć w poleceniu menu kontekstowego, działa podobny formularz:

bash -c 'ffmpeg -i "$0" -map 0:1 -c:a copy "${0%%.*}".m4a' %f 

Zamień na odpowiedni format wyjściowy audio dla wejścia innego formatu wideo.


Początkowe źródło tutaj .


źródło