Jak uzyskać najlepszą jakość dźwięku za pomocą youtube-dl?

16

Używam youtube-dlw systemie Linux do pobierania filmów z YouTube i wyodrębniania audio. To mój sposób na zbudowanie małej kolekcji muzycznej.

W każdym razie wiem, że istnieje opcja, --audio-quality=gdzie 0 jest najlepsze, a 9 najgorsze. Czy to wszystko, co muszę zrobić, aby uzyskać najlepszą jakość dźwięku?

Ponadto, czy ktoś wie, czy pobieranie z SoundCloud może uzyskać wyższą jakość?

użytkownik365967
źródło

Odpowiedzi:

21

--audio-qualityNie ma wpływu na jakość dźwięku źródła. Jest to opcja przetwarzania końcowego i ponownie koduje dźwięk.

Ponieważ jakiekolwiek (stratne) ponowne kodowanie faktycznie pogorszy jakość strumienia - lub przynajmniej zwiększy jego niepotrzebnie większy rozmiar - odradzam w ogóle przetwarzanie końcowe dźwięku.

Aby uzyskać najlepszą możliwą jakość dźwięku, wystarczy wybrać format źródłowy wysokiej jakości. W rzeczywistości youtube-dlzrobi to domyślnie, ale możesz to jawnie ustawić za pomocą --audio-format best. YouTube (i inni dostawcy) przechowują różne kodeki audio o różnych przepływnościach i youtube-dlwybiorą najlepszy z nich.

Jeśli masz ffmpegzainstalowany w swoim systemie, youtube-dlmożesz automatycznie wyodrębnić audio:

youtube-dl --audio-format best -x <url>

W przeciwnym razie otrzymasz plik wideo, z którego musisz wyodrębnić komponent audio.

slhck
źródło
Jeśli ffmpegnie ponownie koduje, to dlaczego wybieram format audio? Jeśli wprowadzę ten wiersz, ale aaczamiast niego, nie otrzymam tego samego pliku, ale z innym rozszerzeniem. Otrzymuję inny plik o nieco innym rozmiarze i szybkości transmisji.
Blrp,
1
Ok, ale to tak naprawdę nie odpowiada na moje pytanie. Pytam konkretnie o konwersję wideo na audio. Jeśli istnieje polecenie, które pobiera dźwięk z MP4 i zapisuje go jako plik audio bez ponownego kodowania, powinien być tylko jeden możliwy wynik, prawda? A jednak polecenie ffmpeg w twoim poście daje inny wynik w zależności od rozszerzenia, które wybrałem dla dźwięku. Czy zawsze jest jedno prawidłowe rozszerzenie audio, w zależności od rozszerzenia wideo, dla którego otrzymuję dźwięk bez ponownego kodowania? Lub jak inaczej to zrobić?
Blrp
1
Teraz widzę. Najpierw wyjaśniłem moją odpowiedź - była nieco bardziej złożona niż potrzebna. Być może ta odpowiedź jest interesująca do przeczytania. Nawet jeśli strumień bitów kodeka audio nie zostanie zmieniony (tzn. Skopiowany), rozszerzenie określa sposób, w jaki jest zawijany w formacie. Nie ma tutaj mapowania 1: 1. Niektóre formaty wymagają więcej miejsca niż inne. Możesz użyć ffmpeg -i in.mp4 -c:a copy -vn out.m4ai skończyć z innym plikiem niż ffmpeg -i in.mp4 -c:a copy -vn out.mkv, chociaż oba zawierają dokładnie te same dane audio (a zatem mają tę samą jakość dźwięku).
slhck
1
Jestem pewien, że to nie koduje ponownie. Nie ma takiej możliwości. Powodem, dla którego otrzymujesz te same bitrate, jest to, że YouTube ma bardzo ograniczoną różnorodność bitrate'ów / kodeków, których używają, w przeciwieństwie do reprezentacji wideo. Może YouTube jest nieco nieobliczalny, gdy przypisuje bitrate wideo i audio, i możesz zobaczyć wyższą bitrate audio dla niższej jakości wideo - w takim przypadku myślę, że youtube-dlnadal wybiera format wideo najwyższej jakości. Czy masz konkretny przykład wideo?
slhck,
1
Wydaje mi się w porządku. Na przykład w drugim, gdy użyjesz -xjako opcji, pobierze wariant tylko audio z najwyższą przepływnością (256k, kod formatu 141, sprawdź za pomocą youtube-dl -F <url>). Wszystkie inne komponenty audio innych reprezentacji audiowizualnych mają niższe prędkości transmisji.
slhck,
5

Pozostań przy rodzimych formatach muzycznych YouTube, aby uniknąć ponownego kodowania:

youtube-dl -f bestaudio[ext=m4a] --embed-thumbnail --add-metadata <Video-URL>

w wyniku czego powstaje m4aplik lub

youtube-dl -f bestaudio --extract-audio --embed-thumbnail --add-metadata <Video-URL>

Ten ostatni może również zapisywać w oggpliku, jeśli formatem najwyższej jakości audio jest OPUS, a nie AAC.

Możesz wymienić dostępny format za pomocą

youtube-dl -F <Video-URL>
Frank Breitling
źródło
Jaka jest różnica między bestaudio[ext=m4a]i --extract-audio? Dlaczego ten drugi prawdopodobnie miałby skutkować pierwszym, oggale nie pierwszym?
Hashim,
[ext=m4a]ogranicza wybór do dostępnych formatów m4a i bez zapisywania --extract-audiogo w tym samym formacie kontenera m4a. Z --extract-audiodanymi audio są wydobywane i przechowywane w kontenerze OGG.
Frank Breitling,
Przepraszam, że jest już za późno, ale to tak naprawdę nie tłumaczy, dlaczego ten ostatni spowodowałby .oggkonkretny plik. Dlaczego .ogg, gdy .oggnie został określony?
Hashim
Rozumiem, że najlepsza dostępna jakość dźwięku jest w formacie OPUS, a nie AAC, a następnie jest zapisywana w kontenerze ogg. Zaktualizowałem odpowiednio swoją odpowiedź.
Frank Breitling
2

Użyj polecenia:

youtube-dl -f bestaudio "url"
użytkownik598527
źródło