VBR: czy rzeczywiście jest tak źle, jak mówią?

ostatnio napisałem długi post o ustawieniach kodowania MP3 Top stu podcastów na wykresach iTunes. Jedna z moich sugestii była bardzo kontrowersyjna: Ludzie na Reddicie nie zgadzali się, czy można używać kodowania VBR w podcastach.

byłem zaskoczony gwałtownością, z jaką ludzie nalegali, że VBR jest zły. „To nie powinno być używane!””Trzymaj się z dala od VBR.”Nie brakowało ludzi sugerujących unikanie VBR, ale niewiele na drodze do treści tych twierdzeń.

postanowiłem zebrać wszystkie argumenty przeciwko VBR, które mogłem znaleźć, i zbadałem każdy, aby ustalić, czy można było zweryfikować roszczenia stojące za każdym z nich.

najpierw jednak jakieś tło.

aby oszczędzić Ci kliknięcia, podam trochę szybkiego tła. W MP3 masz bitrate. Szybkość transmisji to liczba bitów potrzebnych do przechowywania jednej sekundy dźwięku. Plik MP3 o szybkości 128 kb / s zajmuje 128 kilobitów, aby zapisać jedną sekundę dźwięku. Jeśli Masz plik MP3 o szybkości 128 kb / s, który trwa dziesięć sekund, Przechowywanie pliku zajmie 1280 kilobitów. Proste.

tak działa CBR, czyli Constant BitRate. Cały plik ma jedną bitrate. Minusem jest to, że nie wszystkie audio są sobie równe. Niektóre audio wymagają mniej bitów do przechowywania (powiedzmy, chwila ciszy). Niektóre audio wymagają więcej. Posiadanie jednej szybkości transmisji oznacza, że potencjalnie marnujesz bity przechowujące wierność dźwięku, której nie potrzebujesz. Tutaj pojawia się VBR, czyli zmienna szybkość transmisji.

VBR pozwala na zakodowanie fragmentów pliku z różnymi przepływnościami. Ta sekunda bliskiej ciszy może spaść do 40 Kb / s, podczas gdy sekunda muzyki może skoczyć do 160 kb / s. Prawidłowo wykonane, może to przynieść bardzo znaczne oszczędności w wielkości.

jakie są argumenty przeciwko VBR?

zamiast owijać w bawełnę, wskakujmy i spójrzmy na argumenty przeciwko VBR i przetestujmy poprawność każdego z nich.

przerwy VBR szuka w wielu aplikacjach.

to prawda, a konkretnie to w moim poście:

dzięki plikowi CBR przeskakiwanie do przodu lub do tyłu jest łatwe, ponieważ możesz dokładnie obliczyć, gdzie przejść. W przypadku VBR przeskoczenie 10 sekund do przodu może oznaczać przeskoczenie do 1280 kilobitów — ale może to być zbyt wiele, jeśli jakość zostanie obniżona w ciągu tych dziesięciu sekund.

zasadniczo nie możesz wiedzieć, gdzie przejść do pliku, aby rozpocząć odtwarzanie w określonym kodzie czasowym, ponieważ zamiast być prostym mnożeniem, musisz znać przepływność całego dźwięku prowadzącego do tego kodu czasowego.

można tego uniknąć. Dawno, dawno temu ludzie stworzyli szereg standardów, które pozwalają na osadzenie metadanych w MP3, pozwalając dekoderom dowiedzieć się, gdzie szukać. Mógłbym napisać o tym więcej, ale to kwestia sporna, ponieważ praktycznie nikt nie implementuje standardu.

warto zauważyć, że ilość, o jaką wyłączony jest kod czasowy, rośnie wraz z postępem w pliku. Na początku pliku audio jest mało prawdopodobne, aby jakość w ogóle spadła, a różnica może wynosić tylko kilka milisekund. Po kilku minutach, jednak, że wzrośnie do sekund. Po godzinie może wzrosnąć do minuty lub więcej.

