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 .

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *