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ść?

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.


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>

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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.