【发布时间】:2017-06-10 20:42:00
【问题描述】:
我正在尝试使用 Media Foundation 获取音频文件(mp4、m4a、aac)的编码比特率。
我所做的是:
PROPVARIANT prop;
IMFSourceReader* reader;
MFCreateSourceReaderFromURL(filePath, NULL, &reader);
reader->GetPresentationAttribute(MF_SOURCE_READER_MEDIASOURCE, MF_PD_AUDIO_ENCODING_BITRATE,
&prop);
第二行以错误和空 PROPVARIAT 结束。
但是,当我这样做时:
reader->GetPresentationAttribute(MF_SOURCE_READER_MEDIASOURCE, MF_PD_DURATION, &prop);
效果很好。
有谁知道问题出在哪里和/或有没有其他方法可以获取音轨的编码比特率?
【问题讨论】:
-
MF_PD_AUDIO_ENCODING_BITRATE 是可选的,如 MSDN 中所述。我认为您最好为 MF_MT_AUDIO_SAMPLES_PER_SECOND 和 MF_MT_AUDIO_BITS_PER_SAMPLE 获取 UINT32,并从那里计算比特率。
标签: c++ ms-media-foundation audio-processing