c++ - 提取 quicktime 文件中的每个音频 channel

标签 c++ c audio export quicktime

我想使用 QuickTime-API 提取 quicktime 电影中的每个音频 channel 。这意味着如果文件有 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 以及如何将每个 channel 导出为 WAV 48kHz。你能帮助我吗?例子来自this page .

最佳答案

你检查过this了吗? ?

关于c++ - 提取 quicktime 文件中的每个音频 channel ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3184453/

相关文章:

c++ - 通过openAL将录制的音频另存为.wav

android - 如何在android中将两个音频文件合并为一个音频文件?

c++ - 标准是否防止在可变参数模板中缩小具有足够小的文字值的文字转换

c++ - 创建新的 C++ 控制台应用程序后出错

c++ - 为什么我不能继承虚拟基的构造函数?

c - 无法将 GDB 附加到 Eclipse CDT 中的进程

c - 编译 C 时,Visual Studio 头文件中出现错误 C3409

c++ - 使用指向类的指针访问成员变量

c - C 中的中断错误

node.js - 下载youtube播放列表