2010-07-15 5 views
1

Пожалуйста, несите меня, поскольку мое понимание аудиокодека ограничено. У меня есть этот источник звука из IPCAM (через интерфейс htto // ... CGI). Я пытаюсь написать несколько клиентских программ для воспроизведения этого аудио источника на Windows, MAC, а также на Android-телефоне. Звук закодирован в G711 (PCM ulaw).Декодирование G711 (PCM u-law)

Нужно ли мне декодировать аудиоданные PCM на необработанные аудиоданные, прежде чем я смогу передать их в звуковой движок? Если да, есть ли пример кода для его декодирования? Я смущен как-то, я считаю, что PCM уже RAW. Могу ли я просто передать его прямо на звуковой движок на Android, например?

спасибо много заранее

ответ

5

Это зависит от того, что API используется для воспроизведения звука, но большинство из них требует линейного PCM и у вас есть μ-закон PCM, поэтому если ваш API не поддерживает μ-закон воспроизведения вы должны преобразуйте значения выборок μ-закона в линейные.

С G.711 сжатые образцы μ-закона составляют 8 бит, и они будут преобразованы в 14-битные линейные значения, которые вы будете хранить в буфере как 2 байта на образец. Существует краткое описание кодирования μ-закона на G.711 Wikipedia page.

+0

вы доступны для чата на секунду? возможно, чат-чат ios? –

+0

@owen: Я взглянул на ваш вопрос в чат-комнате iOS, но я не эксперт по iOS и не могу реально помочь с iOS-специфическим воспроизведением μ-закона - извините –

+0

ну, мне было любопытно, что вы подумали о ключе AVLinearPCMBitDepthKey. потому что это единственное отличие в моих настройках звука (тот, который работает против другого, который этого не делает). Считаете ли вы, что это необходимо или имеет значение для ulaw? Если вы не знаете, что я понимаю, просто подумал, что вы могли бы понять часть аудиоформата. спасибо за ваше время, хотя –

Смежные вопросы