适用于有损压缩的时间索引音频档案策略

问题描述:

对于我的其中一个项目,我正在考虑为互联网广播电台开发音频档案。这个档案将被索引并按日期/时间寻址。适用于有损压缩的时间索引音频档案策略

例如,服务器将连接到一个流(通常用MP3编码),并保存流数据。客户端可以连接到此服务器并请求从2011-07-05 15:58:302011-07-05 15:59:37的音频。服务器会将音频数据返回给客户端进行播放。

我最初的想法是将数据保存为1分钟的原始MP3数据块到磁盘,并从数据库中引用这些文件。服务器对于流/文件格式是愚蠢的,并且不理解mpeg帧。它只是将数据传递给客户端,将数据块线性分开发送。这将由客户端同步到流。这与互联网广播服务器如何运行无异。 SHOUTcast服务器只是输出数据,字节的字节,从编码器发送给他们。当客户端连接时,无论数据是否以MP3帧结尾,都会发送数据。客户端需要同步。

我想知道是否有更好的方法,最大限度地兼容客户端和音频格式。有关如何去做这件事的任何想法?

我能想到的唯一的其他事情是将MP3解码为原始PCM音频,并在需要时根据需要重新编码。由于所需磁盘空间的原因,我不想走这条路线,而且在重新编码时会损失质量。

这个问题是语言不可知的,但如果它是有用的,我可能会实现PHP中的MySQL解决方案作为数据库。

您不必担心这一点,因为我通过shoutcast访问的所有mp3都是恒定比特率。你不必索引它。我有POC项目,已经存档了5分钟的大块,然后使用PHP来合并这些文件,并通过shoutcast将它伪流化到winamp。有效!

而且由于您正在使用mp3,因此您可以假设(并假设您正确假设)捕获文件的密度是线性的,因此要访问您应在中间查找的60秒文件的30秒。由于mp3解码器足够强大,因此您无需在此跟踪帧。

AACplus,完全不同的故事。它是固有的VBR。