【问题标题】:Visualization of MP3 - PHPMP3 的可视化 - PHP
【发布时间】:2011-07-10 02:53:20
【问题描述】:

我正在尝试使用 JavaScript(以及任何相关的插件/框架(jQuery)/库)和 html5 为我的网站构建一个 mp3 播放器。所以我构建了播放器(更准确地说,我实现了 jPlayer),现在我想做一个可视化器。

好吧,也许它不是一个可视化器(所有可视化声音的方法的名称总是让我感到困惑),我想我想要的是这样的东西(更新:我刚刚发现这叫做 waveform) :


(来源:anthonymattox.com

或者只是用图表显示 MP3 的振幅(响度)。

有人告诉我can't do that with javascript

那么有谁知道怎么用 php 来做呢?

更准确地说,有谁知道如何使用 PHP 绘制 MP3 的响度/幅度?我知道,一旦我得到响度,我就可以使用 GD 或 Google graphs image API 制作图表。

任何 API、想法、框架都将不胜感激!

【问题讨论】:

  • 好问题。希望我有答案,但期待看到人们想出什么......
  • 据我所知,没有用于解码 MP3 文件的 PHP 模块。但是,如果您愿意自己制作 MP3 解析器,那么没有什么能阻止您在 JavaScript 中读取二进制文件。
  • @zneak 必须有一个 Apache 工具,我可以使用 shell exec 调用至少将一些(有用的)数据打印到文本文件中......
  • 我可以保证这在 php 本身中是可能的,只是取决于你想自己做多少编码我猜大声笑
  • 好的!所以我找到了一种将 wav 转换为波形的方法:phpclasses.cfappsinc.ca/browse/file/1582.html,现在来处理 mp3

标签: php api mp3


【解决方案1】:

您是否反对使用 PHP 调用系统上的命令行工具?如果不是,那么我建议使用mpg123 将mp3 临时转换为.wav,然后使用一个名为wav2png.py 的实用程序将波形生成为.png 图像。

这会很慢,需要大量内存和磁盘,因为它需要先转换为 .wav。

exec("mpg123 -w outfile.wav infile.mp3");

// Not sure of the syntax for wav2png...
exec("wav2png.py outfile.wav");

免责声明:我没有使用 wave2png.py 的经验,我只是知道它的存在。

【讨论】:

  • 没有反对命令行工具(虽然我更喜欢 php...),我只是想防止滥用 CPU 并将 mp3 转换为 wav 只是为了 png,我不是确保这是值得的......
  • @Tomas:无论如何你都必须这样做。 MP3 是压缩的有损数据。它不是波形的直接表示,因此您必须将其解压缩为原始 PCM(脉冲编码调制,也称为波形)才能获得可图形化的数据。
猜你喜欢
  • 2013-01-28
  • 2012-07-05
  • 1970-01-01
  • 2014-10-16
  • 2010-11-10
  • 2012-02-07
  • 1970-01-01
  • 1970-01-01
  • 2015-07-25
相关资源
最近更新 更多