4

我无法弄清楚如何检测 AAC 音频源是否与 Android 兼容。当以 3GP、MPEG4 或 ADTS 原始 AAC 格式交付时,Android支持的媒体格式页面显示“AAC LC/LTP”。看起来 LC 的意思是“低复杂性”,而 LTP 的意思是“长期预测”,但是,我最大的挫折是确定 Android 支持哪些 AAC 配置文件/模块。当我将输入运行到 ffmpeg 时,我看到了它的 AAC,但没有扩展有关 AAC 的信息。示例来源是http://6693.live.streamtheworld.com:80/WTMJAMAAC_SC。有人有什么想法吗?

4

3 回答 3

3

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

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

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

可能有必要自行测试“最高 160 kbps”是指“总体最高 160 kbps”还是“文件的任何部分,包括以可变比特率 (VBR) 编码的部分,都可能超过 160kbps”。值得注意的是,我在我的单核 Android 手机上播放过电影,它有 256KBit VBR AAC 6 声道音频,但显然我没有听到后环绕声道。因此,我怀疑链接中提出的限制是谷歌允许的最低限度,但实际支持的音频格式要广泛得多。

这是来自实际 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

于 2011-08-15T20:10:18.480 回答
1
  1. 将源加载到Media Player Classic中。
  2. 查看其属性。
  3. 在 MediaInfo 选项卡中,它将列出:
    • 格式:AAC
    • 格式配置文件:LC
于 2011-08-14T12:17:29.310 回答
1

如果您只想检查用于几个文件的配置文件,您可以使用 VLC 或任何其他程序(如 Sheepy 已经建议的) - 在 VLC 中,它位于Extras -> Media Information -> CodecDetails and in your example stream,它是 AAC SBR+PS(这是一个高效配置文件),它可由 android解码。

如果您确实可以控制要通过 android 播放的媒体,您可能需要查看这篇关于跨平台移动媒体的博客文章以了解正确的编码。如果不是(例如,因为用户可能能够选择他自己的 url 或文件),您应该捕获任何异常并显示错误消息。这样,您还可以在未来证明新的媒体类型,这可能会在未来的 android 版本中得到支持。

于 2011-08-17T18:02:39.167 回答