2012-01-09 18 views
23

Opracował internetowy streamer radiowy za pomocą jPlayera, który wykorzystuje znaczniki html5 z jQuery i flashuje się w przypadku nieobsługiwanych przeglądarek. Po przetestowaniu odtwarzacza na iPhonie (iOS 5.0.1) natrafiliśmy na bardzo osobliwy problem.iPhone HE-AAC przesyłany strumieniowo przez sieć komórkową (3G)

Gdy iPhone połączony WiFi, że strumienie całkowicie pomocą HE-AAC V2 strumień @ 64 kbps 44,1 (korzystny kodek produktów jabłoni). Jednak gdy iPhone jest podłączony do sieci komórkowej 3G, "zacina się" lub przestaje przesyłać strumieniowo przez 1-2 sekundy co 1-2 minuty (nie przerywa całkowicie przesyłania strumieniowego). Niepokojące jest to, że iPhone jest zmuszony do używania oddzielnego strumienia MP3 przy tej samej szybkości transmisji bitów, nie ma tego problemu i działa bardzo dobrze na 3G.

UPDATE 5

Niedawno nabył 3G/4G Sprint urządzenia mobile hotspot i przetestowane ten problem z urządzeniem. Gdy iPhone jest podłączony do mobilnego punktu aktywnego, pokazuje się, że jest podłączony do urządzenia Wi-Fi, a problem nie powoduje nawet, że rzeczywiste połączenie jest realizowane przez 3G/4G. Może to wskazywać na problem polegający na tym, że iPhone nie obsługuje HE-AAC przez HTTP Live Streaming i gdy jest bezpośrednio podłączony do sieci komórkowej.

UPDATE 4

Aktualizacja iPhone iOS 5.1 jeszcze problem nadal występuje.

UPDATE 3

Czytaj tutaj na SO różnych kwestii scenariusza nie świadczących poprawnie po podłączeniu do sieci komórkowych. Palec zdaje się wskazywać na mobilne nośniki sieciowe, które mogą wstawiać Proxy do obsługi stron internetowych, np. do zmniejszania obrazów. Może również wstrzyknąć niektóre strony JavaScript. Strona testowa można znaleźć HERE UWAGA: Ta strona używa HE-AAC tak to będzie działać tylko na iPhone ...

UPDATE

Według doc żywo HTTP Streaming Apple dla urządzeń z iOS, że " audio-tylko treść może być albo MPEG-2 lub MPEG transportu elementarne strumienie audio w formacie AAC albo z ADTS nagłówków lub w formacie MP3.” Nasz serwer muzyczny używa kodera OddcastV3 do wysyłania trzech strumieni (MP3, HE-AAC V2 i Oggvorbis) do serwera icecastV2. Nie wiem, czy enkoder wstawia nagłówki ADTS dla strumienia HE-AAC V2. Czy istnieje sposób, aby to sprawdzić?

+0

to twoja firma, ale moja rada dla ciebie polega na zdobyciu większej reputacji na SO i umożliwieniu rozpoczęcia nagrody za pierwsze pytanie. możesz zdobyć reputację odpowiadając na dowolne tematy, nie tylko związane z ios. –

+1

Odczyt z dokumentu HTTP Live Streaming na urządzenia z systemem iOS, że "Treści audio mogą być albo transportem MPEG-2, albo podstawowymi strumieniami audio MPEG, w formacie AAC z nagłówkami ADTS lub w formacie MP3." Nie wiem, czy strumień ma nagłówki ADTS. Nie jestem pewien, czy to jest problem ... – RMX

+0

Tutaj http://developer.apple.com/resources/http-streaming/ po prawej stronie znajdziesz narzędzie do sprawdzania strumienia. Po instalacji używa się go w następujący sposób: mediastreamvalidator validate --timeout = 60 http://ssite.com/track.mp3 Zobaczysz najważniejsze problemy w dzienniku. –

