我按照以下方式创建音频队列
AudioQueueNewOutput(&audioFormat, audioQueueOutputCallback, (__bridge void*)self, NULL, NULL, 0, &mAudioQueue)
格式如下
audioFormat.mFormatID = kAudioFormatAC3;
audioFormat.mBytesPerPacket = 0;
audioFormat.mFramesPerPacket = mavfContext->streams[audio_index]->codec->frame_size;
audioFormat.mBytesPerFrame = 0;
audioFormat.mChannelsPerFrame = mavfContext->streams[audio_index]->codec->channels;
audioFormat.mBitsPerChannel = 0;
使用kAudioFormatUnsupportedDataFormatError创建失败。
我检查过mavfContext->streams[audio_index]->codec->frame_size
是0。
那么ac3媒体的mFramesPerPacket有什么标准值吗?
答案 0 :(得分:1)
AC3帧大小应该是256 *通道,因此我希望在这里:
mFramesPerPacket = 256 * mChannelsPerFrame
。