繁体   English   中英

Media Foundation获得编码的比特率

[英]Media Foundation get encoded bitrate

我正在尝试使用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_MT_MAJOR_TYPE ,vValue MFMediaType_Audio
  • MF_MT_SUBTYPE ,vValue MFAudioFormat_AAC
  • MF_MT_AVG_BITRATE ,vValue 125601
  • MF_MT_AAC_AUDIO_PROFILE_LEVEL_INDICATION ,vValue 0
  • MF_MT_AAC_PAYLOAD_TYPE ,vValue 0

如果您只需要一个参考值,例如Windows Shell提供的值:

在此处输入图片说明

并且您不需要Media Foundation(即,仅用于访问值),则可以使用shell属性处理程序为您完成此工作。 您只需要请求PKEY_Audio_EncodingBitrate属性,处理程序就可以利用Media Foundation为您检索该属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM