【发布时间】:2010-07-06 07:57:00
【问题描述】:
我想使用 QuickTime-API 提取快速电影中的每个音频通道。这意味着如果文件有 5.1 环绕声,我最后想要 6 个音频文件。 但目前我不知道如何管理它。到目前为止,我有:
OSStatus err = noErr;
MovieAudioExtractionRef extractionSessionRef = nil;
Boolean allChannelsDiscrete = true;
int flags;
int numFrames;
AudioBufferList *mBufferList;
err = MovieAudioExtractionBegin(movie, 0, &extractionSessionRef);
// disable mixing of audio channels
err = MovieAudioExtractionSetProperty(extractionSessionRef,
kQTPropertyClass_MovieAudioExtraction_Movie,
kQTMovieAudioExtractionMoviePropertyID_AllChannelsDiscrete,
sizeof (Boolean), &allChannelsDiscrete);
err = MovieAudioExtractionFillBuffer(extractionSessionRef, &numFrames,
mBufferList, &flags);
if (flags & kQTMovieAudioExtractionComplete)
{
// extraction complete!
}
err = MovieAudioExtractionEnd(extractionSessionRef);
问题是我不知道如何获取mBufferList 以及如何将每个通道导出为 WAV 48kHz。你能帮助我吗?示例来自this page。
【问题讨论】:
-
如果您解释您使用的是什么库,您可能会得到更多答案..
-
好的,刚刚补充说我使用的是Quicktime-API / QuickTime-SDK
标签: c++ c audio export quicktime