niektóre podcasty są bardzo krótkie. Rozważ Pałac pamięci, który zazwyczaj ma odcinki krótsze niż 15 minut. Byłbym bardziej niż zaskoczony słysząc, że szukanie w zakodowanym VBR odcinku T. M. P. zostało wyłączone o więcej niż kilka garści sekund przed końcem pliku. (Mierzyłbym to, ale nie można tego zrobić poprawnie bez dostępu do surowego źródła dźwięku)

Inne podcasty tak naprawdę nie wymagają solidnej funkcji wyszukiwania. Podcasty ASMR, podcasty z małym dialogiem lub bez dialogu w ogóle i podcasty z bezmyślnym jabberem, jak gospodarze, powiedzmy, grają w gry wideo, nie potrzebują możliwości dokładnego poszukiwania określonego kodu czasowego. Jest to kompromis, że niezerowa liczba podcastów jest skłonna zrobić.

szukanie względne jest również w dużej mierze nienaruszone przez kodowanie VBR. Podcast mój brat mój brat i ja używamy kodowania VBR i możliwe jest przeskoczenie do przodu o trzydzieści sekund i z powrotem o dziesięć sekund z bardzo dobrą dokładnością. Jest ku temu dobry powód.: podobnie jak szukanie od początku pliku, jest mało prawdopodobne, że jakość spadnie o wiele podczas małego kawałka czasu, o którym pomijasz. Przeskoczenie do przodu o trzydzieści sekund może oznaczać przeskoczenie do przodu o, powiedzmy, trzydzieści jeden sekund. Ilość niedokładności zależy od ilości dźwięku, który pomijasz, co przy względnym poszukiwaniu jest zwykle dość małe.

VBR w rzeczywistości nie zmniejsza plików.

to w połowie prawda. VBR będzie produkować pliki o prawie takim samym rozmiarze jak CBR, jeśli średnia szybkość transmisji pliku VBR jest taka sama jak stała szybkość transmisji pliku CBR. VBR będzie również produkować pliki o rozmiarze równym plikowi CBR, jeśli nigdy nie zmieni bitrate (tj. koder nigdy nie zdecyduje się obniżyć jakości, na przykład z losowym szumem).

wyłączając przypadek, w którym plik zawiera tylko losowy szum (dlaczego w ogóle publikujesz to w swoim podcaście?) różnica w rozmiarze ma oczywiste zastrzeżenie, że plik VBR będzie miał taką samą lub większą jakość dźwięku ogólnie niż plik CBR.

: masz 10 sekundowe akta. Pierwsza połowa to niemal cisza, a druga to muzyka high-fidelity. Jeśli zakodujemy to jako CBR przy 128kbps, będzie to 1280kb. Jeśli zakodujemy go jako VBR, a koder hipotetycznie zakoduje pierwszą połowę z prędkością 64 kb / s, a drugą połowę z prędkością 192 kb / s, Rozmiar pliku nadal będzie wynosił 1280 kb / s, a średnia szybkość transmisji nadal wynosi 128 kb / s. Porównując jednak jakość, okaże się, że plik VBR brzmi znacznie lepiej, ponieważ cisza używa tylko bitów, których potrzebuje, a więcej bitów poświęcono muzyce.

dostrajając ustawienia kodera, możesz skutecznie obniżyć średnią szybkość transmisji pliku zakodowanego VBR, tak aby jakość z grubsza pasowała do równoważnego pliku zakodowanego CBR. Teoretycznie doprowadzi to do ogólnego zmniejszenia rozmiaru pliku. Jeśli jednak wybierzesz ustawienia VBR, nie wiedząc, co robisz,możesz łatwo negować wszelkie korzyści związane z rozmiarem pliku, które można odnieść z używania VBR.

pliki VBR nie pokazują prawidłowego czasu trwania.

domyślnie nie, czas trwania pliku VBR będzie obliczany na podstawie jego długości bajtów, co skutkuje zawyżeniem (z tego samego powodu, że wyszukiwanie nie działa). Można to jednak łatwo naprawić: po prostu określenie czasu trwania dźwięku w znacznikach ID3 za pomocą ramki TLEN spowoduje ustalenie czasu trwania. Niektóre Dekodery nie odczytują poprawnie ramki TLEN, ale są nieliczne i prawie nigdy nie są używane z aplikacjami i urządzeniami, z których ktoś może konsumować podcast.

Kodery takie jak Adobe Audition generują uszkodzone pliki zakodowane w VBR.

to jest coś, co znalazłem w Internecie w wielu miejscach, nawiązując do postu na forach Adobe. Bez czytania szczegółów łatwo jest utworzyć chmurę FUD wokół tego problemu. Okazuje się, że jest to bezpośrednio związane z ostatnim twierdzeniem o czasie trwania: Audition po prostu nie było (rzekomo) dodawaniem danych TLEN.

aktualizacja: chciałbym zauważyć, że nie udało mi się odtworzyć tego problemu w programie Adobe Audition. Być może problem istniał w poprzedniej wersji, ale wydaje się, że już tak nie jest. Zaktualizowałem tę sekcję, aby dokładniej stwierdzić, że nie wierzę, że wystąpił problem z programem Adobe Audition. Dzięki @ audiblychuck na Twitterze za kontakt.

argumentowałbym, że to odpowiedzialność podcastera, a nie problem dla słuchacza. Łatwo jest dodać tagi ID3, a Audition nie jest jedynym koniem w tym wyścigu. Za kulisami Audition wykorzystuje koder Fraunhofer MP3. Post na forach Adobe odnosi się również do Audition CS6, wydany w 2012; byłbym zaskoczony, gdyby nowsza wersja naprawiła problem.

nawet jeśli Adobe tego nie naprawił, wiele postów w Internecie poleca narzędzia (MP3val, MP3Diag itp.), które wykrywają i rozwiązują ten problem. Ffmpeg i LAME zarówno poprawnie dodać odpowiedni tag ID3, co oznacza, że większość innych programów do edycji dźwięku będzie działać poprawnie domyślnie.

prawie wszystkie nowoczesne Dekodery MP3 nie wymagają znacznika ID3 TLEN, aby określić prawidłowy czas trwania pliku MP3 VBR.

VBR nie działa na niektórych urządzeniach.

istnieją niepotwierdzone dowody na poparcie tego. Znalazłem wątek komentarzy HackerNews na temat obsługi urządzeń. Oto główny komentarz dyskusji, opowiadający o doświadczeniu sprzed ponad dekady:

jak się okazuje, nie każdy słucha za pomocą nowoczesnego urządzenia. Kiedy próbowaliśmy VBR, znaczna liczba osób nie mogła słuchać, ponieważ ich sprzęt/oprogramowanie odtwarzające MP3 nie obsługiwało poprawnie plików VBR. Nie zdawali sobie sprawy, że to jest problem. Po prostu skarżyli się, że plik został uszkodzony, podczas gdy działał dobrze dla wszystkich innych.

jeden z komentatorów miał problem z ich EigerMan F20:

mój ulubiony bug o tym był na odtwarzaczu MP3, który miałem (EigerMan F20), który obsługiwał VBR MP3… Nie obsługiwał dekodowania regionów o określonych przepływnościach, więc po cichu je pomijał, co prowadziło do skrajnego zamieszania z mojej strony.

EigerMan F20, na zdjęciu z mocnym 32MB pamięci flash

kolejny komentator miał więcej szczęścia ze swoją szafą grającą Nomad 3:

jestem prawie pewien, że mój Nomad Jukebox 3 obsługiwał vbrs dobrze, a to już 14 lat.

użytkownik hydrogenaudio miał pecha z odtwarzaczem DVD w 2006:

mój odtwarzacz DVD (Samsung HD-860) nie odtwarza plików mp3 vbr. Ma około 2 lat, a nawet jest wyposażony w wyjście HDMI.

