2012-03-03 61 views
1

是否可以下载MP3的最后30秒?还是有必要下载整个事情并在事后裁剪?我会通过http下载,即我有该文件的URL,但就是这样。下载mp3的最后30秒

+0

这是一个类似的问题:http://stackoverflow.com/questions/8543214/is-it-possible-to-download-just-part-of-a-zip-archive-eg-one-file 你可以下载文件的一部分,但如果你能够在此之后使用mp3文件,我不会没有。 – FrediWeber 2012-03-03 16:54:03

+0

下载了什么? HTTP? – Brad 2012-03-03 16:54:16

回答

3

不,这是不可能的......至少不是不知道一些更多的信息。

这里真正的问题是确定最近30秒钟的字节偏移量。这是认识的产物:

  • 采样率
  • (每个样品)位深度
  • 频道#
  • CBR或VBR
  • 比特率

即使这样,你不会使用VBR MP3文件,甚至是CBR,谁知道ID3和其他文件开头的废话有多大。即使你知道所有这些,仍然有一些变化,因为你有钻头的问题。

要知道的唯一方法是下载整个文件并使用工具(如FFMPEG)来找出正确的偏移量。然后,如果您想播放它,您需要添加适当的标题,并确保您正在修剪符合条件的帧,或自行修复位库。

现在,如果这可能都是服务器端提前计算出来的,那么是的,您可以从服务器请求偏移量,然后从那里下载。至于如何下载它,你的问题是非常不完整的,并没有提到你使用的协议,所以我不能帮你。

+0

如果我不需要_exactly_ 30秒,会有可能吗?说从20-40的任何地方都没问题。 – 2012-03-03 17:02:26

+0

@Wiscocrew,不是真的,除非你想从5点到05点。您可以尝试从文件中抓取最后x个字节。首先,做一个HEAD请求来确定文件的长度,然后选择最后的700KB左右。虽然如此,这是非常可变的,你可以得到任何东西。 – Brad 2012-03-03 17:10:26