从二进制文件创建mp3

时间:2013-04-29 08:37:09

标签: binary mp3 midi

我有一个midi文件,将其转换为二进制文件

知道我想用这个二进制文件制作一个mp3,我怎么能这样做。

我使用php作为我的脚本语言

这是我使用的代码,我将midi转换为二进制

$filename = "flute.mid";
$handle = fopen($filename, "rb");
$contents = fread($handle, filesize($filename));
for ($i = 0; $i < strlen($contents); $i++) {
$binary = sprintf("%08d", base_convert(ord($contents[$i]), 10, 2));
echo $binary;
}
fclose($handle);

2 个答案:

答案 0 :(得分:1)

除了转换为ASCII编码的二进制文件,这是无用的,只会使事情变得更复杂(我不知道任何程序可以读取这种格式),MIDI包含事件(音符,乐器等)而MP3文件包含压缩的采样声音。要将MIDI转换为MP3,您需要使用合成器从MIDI源生成采样声音,然后将采样的音频数据压缩为MP3格式。

要将MIDI合成为音频,您可以查看类似于Timidity ++(http://timidity.sourceforge.net/)的内容。要将音频压缩为MP3,您可以使用例如LAME(http://lame.sourceforge.net/)。这两个程序都可以在许多Linux发行版上找到可安装的软件包(在Ubuntu上,软件包名称是 timidity lame ;两者都在Universe软件包库中)。

答案 1 :(得分:1)

首先要看的是将MIDI转换为二进制。你试图将它直接转换为mp3的第二件事。

这种方式是不可能的。 Mp3是编码压缩格式,无法以这种方式创建。甚至有时候试着在Notepad&amp;然后通过将.mp3放在结束,使用新名称​​另存为进行更改。将创建具有与原始数据相同的mp3扩展名的文件,但播放器不会播放该文件。

所以我的观点是你必须研究一种编码方法来转换MIDI中的MIDI。