我在iPhone中使用ffmpeg,從mms服務器讀取wma流,但我想使用ffmpeg中的ALAC編碼器將流保存到m4a文件,問題是試圖保存原始流,使用avcodec_decode_audio2處理的流,該文件甚至不能用wma格式識別,顯然,沒有播放,因此在將流轉換爲m4a(使用avcodec_encode_audio)之前,我想確保流是正在處理和保存正確。任何人都有經歷這種事情?謝謝在iPhone中使用FFMPEG音頻轉換
P.S.我正在使用CFWriteStreamWrite寫入字節緩衝區,並且一切似乎都正常。
我的代碼:
while (av_read_frame(mms_IOCtx, &_packet) >= 0) {
if (_packet.stream_index == audioStreamIdx) {
uint8_t *_packetData = _packet.data;
int _packetSize = _packet.size;
// Align output buffer
uint8_t audio_buf[(AVCODEC_MAX_AUDIO_FRAME_SIZE * 3)/2 + 16];
int16_t *aligned_buffer;
size_t buffer_size;
int audio_size, len;
buffer_size = sizeof(audio_buf);
aligned_buffer = align16(audio_buf, &buffer_size);
while (currentState != STATE_CLOSED && (_packetSize > 0)) {
audio_size = buffer_size;
len = avcodec_decode_audio2(mms_CodecCtx, aligned_buffer, &audio_size, _packetData, _packetSize);
// call to the method that write the bytes ....
}
}
}
你好。你能玩WMA流媒體電臺嗎?請告訴我。 – AppAspect 2011-07-13 06:58:39
我可以幫你。 – AppAspect 2011-07-13 06:58:48
爲什麼在解碼後使用CFWriteStreamWrite? – manutd 2011-08-10 15:25:43