我在 CDN 上有一堆音频文件。这些是并行的 mp3 和 ogg vorbises。这些文件每个都值得播放大约一小时。我需要从这些文件中提取任意部分:我得到一个文件名(我可以选择是否使用 mp3 或 ogg 版本)和两个时间戳,并且我需要恰好在给定时间位置之间的音频。我不想下载整个文件,所以我想到使用 Range http 标头。
我可以完全控制音频文件,因此我以固定比特率对它们进行编码,以便能够估计我应该达到哪些字节。然而,这两种格式都使用帧(或 vorbis 中的页面),必须以原子方式对其进行解码。
我编写的程序是用 Perl 编写的。我尝试下载文件的一部分,其中我认为包含给定的窗口,然后使用 Audio::Mad 和 Ogg::Vorbis::Decoder 来解析音频文件片段。然而,两者似乎都无法处理片段,并且只有当我提供完整文件时才会成功。
所以我的问题是:如何在不下载整个音频文件的情况下获得音频文件的精确范围?
回答“从 mp3/ogg 中剪切准确的时间范围” - 您可以检查以下内容是否符合您的需求:
ffmpeg -i InFile -vn -acodec copy -ss 00:00:00 -t 00:01:32 -threads 0 OutFile
其中 ss - 开始时间,t - 持续时间。它确实减少了——无需重新压缩。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)