如何检测AAC音频配置文件并确保Android兼容性

时间:2011-08-03 18:14:12

标签: android audio aac

我在弄清楚如何检测AAC音频源是否与Android兼容时遇到问题。 Android支持的媒体格式page表示'AAC LC / LTP'作为3GP,MPEG4或ADTS原始AAC提供。看来LC意味着“低复杂性”而LTP意味着“长期预测”但是,我最大的挫败感是确定Android上支持哪些AAC配置文件/模块。当我将输入运行到ffmpeg时,我看到它的AAC,但没有扩展有关AAC的信息。示例来源是http://6693.live.streamtheworld.com:80/WTMJAMAAC_SC。任何人都有任何想法?

3 个答案:

答案 0 :(得分:3)

您可以使用此处提供的MediaInfo库以编程方式获取扩展媒体信息: http://mediainfo.sourceforge.net/en/Download

“DLL”或其他媒体下载包括C,C#等示例代码。 如果您不想编写任何代码,同一网站会下载“MediaInfo”,这是一个使用该库显示信息的程序。

您的Android支持的媒体格式链接说:“ Mono / Stereo内容,标准比特率高达160 kbps,采样率从8到48 kHz ”。请注意,下面的示例显示了所有这些:通道,总比特率和采样率。

可能有必要自己测试“高达160 kbps”是否意味着“总体上高达160 kbps”或“文件的任何部分,包括那些以可变比特率(VBR)编码的文件,都可能超过160kbps。” 值得注意的是,我在我的单核Android手机上播放了具有256KB VBR AAC 6声道音频的电影,但显然我没有听到后环绕声道。由于这些原因,我怀疑链接中提出的限制是Google允许的最低限度,但实际支持的音频格式要宽泛得多。

以下是实际AAC文件(使用MediaInfo程序)的示例:


Format                           : ADTS
Format/Info                      : Audio Data Transport Stream
File size                        : 176 KiB
Duration                         : 30s 707ms
Overall bit rate                 : 46.8 Kbps

Audio
Format                           : AAC
Format/Info                      : Advanced Audio Codec
Format version                   : Version 4
Format profile                   : LC
Format settings, SBR             : Yes
Format settings, PS              : Yes
Muxing mode                      : ADTS
Duration                         : 30s 707ms
Bit rate mode                    : Constant
Bit rate                         : 46.8 Kbps
Channel(s)                       : 2 channels
Sampling rate                    : 44.1 KHz
Stream size                      : 176 KiB (100%)

我在C#中为MediaInfo编写了一个包装器库。没有必要使用MediaInfo,但使其使用更容易,更“.NET友好”。它可以在这里找到:MediaInfo.Net

答案 1 :(得分:1)

  1. 将来源加载到Media Player Classic
  2. 查看其主要内容。
  3. 在MediaInfo标签中,它会列出:
    • 格式:AAC
    • 格式简介:LC

答案 2 :(得分:1)

如果您只想检查用于几个文件的配置文件,您可以使用VLC或任何其他程序(如Sheepy已建议的那样) - 在VLC中它位于Extras -> Media Information -> CodecDetails and in your example stream,它是AAC SBR + PS(这是High-Efficiency Profile),decodable by android

如果您确实可以控制要通过Android播放的媒体,可能需要查看cross platform mobile media上的此博客文章,了解正确的编码方式。如果不是(例如因为用户可能选择自己的URL或文件),您应该捕获任何异常并显示错误消息。这样,您也可以在未来的Android版本中支持新的媒体类型。