kolejny komentator w tym samym wątku miał problemy z samochodem:

mój przyjaciel kupił nowy Pontiac G5 2008 (jest to w zasadzie Grand Am, ale od tego czasu przemianowali go na G5) i przyszedł z fabrycznie zainstalowaną płytą kompatybilną z mp3-CD. Urządzenie będzie odtwarzać pliki VBR dobrze, ale odkryliśmy, że wszystkie klatki w mp3 muszą być zakodowane w 128kbps lub wyższej.

Nie będę dalej kopiował i wklejał postów o samochodach i odtwarzaczach MP3 sprzed ponad dekady. Większość urządzeń, o których wspominają ludzie, nie byłaby nawet w stanie pomieścić pełnego odcinka podcastu z 2017 roku!

moje badania w pozostałej części sieci przyniosły podobne wyniki. Nie mogłem znaleźć ani jednego Raportu urządzenia wykonanego w ciągu ostatnich dziesięciu lat, które nie odtwarzało plików VBR, i to mnie nie dziwi. Niecytowane twierdzenie na Wikipedii:

od grudnia 2006 r. urządzenia obsługujące tylko pliki zakodowane CBR są w dużej mierze przestarzałe, ponieważ zdecydowana większość nowoczesnych przenośnych urządzeń muzycznych i oprogramowania obsługuje pliki zakodowane VBR.

bez żadnych dowodów na to, że jest inaczej, nie sądzę, aby kompatybilność urządzeń była uzasadnionym argumentem przeciwko VBR.

jeśli masz problemy ze zgodnością VBR z urządzeniem, chciałbym o tym usłyszeć. Skontaktuj się z nami!

Firefox nie obsługuje VBR.

to już nie jest prawda. Firefox obsługuje pliki VBR. Testowałem się zarówno na macOS, jak i Windows 10. Firefox używa dekodera audio platformy hosta do odtwarzania MP3, zamiast wiązania własnego dekodera MP3. W systemie Windows plik rzekomo przestaje odtwarzać w połowie strumienia ze względu na problemy z kodem czasowym omówione powyżej. Wydaje się, że tak już nie jest. Plik zagrał dobrze, bez obcięcia i bez problemów z wyszukiwaniem.

specjaliści mówią, aby nie używać VBR.

skierowano mnie do władz podcastu i innych specjalistów z branży, aby uzyskać porady, dlaczego unikać VBR. Interesowały mnie argumenty, które ci ludzie przedstawiali.

aktualizacja :w momencie pisania błąd w kodzie mojej analizy błędnie zidentyfikował 15 podcastów w iTunes top 100 podcastów jako używających VBR. W rzeczywistości tylko jeden używa kodowania VBR. Ten numer był cytowany w mojej korespondencji z Robem Walchem.

pierwszą osobą, z którą miałem się skontaktować, jest Rob Walch, który jest obecnym wiceprezesem ds. relacji z podcasterami w Libsyn. Wysłałem mu maila, a on odpowiedział linkiem do posta na blogu. Oto fragment tego posta:

VBR to stara technologia / hack, który został stworzony, aby zmniejszyć pliki muzyczne MP3 i był popularny w czasach świetności udostępniania plików. Dziś nie ma takiej potrzeby — dostępna przepustowość i pamięć masowa różnią się znacznie od 15 i 20 lat temu. Ale co ważniejsze, standardy ISO dla MP3 nie wymagają obsługi odtwarzaczy.

zgodnie ze standardem (ISO/IEC 11172-3: 1993) sekcja 2.4.2.3

„aby zapewnić jak najmniejsze opóźnienie i złożoność, dekoder nie jest wymagany do obsługi zmiennej przepływności w warstwie i lub II. warstwa III obsługuje zmienną przepływność poprzez przełączanie wskaźnika przepływności. Jednak w wolnym formacie wymagana jest stała szybkość transmisji.”

i

