截取音频流的截图

时间:2011-01-23 21:25:21

标签: command-line audio mp3 screenshot audio-streaming

好吧,我需要的是一个命令行应用程序,它允许你截取文件音频流的截图。

例如,它应该像这样运行:

app.exe“C:/artist-title.mp3”“C:/mp3Stream.jpg”
app.exe“C:/artist-title.wav”“C:/wavStream.jpg”

它只需要能够捕获mp3流,其他流是一种奖励。

最好在图像中列出所有音频通道,但如果所有通道组合成一个单声道流,它对我来说效果一样好。

那么,那里有这样的应用程序吗?所以我不重新发明轮子。

如果没有,我是否有关于如何自己编写此类应用程序的提示?最好是Java。我可以很好地处理编程,但我不是MP3 / WAV格式的专家。

为什么我需要它?嗯,除了链接之外,使用某种预览图像在线链接到文件会更有趣。它会在你听之前给你一个音频特征的暗示(它是否响亮?它看起来像“位音乐”吗?它是否有比其他部分更安静的部分?等等。)

2 个答案:

答案 0 :(得分:0)

没关系,我用Java编写了自己的小应用程序。

一旦我找到了这本优秀的指南,这是一块蛋糕: http://codeidol.com/java/swing/Audio/Build-an-Audio-Waveform-Display/

虽然您无法从该页面下载源代码(据我所知,尽管他表明您应该能够这样做)但他确实提供了一些非常有用的代码关键行,这使得它很容易拼图一起申请。

添加一些帮助(简单的东西)。您可以通过这样做获取图形对象:

BufferedImage img = new BufferedImage(500,100,BufferedImage.TYPE_INT_RGB);
Graphics2D gfx =(Graphics2D)img.getGraphics();

一旦你在gfx上绘制了所需的一切,你就可以将它保存到磁盘上一行:

ImageIO.write(img,“jpg”,new File(“waveform.png”));

虽然很难让它看起来很好看。看起来不像Audacity那样好。猜猜他们花了更多的时间而不是几个小时。

然而,最大的痛苦是Java不支持MP3导入。他们真的应该绕过那个。

因此,要获取MP3的波形,我首先使用“javazoom.jl.decoder.Decoder.java”将它们转换为WAV,这是在他们的网站上。非常容易使用,只需输入输入路径和输出路径即可。

javazoom dot net(无法在本网站上发布多个“超链接”)

这当然是一个很大的缺点,就是必须创建一个huuge WAV文件,如果MP3恰好是15分钟左右就会有祸了...... WAV将超过100 MiB(甚至可能超过200) MiB,自从我得到Java-out-of-memory-error以来没有发现,即使我给了VM 512mb)。

今天请用Java支持Java。猜猜他们没有这个原因是因为版权问题。版权真的让人失望。

答案 1 :(得分:0)

另请查看http://www.jsresources.org/ 它提供了一个非常好的FAQ部分,介绍了Java中的所有音频,以及一些示例应用程序。