Потоковая передача iPhone HE-AAC через мобильную сеть (3G) - PullRequest
23 голосов
/ 09 января 2012

Разработан стример интернет-радио с использованием jPlayer, который использует аудиотэги html5 с jQuery и имеет откат для неподдерживаемых браузеров.После тестирования плеера на iPhone (iOS 5.0.1) мы столкнулись с очень специфической проблемой.

Когда iPhone подключен к WiFi, он отлично воспроизводится с использованием потока HE-AAC V2 при 64 кбит / с 44,1 кГц(предпочтительный кодек для яблочных продуктов).Однако, когда iPhone подключен к мобильной сети 3G, он «заикается» или прекращает потоковую передачу на 1-2 секунды каждые 1-2 минуты (не прекращает потоковую передачу полностью).Беспокойство вызывает то, что когда iPhone вынужден использовать отдельный поток MP3 с той же скоростью передачи данных, у него нет этой проблемы, и он очень хорошо работает в 3G.

ОБНОВЛЕНИЕ 5

Недавно мы приобрели мобильную точку доступа 3G / 4G Sprint и проверили эту проблему на устройстве.Когда iPhone подключен к мобильной точке доступа, он отображается как подключенный к устройству Wi-Fi, и проблема не отображается даже при фактическом подключении через 3G / 4G.Это может указывать на проблему с iPhone, который не обрабатывает HE-AAC через HTTP Live Streaming и когда он напрямую подключен к мобильной сети.

ОБНОВЛЕНИЕ 4

Обновлен iPhone до iOS 5.1, но проблема не устранена.

ОБНОВЛЕНИЕ 3

Читайте здесь, на ТАКИХ различных проблемах, когда скрипт некорректно отображается при подключении к мобильным сетям.Судя по всему, палец указывает на операторов мобильной сети, которые могут вставлять прокси для обслуживания веб-страниц, например, для уменьшения размера изображений.Также это может добавить некоторые страницы JavaScript.Тестовую страницу можно найти ЗДЕСЬ Примечание: эта страница использует HE-AAC, поэтому она будет работать только на iPhone ...

ОБНОВЛЕНИЕ

Согласно документу Apple HTTP Live Streaming doc для устройств iOS, «контент только для аудио может быть транспортным MPEG-2 или элементарными аудиопотоками MPEG, либо в формате AAC с заголовками ADTS, либо в формате MP3».Наш музыкальный сервер использует кодировщик OddcastV3 для отправки трех потоков (MP3, HE-AAC V2 и Oggvorbis) на сервер icecastV2.Не уверен, что кодировщик вставляет заголовки ADTS для потока HE-AAC V2.Есть ли способ проверить это?

Ответы [ 2 ]

1 голос
/ 01 июля 2012

Исходя из точки зрения радиопланирования - вот мои два цента:

То, что вы описываете звуки, такие как формирование полосы пропускания - что является одновременно распространенным и часто необходимым дизайном радиосетей (например, сетей 3G),В большинстве операторов 3G, над которыми я работал, вы обычно оптимизировали свою сеть, чтобы обеспечить высокоскоростной пакет (например, загрузку изображения, отправку одного электронного письма или загрузку одной HTML-страницы) - через «длительные» службы с высокой пропускной способностью.Это связано с тем простым фактом, что это то, что большинство пользователей хотят / нуждаются.

Такое формирование может в типичной сети 3GPP (GSM 3G) привести к тому, что вы сначала получите RAB (однонаправленный радиоканал), поддерживающий384kbit, а затем понижается до тех пор, пока ваше устройство принимает его.Это означает, что обычно вас переключают с 384 -> 256 -> 128, затем на 64 кбит, где, возможно, ваше устройство начинает медленно получать данные, затем сеть обновляет их и через некоторое время снова понижает их.

Так почемуне заикается ли тогда файл MP3?я предполагаю, что общая скорость передачи в кбит может отличаться - так что у вас все в порядке в 64 Кбит RAB.Это обычное явление.

0 голосов
/ 15 июля 2012

Нам удалось заставить работать точно такую ​​же вещь.64 Кбит AAC-v2 на мобильных устройствах.Мы транслируем файлы, а не устойчивый поток, я думаю, что Магнус прав, когда он объясняет, как сетевой приоритет отдает трафику пакетам, в нашем случае это означает, что у нас есть большие части файла сразу, и проигрыватель может продолжать воспроизводиться до следующегоприходит пакет. В вашем случае это означает, что поток приостанавливается до следующего пакета.

Либо если вы можете переключиться на более крупные чанки в потоковом (больший буфер) или вместо потоковых целых файлов?

У нас было очень странное явление с iOS, нам пришлось переименовать все файлы из .m4a в .aac, чтобы иметь возможность транслировать их на iOS.Если мы не переименуем их, iOS не будет их воспроизводить.

Удачи.

...