” dla warstwy II nie wszystkie kombinacje całkowitej przepływności i trybu są dozwolone.”

dlatego większość koderów warstwy II nie zostałaby napisana z myślą o VBR, a warstwa II VBR to hack. Działa w ograniczonych przypadkach. Doprowadzenie go do działania w takim samym stopniu, jak VBR w stylu MP3, będzie poważnym włamaniem.

w skrócie dzień VBR w świetle i masowym użyciu jest już za nami — w późnych latach 90-tych i przed podcastingiem.

wszystkie te argumenty są takie same, jak omówiliśmy powyżej, z kilkoma wyjątkami. Po pierwsze, Rob twierdzi, że przepustowość i pamięć masowa są tanie. To prawda, ale słuchanie podcastów również eksplodowało w ostatnich latach (nawet od jego stanowiska w 2014). W skali międzynarodowej, zwłaszcza na rynkach wschodzących, przepustowość jest kosztowna dla słuchacza, co może stanowić barierę dla zwiększenia słuchalności poza USA.

cytuje również specyfikację MPEG ISO, ale cytaty, które wydobywa, są błędnie interpretowane. MP3 oznacza „MPEG-2 Audio Layer 3”, więc cytat „Layer III obsługuje zmienną szybkość transmisji, przełączając indeks bitrate, „naprawdę oznacza” MP3 obsługuje zmienną szybkość transmisji.”Według mnie nie możesz być kompatybilny z MP3 i nie obsługiwać VBR (zgodnie ze specyfikacją). Drugi cytat o „Layer 2” odnosi się do MPEG-2 Audio Layer 2, który jest zupełnie innym kodekiem od MP3 i jest nieistotny dla dyskusji.

odpowiedziałem tymi komentarzami, pytając, czy ma dane, które pomogą uzasadnić te twierdzenia. Odpowiedź była trochę … słona.

Matt,

szczerze-tytuł artykułu powiedział wszystko-pierwsze i ostatnie słowo na VBR.

VBR nie żyje-każdy, kto się o to stara, walczy z wiatrakami.

CBR = dobry

VBR = zły

to naprawdę jest takie proste — nie próbuj robić z tego więcej — VBR nie jest w pełni wspierany przez graczy i standardy.

jeśli próbujesz naciskać na VBR-to w końcu spojrzysz wstecz na ten e-mail i żałujesz, że mnie nie posłuchałeś. 🙂

a następnie szybko

cześć Matt,

Jeśli myślałeś o użyciu VBR lub używasz VBR i po przeczytaniu mojego artykułu nie jesteś przekonany do zmiany-musisz naprawdę naprawdę to przeczytać:

http://theoatmeal.com/comics/believe

jest gorzka ironia w jego odpowiedzi, którą pozwolę ci znaleźć, czytając świetny Pasek Matthew Inmana o efekcie backfire. Nacisnąłem go ponownie, aby podać szczegóły i otrzymałem kolejną chłodną odpowiedź:

powodzenia w poszukiwaniach.

uważam VBR za martwy problem i zwijam oczy, gdy się pojawi. Co jest powodem postu, który zrobiłem.

wydaje się, że co kilka lat podnosi swoją brzydką głowę.

Nie wiem co 15% widziałeś-ostatnio jak sprawdzałem top pokazuje to 0%

http://podcast411.libsyn.com/will-increasing-your-bit-rate-equal-more-listeners

zobacz ten post.

w tym momencie – to moja ostatnia odpowiedź na VBR.

zbyt wiele do zrobienia, aby marnować czas na to-post, który zrobiłem, daje Ci wszystkie potrzebne informacje, jeśli spojrzysz na to obiektywnie.

naprawdę polecam przejść do CBR i nie będziesz miał żadnych problemów.

połączony post powtarza tylko mantrę Roba: „VBR = bad.”Nie wskazując obiektywnych faktów na poparcie jego twierdzeń, nie mogę powiedzieć, że opinie Roba w tej sprawie trzymają się zbyt wiele wody.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.