2011-01-04 14 views
6

Piszę aplikację do przesyłania strumieniowego MP3 (CBR). To wszystko jest passthru, co oznacza, że ​​nie muszę dekodować/kodować, po prostu muszę przekazać dane, jak widzę, przez to przejść. Chcę móc policzyć ramki MP3 podczas ich przesyłania (i inne rzeczy, takie jak obliczenia przepustowości).Jak analizować dane MP3, aby wyodrębnić ponumerowane ramki?

Według MP3 frame header specyfikacji, synchronizacja słowo wydaje się być jedenaście (11) bitów 1s, jednak zauważam (naturalnie), że ładunek rama, która powinna bezpiecznie założyć, aby być binarny, a zatem nie jest dziwne w ogóle, aby zobaczyć jedenaście (11) 1s w sekwencji.

Moje pytania:

  1. istnieje Unix | Linux | Perl MP3 parser narzędzie (dd -Style), które mogą ciągnąć numerowanych ramek z pliku MP3/rury?
  2. Jak wytyczyć blok nagłówka MP3 z innych danych binarnych? i na koniec:
  3. Czy MP3 w stałej bitrate (CBR) jest zdefiniowany przez bajty ładunku lub czy bajty nagłówka znajdują się w sumie # bajtów/bitów na dowolny określony czas?

Dzięki

+0

dd-style? Masz na myśli coś, co jest mylące w użyciu, działa w niezręcznych jednostkach, a nie w bajtach, a przy użyciu fragmentów bajtów * po wszystkim *, staje się naturalnie powolne ... (Myślę, że w przyszłości będziesz potrzebować 'dd_rescue' do kopiowania danych.) – user562374

+0

No cóż, styl dd oznacza, że ​​mógłbym wymienić/numerować ramkę do ekstrakcji do rury i | plik lub mogę określić zakresy ramek w taki sposób, że dd pomija | seek | count. dd ma wątpliwości co do własnych problemów, ale czy poszukuje wsparcia dd_rescue? – Xailor

+0

Jakiego języka używasz? – Brad

Odpowiedz

4

Wezmę ukłucie na # 2.

To jest moje zrozumienie, że wspólna droga do synchronizacji do strumienia MP3 (a tym samym pozwalają na swojej liczenia ramek) jest, aby to zrobić:

  • Szukaj słowa synchronizacji
  • Przy synchronizacji słowo zostanie znalezione, sprawdź poprawność reszty nagłówka
  • Jeśli nagłówek ramki jest prawidłowy, powinieneś znać położenie następnego nagłówka
  • Jeśli trafisz 3 lub 4 nagłówki z rzędu i są one poprawne, to szanse są bardzo wysokie, że je znalazłeś.

Ostatnio zobaczyłem stronę z dokumentacją, ale nie mogę jej znaleźć w tej chwili. Jeśli znajdę to jeszcze raz, opublikuję to.

+0

Mówiło się o tym już jakiś czas temu, jeśli chodzi o bitco-mądre wyrazy Erlanga, ale dopasowanie bitowych dopasowań do wzorców nagłówka MP3 nie jest banalne. Wszelkie odniesienia byłyby wspaniałe :) – Xailor

+0

Postanowiłem nie zagotować oceanu i zachować wszystkie pliki strict-CBR i trzymać się 'dd'. 'bs = $ [144 * $ bitrate/$ samplerate]' wydaje się działać charms. – Xailor

Powiązane problemy