如何将音频编码为 u-law g.711?然后通过 http 将该音频发送到远程服务器。
音频流:向当前查看的摄像机发送连续的音频流。音频需要以 64 kbit/s 的 G711 mu-law 编码,以便传输到床边的 Axis 摄像机。发送(这应该是 SSL 中的 POST URL 到连接的服务器):POST /transmitaudio?id= Content-type: audio/basic Content-Length: 99999(长度被忽略)
我在谷歌和这里搜索过,但我发现的主要是从服务器流式传输到 I 设备的方法,而不是相反。我确实找到了这个帖子(http://stackoverflow.com/questions/7750329/how-to-send-audio-file-through-http-post-to-a-server-from-ios)但是它似乎喜欢答案描述性不强,也没有被接受。
这是我到目前为止所拥有的。
{
NSNumber *formatObject;
switch (self.recordEncoding) {
case (ENC_AAC):
formatObject = [NSNumber numberWithInt: kAudioFormatMPEG4AAC];
break;
case (ENC_ALAC):
formatObject = [NSNumber numberWithInt: kAudioFormatAppleLossless];
break;
case (ENC_IMA4):
formatObject = [NSNumber numberWithInt: kAudioFormatAppleIMA4];
break;
case (ENC_ILBC):
formatObject = [NSNumber numberWithInt: kAudioFormatiLBC];
break;
case (ENC_ULAW):
formatObject = [NSNumber numberWithInt: kAudioFormatULaw];
break;
default:
formatObject = [NSNumber numberWithInt: kAudioFormatAppleIMA4];
}
[recordSettings setObject:formatObject forKey: AVFormatIDKey];
[recordSettings setObject:[NSNumber numberWithFloat:44100.0] forKey: AVSampleRateKey];
[recordSettings setObject:[NSNumber numberWithInt:2] forKey:AVNumberOfChannelsKey];
[recordSettings setObject:[NSNumber numberWithInt:12800] forKey:AVEncoderBitRateKey];
[recordSettings setObject:[NSNumber numberWithInt:16] forKey:AVLinearPCMBitDepthKey];
[recordSettings setObject:[NSNumber numberWithInt: AVAudioQualityHigh] forKey: AVEncoderAudioQualityKey];
}
这似乎是 U-law(因此是编码的名称),但是我对音频编解码器一无所知,也不知道 G711 mu-law 在 ios 上是否可行。
如何让我的音频以正确的格式编码?
那么如何将编码后的音频发送到服务器呢? 现在我把它放到一个临时文件位置,但即使我改变了,我也看不出这有什么帮助。我知道这有很多要求,我不希望得到答案,但我需要一个开始的地方,因为目前我对如何做到这一点相当迷茫。