Odpowiedz

1

Comming z punktu widzenia planowania radiowego widzenia - oto moje dwa centy:

Co ty opisujesz brzmi jak kształtowania pasma - co jest zarówno powszechne i często neccesary projektowanie sieci radiowych (jak sieci 3G). W większości operatorów 3G Pracowałem przy byś zwykle zoptymalizować sieć dać szybki przypływ (zespoły pobierania obrazu, wysłanie wiadomości e-mail lub pobierania jednej strony HTML) - ponad usług szerokopasmowych wysoki „długotrwałych”. Wynika to z prostego faktu, że to, co większość użytkowników chce/potrzeby.

To kształtowanie w typowej sieci 3GPP (GSM 3G) powoduje, że najpierw otrzymasz RAB (nośnik dostępu radiowego) obsługujący 384 kbitów, a następnie zostanie on obniżony tak długo, jak długo twoje urządzenie to zaakceptuje. Oznacza to, że typicall dostaniesz przełączane z 384 -> 256 -> 128, następnie 64 kbit gdzie może urządzenie zacznie już otrzymywać dane powoli, potem modernizacje sieci IT i ponownie obniżyć go po chwili.

Dlaczego więc nie jest to plik MP3 naginający się? Domyślam się, że całkowita stawka Kbit może być różna - więc jesteś w porządku w 64-bitowym RAB-ie. To powszechne zjawisko.

+0

Mówisz, że "całkowity rozmiar może się różnić", jednak nie ma całkowitego rozmiaru, ponieważ jest to stacja radiowa do przesyłania strumieniowego i nie pobiera pliku o określonym rozmiarze, czy to MP3, czy HE-AAC. – RMX

+0

Przepraszam - chodzi mi o "łączną stawkę kbitów". Zaktualizowałem swoją odpowiedź. Czy wykonałeś podsłuch sieciowy (można to łatwo zrobić za pomocą intumentów w symulatorze)? – Magnus

+0

Nie zrobiłem szpiegowania sieciowego. Nawet nie wiem, co to jest! lol – RMX

0

Udało nam się uzyskać dokładnie to samo. 64kbit AAC-v2 na urządzeniach mobilnych. Przesyłamy strumieniowo pliki, a nie stały strumień, myślę, że Magnus ma rację, kiedy wyjaśnia, w jaki sposób sieć priorytetowo traktowała ruch do wybuchów, w naszym przypadku oznacza to, że mamy dużą część pliku od razu, a gracz może kontynuować grę do następnego pojawia się przerwa. W twoim przypadku oznacza to, że strumień zatrzymuje się do następnej serii.

Czy można przełączyć się na większe porcje w strumieniu (większy bufor) lub przesyłać strumieniowo całe pliki?

Mamy bardzo dziwne zjawisko z iOS, musieliśmy zmienić nazwy wszystkich plików z .m4a na .aac, aby móc je przesyłać strumieniowo na iOS. Gdybyśmy nie zmienili nazwy, iOS ich nie odtwarzał.

Powodzenia.

+0

Dzięki za twój wkład. Niestety, nie możemy przesyłać strumieniowo całych plików, ponieważ jest on zbudowany dla internetowej stacji radiowej, która stale strumieniuje 24 godziny na dobę. Nie jest to też aplikacja, zamiast tego przesyłamy strumieniowo za pomocą HTTP Live Streaming na iOS (bezpośrednio przez mobilną przeglądarkę Safari), dlatego nie możemy kontrolować buforowania. Nadal jestem bardzo zdezorientowany w kwestii całego radia. Czy fakt, że problem ten nadal występuje przy 128k AAC-V2 neguje wyjaśnienie radiowe? Również fakt, że MP3 działa dobrze przy 64kbps ... Każdy wgląd w zrozumienie tego może nam pomóc rozwiązać problem. Dzięki jeszcze raz – RMX

Powiązane problemy