3

我在 CDN 上有一堆音频文件。这些是并行的 mp3 和 ogg vorbises。这些文件每个都值得播放大约一小时。我需要从这些文件中提取任意部分:给我一个文件名(我可以选择是使用 mp3 还是 ogg 版本)和两个时间戳,并且我需要恰好在给定时间位置之间的音频。我不想下载整个文件,所以我想到了使用 Range http 标头。

我完全控制了音频文件,所以我以固定比特率对它们进行编码,以便能够估计我应该达到哪些字节。然而,这两种格式都使用帧(或 vorbis 的情况下的页面),必须以原子方式解码。

我编写的程序是用 Perl 编写的。我尝试下载我认为包含给定窗口的文件的一部分,然后使用 Audio::Mad 和 Ogg::Vorbis::Decoder 来解析音频文件片段。但是,两者似乎都无法处理片段,只有在我提供完整文件时才会成功。

所以我的问题是:如何在不下载整个文件的情况下获得音频文件的准确跨度?

4

1 回答 1

0

回答“从 mp3/ogg 截取确切时间范围” - 您可以查看以下内容是否符合您的需求:

ffmpeg -i InFile  -vn -acodec copy -ss 00:00:00 -t 00:01:32 -threads 0 OutFile

其中 ss - 开始时间,t - 持续时间。它确实削减了 - 没有重新压缩。

于 2012-04-07T16:08:48.157 回答