Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Enkodowanie do AAC CBR (nie w kontenerze MP4) pod streaming

store10 12 Jan 2010 02:41 2316 6
  • #1
    store10
    Level 16  
    Walczę już chwilę z pewnym problemem.
    Otóż potrzebuje skompresować dźwięk w taki sposób, aby po umieszczeniu go na serwerze, można go było łatwo odtwarzać on-line, przez http.
    Z MP3 nie mam tego problemu, ale MP3 nie wchodzi w gre, gdyż zależy mnie również na stosunkowo niskim bitrate przy nienagannej jakości, a AAC "goni" MP3 mniej więcej dwukrotnie.
    Z moich obserwacji: z kontenerem MP4 programy sobie nie radzą i buforują cały plik, to nie tędy droga. Z "gołym" AAC radzi sobie winamp, zresztą podobnie jak z strumieniami stacji radiowych AAC, tylko mam problem z ustaleniem sztywnego BR. Winamp źle odczytuje bitrate, zawyża go z niewyjaśnionych przyczyn i często pokazuje jako VBR i przez to źle wylicza czas dźwięku na podstawie jego rozmiaru w MB i jego mylnie odczytywanym bitrate, w efekcie nie można skutecznie przeskakiwać po pliku, przykładowo, tak aby odrazu odsłuchiwać od 30 minuty bez buforowania początku dźwięku.

    Na stan obecny enkoduje enkoderem Nero:
    Nero AAC Encoder
    Copyright 2009 Nero AG
    All Rights Reserved Worldwide



    Package build date: Dec 29 2009
    Package version: 1.5.3.0

    a wyłuskuje z kontenera MP4 dBpoweramp Music Converter'em

    Jednak nie jest to w pełni satysfakcjonujące.

    Jak można rozwiąć ten problem?
    Czy istnieje enkoder generujący AAC z "prawdziwym" CBR?
    Może problem leży gdzieś w protokole http?
  • #2
    Andrzej414
    Level 12  
    Ja bym wybróbował na twoim miejscu MediaCoder. Darmowy a mimo wszystko baaaardzo dużo opcji generalnie enkkoduje znakomicie. Ja wielokrotnie enkodowałem mp3 do aac i żadnych problemów nie było. Jakość dźwięku w 32kbps była przyzwoita.
  • #3
    store10
    Level 16  
    Rozwiązanie mojego problemu było nadzwyczajnie blisko.

    Zainstalowałem najnowszą wersje winampa 5.571 (x86) Dec 21 2009 (prawdopodobnie najnowsza nie jest konieczna) i skorzystałem z Format Converter, tam z aacPlus (HE-AAC) Encoder v1.3. Ten enkoder generuje perfekcyjny CBR. LC encoder też tak samo.

    Andrzej jakość swoją drogą, szukałem enkodera perfekcyjnego CBR, jeśli możesz sprawdź czy program, o którym mówisz potrafi tak enkodować. W winampie|View File Info (Alt+3) przy bitrate: podaje albo VBR, albo konkretny bitrate po tym można się zorientować co to jest. Jeśli nie masz możliwości sprawdzenia, zamieść próbkę dźwięku aac np w bitrate 64kbps w załączniku na forum (maks 1MB), sprawdzę u siebie.

    Próbki enkodowane w winampie:
    http://store10.kgb.pl/1he.aac
    http://store10.kgb.pl/1lc.aac

    W załączniku te same pliki.
  • Helpful post
    #4
    Andrzej414
    Level 12  
    Zrobiłem 3 próbki.
    Tutaj link size: 640kb http://www.megaupload.com/?d=GL3KS5GK
    Brak hasła.

    Niektórych testów na innych koderach (np. Nero) nie przeprowadzałem bo nie mam kodeków na kompie a bez konieczności nie będe ich pobierał.
  • #5
    store10
    Level 16  
    Wszystkie te pliki tj. test1.aac, test2.aac i test13.aac są VBR. Także niestety są obarczone tymi problemami które opisałem w pierwszy poście.

    Zamieszczam w załączniku próbki kolegi (z meagauploadem różnie bywa, a i regulamin wymaga stosowania załączników na forum) i printscreeny View File Info (Alt+3) z Winampa wszystkich plików łącznie z 1he.aac i 1lc.aac.

    Dla mnie temat jest właściwie zakończony, ale nie zamykam, może ktoś zaprezentuje alternatywne rozwiązanie problemu. Głównie chodzi o poszukiwania enkodera perfect CBR, możliwe że enkodery LD (low delay) też potrafią taki CBR generować, nie szukałem takich, nie próbowałem.

    I found this very informative post over at Hydrogenaudio.org. All credits go to Ivan Dimkovic, Ahead MPEG4 developer:

    "AAC is always variable bit rate with following rules:

    1. Maximum number of bits per one frame is in range from 0 to 6144, multiplied by the number of channels

    2. If encoder uses bit reservoir of exactly specified and defined size (by formulae in the standard), approx 10000 bits for 128 kbps, 44.1 kHz, Stereo - in that case, encoded stream is CBR and it follows the ISO 13818-7/14496-3 buffer guidelines.

    3. If encoder uses bit reservoir of 0 bits (no bit reservoir), in that case files are perfect CBR and this is used only in LD (Low Delay) AAC to minimize pre-buffering delay when decoding of streamed content. Not recommended in any way except for the said application (two-way low delay communication)..

    4. If encoder uses much bigger bit reservoir than one defined by the standard in that case it is ABR

    5. If encoder does not care about bit reservoir and encodes only according to the psychoacoustic rules it is VBR

    Usual methods are 2 and 5 and in some cases 4"

    So, I still want "true" VBR (no 5) capabilities in iTunes. :->


    Ze strony: http://forums.ilounge.com/archive/index.php/t-11550.html
  • #7
    store10
    Level 16  
    test4.m4a, test4.aac - VBR(64)

    Enkodowanie do AAC CBR (nie w kontenerze MP4) pod streaming

    Wyodrębniono z kontenera m4a tym (podobnie można z mp4):
    http://www.dbpoweramp.com/codec-central-m4a.htm
    http://codecs.dbpoweramp.com/codecs-new/dBpoweramp-Codec-aac-encoder.exe

    Code:
    mp4creator.exe -extract=1 e:\test4.m4a e:\test4_.aac

    Code:
    mp4creator.exe -version
    
    mp4creator.exe - mpeg4ip version 1.4.15

    Code:
    MD5 b0d4157f515bb94b6ad0df01093e9628 mp4creator.exe
    
    MD5 31fa9a0462367067c1b88a9fbda7396b dbpoweramp-codec-aac-encoder.exe


    Zamieszczam test4_.aac