Jaki jest najlepszy sposób na wyodrębnienie audio z pliku wideo?

19

Jestem wielkim fanem HandBrake . To uosobienie prostoty. Wybierz plik wideo (lub DVD), wybierz ustawienie wstępne, wybierz ścieżkę wyjściową, kliknij Start. Po pewnym czasie w stosunku do rozmiaru / jakości treści masz już całkiem idealny plik wideo odpowiedni dla wybranego medium.

Szukałem podobnych cech w Audio Converter, a najlepiej Audio Extractor (z danego pliku wideo). Chciałbym móc przeciągnąć plik wideo do aplikacji, określić, że chcę, aby plik audio w AAC miał dany bitrate, kliknij Start i pozwól aplikacji zrobić resztę.

Nie jestem przeciwny używaniu Hamulca ręcznego do wystarczającego aspektu konwersji, o ile ekstrakcja dźwięku po fakcie jest prostym procesem. Chodzi o to, aby zrobić jak najmniej kroków.

Jakieś wskazówki? Aplikacje? Pomysły?

Jason Salaz
źródło
Rozszczepienie jest dobrym narzędziem do wydobywania danych audio z pliku wideo, a ja przygotowywałem się do zrobienia tego w staromodny sposób, ścieżka po ścieżce, ręcznie. Nie moje preferencje. Później wpadłem na pomysł, aby go napisać, ale niestety wydaje się, że rozszczepienie nie ma AS Dictionary.
Jason Salaz
@Jason zastanawiał się nad skryptami interfejsu użytkownika, aby porozmawiać z Fission?
Nathan Greenstein
Czy to ogólnie prymitywny Applescript, gdy dana aplikacja nie ma słownika? Kliknij menu o nazwie „Plik”. Kliknij pozycję menu o nazwie „Zapisz”. Rzeczy mniej więcej tak?
Jason Salaz
@Jason tak. Ale może być lepsza niż robienie tego ręcznie, w zależności od tego, ile z nich planujesz prześcigać.
Nathan Greenstein
Natknąłem się dziś na wpis w FAQ I just want audio, not video. Can I do that? Not with HandBrake, no. You could just encode the video at a low resolution with a fast low quality encoder like ffmpeg, then extract the audio track. Or you could use Handbrake'a : OSEx . Niestety jest to tylko PPC. Booooo!
Jason Salaz,

Odpowiedzi:

22

W końcu znalazłem dokładną kombinację, której potrzebowałem, i znalazłem ją w ffmpeg .

Rozbuduję nieco to pytanie i wyjaśnię fakt, że już pracowałem z mp4 zawierającym wideo / audio, więc MP4 Video (.m4v) i AAC Audio (.m4a). Absolutnie chciałem, żeby wersja audio została wyodrębniona z wideo.

Po pierwsze, dość łatwo jest zainstalować takie rzeczy jak ffmpeg, mplayer, rzeczy zbudowane na nich i podobne pakiety open source. Pomiędzy Rudix , Homebrew , MacPorts i Fink (czy ktoś jeszcze używa Fink?), Oprogramowanie innych firm jest bardzo łatwe do zainstalowania.

Po zainstalowaniu ffmpeg i ffmpegdostępnym w wierszu poleceń uruchomiłem polecenie w następujący sposób:

ffmpeg -i videofile.mp4 -vn -acodec copy audiotrack.m4a

ffmpeg : polecenie.

-i videofile.mp4 : źródłowy plik wideo.

-vn : Nie nagrywaj (nie uwzględniaj) danych wideo.

-acodec copy : Skopiuj źródło audio takim, jakie jest, oto cała magia. ffmpeg wypisze dane audio jako różne obsługiwane kodeki, ale określenie kopii prowadzi bit-za-bitową dokładną kopię strumienia. W połączeniu z wyłączeniem wideo przez -vn pozostawia ci samotną ścieżkę audio w kontenerze mp4.

audiotrack.m4a : wyjściowa nazwa pliku.

Nie mogę uwierzyć, że coś takiego było tak trudne i tak długo ukryte.

Ponieważ zawsze zamierzam zgrać dane audio AAC z kontenera / wideo MP4, napisałem szybki skrypt, aby to zrobić.

#!/bin/bash

INFILE="$1"
TMPOUTFILE="${INFILE%.*}"
OUTFILE="${TMPOUTFILE##*/}.m4a"

ffmpeg -i "${INFILE}" -vn -acodec copy "${OUTFILE}"

Teraz po prostu inwokuję rip_m4a_from_mp4 somevideofile.mp4i pozostaje mi tylko wersja audio z tą samą nazwą pliku, kończącą się na m4a.

Prosty! W każdym razie dla mnie. Brak graficznych interfejsów, błyskawicznie, to tylko jedna z tych rzeczy, które wiersza poleceń robi lepiej.

Jason Salaz
źródło
Możliwe, że możesz zamienić m4aw linii 5 na $2i podać nowe rozszerzenie w linii poleceń. W ten sposób, jeśli pracujesz z czymś innym i wiesz, co to jest dźwięk, możesz to określić. Mogę to zrobić sam i zmienić nazwę skryptu na „rip_audio_from_video”. Rodzajowy!
Jason Salaz
Rozpocząć. ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"potem brew install ffmpeg. Teraz postępuj zgodnie z instrukcjami powyżej.
boyfarrell,
Strona główna homebrew jest brew.sh . Po postępując zgodnie z instrukcjami na tej stronie (tylko w przypadku ich zmiany) brew install ffmpeg. A potem tak, możesz podążać za moimi krokami.
Jason Salaz,
2
Jeśli nie chcą ponownego kodowania dźwięku do innego formatu, ffmpegmoże to zrobić w tym samym poleceniu. Na przykład: ffmpeg -i source_video.avi -vn -ar 44100 -ac 2 -ab 192 -f mp3 sound.mp3( catswhocode.com/blog/19-ffmpeg-commands-for-all-needs )
alexw
1
@alexw upewnij się, że podałeś 192k, a nie 192. W przeciwnym razie nastąpi powrót do kodowania 128kbit / s.
smets.kevin
12

Możesz to zrobić bezpośrednio w Finderze, zaczynając od Mac OS X 10.7 (Lion), jak opisano w OSX Daily .

Krótka odpowiedź brzmi: wybierz plik lub pliki w Finderze, a następnie ctrlkliknij i wybierz Usługi -> Zakoduj wybrane pliki wideo .

Pamiętaj, że może być konieczne włączenie tej usługi w panelu preferencji Klawiatura .

wprowadź opis zdjęcia tutaj

Craig S. Cottingham
źródło
Łał! Bardzo wygodne! Kolejny powód, aby używać komputera Mac!
Javad Sadeqzadeh
W moim przypadku rozmiar m4apliku wynikowego w porównaniu do użycia ffmpegbył ponad 3 razy większy. Może to stanowić problem, szczególnie w przypadku większych plików.
Kazimierz
6

Przeciągnąłem film do GarageBand. GarageBand podzieli plik na audio i wideo, w którym to czasie możesz usunąć ścieżkę wideo (pozostawiając tylko ścieżkę audio).

Następnie możesz kliknąć opcję Send Song To iTunes w menu Share (patrz zdjęcie). Spowoduje to pojawienie się różnych formatów, do których chcesz wyeksportować.

wprowadź opis zdjęcia tutaj

Co najlepsze, jest to bezpłatne :), ponieważ wszystkie komputery Mac są dostarczane z GarageBand. Ponadto pozwala również dostosować aspekty dźwięku, takie jak prędkość i głośność.

Powiedziawszy to, jeśli chcesz naprawdę automatyczne rozwiązanie i czujesz się komfortowo w wierszu poleceń w Terminalu, daj mi znać w komentarzach, a ja wymyślę skrypt, który ci na to pozwoli.

robzolkos
źródło
Nie zamierzam tego robić z jednego powodu (chyba że się mylę, proszę o poprawienie mnie): Rekompresja. Pliki wideo mają już znacznie skompresowane dane audio i chcę zachować oryginalne dane audio w jak największym stopniu. Zabójczą funkcją Fission jest „bezstratna edycja i reeksport”. Nie wspominając nawet o tym, że GarageBand jest naprawdę bardzo powolny w przypadku takich zadań: /. Jest to jednak wspaniałe rozwiązanie dla zadania, które spełnia przedmiot, więc dałem Ci +1 za ten aspekt.
Jason Salaz
4

Quicktime 7 wykona pracę naprawdę łatwo.

Wystarczy otworzyć wideo i przejść do Plik > Eksportuj > Dźwięk do AIFF / AU / Wave > wybierz ścieżkę i gotowe! :)

nuc
źródło
Wygląda na to, muszę znaleźć moją płytę Snow Leopard ...
Jason Salaz
@vxjasonxv nie musisz. Możesz pobrać za pośrednictwem podanego linku.
nie
Oh dziękuję! Tak naprawdę nie sądziłem, że link byłby w ten sposób istotny.
Jason Salaz
1
Czy dotyczy to ta sama pułapka, którą dodałem do odpowiedzi Roba? Mogę „zapisać falę” dźwięku, ale jest on już skompresowany i teoretycznie, aby go użyć, musiałbym go ponownie skompresować, czego wolałbym nie robić.
Jason Salaz
4

QuickTime Player 10 jest również w stanie eksportować audio (bez ponownego kodowania).

Wybierz Plik> Eksportuj> Tylko dźwięk…

Testowane na macOS 10.12 Sierra z QuickTime Player 10.4.

Melebius
źródło
1
Ale czy to ponownie koduje dźwięk?
Jason Salaz,
1
@JasonSalaz Nie, po prostu wypakuj. To IMHO lepsza opcja. Jest dość szybki i zachowuje jakość. Ponadto możesz go ponownie zakodować w dowolnym momencie.
Melebius
1
Niesamowite. Moja odpowiedź ffmpeg również jest tylko ekstraktem, więc prawdopodobnie zajmuje to tyle samo czasu co QuickTime. Zaletą ffmpeg jest to, że nie ma on nieodłącznej wagi ładowania interfejsu użytkownika, więc jest niewątpliwie szybszy przy 1 pliku i wykładniczo szybszy przy wielu plikach. Ale jest to świetna odpowiedź dla kogoś, kto zna się na Automatyzacji / Applescripting i być może nie jest tak wygodny w linii poleceń lub w skryptach powłoki.
Jason Salaz,
0

Po prostu otwieram plik wideo z zuchwałością, a następnie eksportuję dźwięk. Mogę ustawić parametry eksportowanego pliku audio podczas eksportu.

ttercek
źródło
Ustawienie parametrów pliku audio oznacza ponowne kodowanie dźwięku. Czy Audacity ma opcję przejścia (ekstrakcja bez zmian)?
Jason Salaz,