9

我有一个 midi 文件,我想在网页上播放该文件,目前我正在使用 midi.js 播放器播放,但它不适用于移动浏览器。

请指导我如何播放该文件,否则我如何播放 midi 或将其转换为 mp3

这是我的代码

  $data = fopen ($midi, 'rb');
 $size= filesize($midi);
 $contents = fread ($data, $size);
 fclose($data);
 $encoded= base64_encode($contents);

 $encode = "'data:audio/midi;base64,".$encoded."=='";

最后将 base64 值传递给 midi.js

4

7 回答 7

9

猜你是在linux机器上...最简单的方法是胆怯地玩它并管道输出ffmpeg:

timidity song.mid -Ow -o - | ffmpeg -i - -acodec libmp3lame -ab 64k song.mp3
于 2013-04-30T09:01:19.217 回答
2

如果您使用的是 Linux,请使用 avconv 而不是 ffmpeg,因为 ffmpeg 已被弃用:

timidity input.midi -Ow -o - | avconv -i - -acodec libmp3lame -b 64k output.mp3

或跛脚:

timidity -Ow -o - input.midi | lame - output.mp3
于 2016-01-21T02:09:24.147 回答
1

我遇到了 MIDI.js 无法在移动浏览器中运行的类似问题。原来我已经包含了 ogg 文件但缺少 mp3(由于某种原因 MIDI.js 只提供了 ogg 版本的 synth_drum)。

可以在https://github.com/gleitz/midi-js-soundfonts找到所有 128 种通用 MIDI 声音的乐器文件。

于 2013-10-03T04:13:08.390 回答
1

FluidSynth + FFmpeg

胆怯的替代方法:

sudo apt install fluidsynth ffmpeg
fluidsynth -a alsa -T raw -F - /usr/share/sounds/sf2/FluidR3_GM.sf2 MIDI_sample.mid |
  ffmpeg -f s32le -i - MIDI_sample.mp3

在 Ubuntu 20.04、FluidSynth 2.1.1-2 和这个 MIDI 文件上测试:https ://en.wikipedia.org/wiki/File:MIDI_sample.mid

相关:https ://softwarerecs.stackexchange.com/questions/10915/automatically-turn-midi-files-into-wav-or-mp3/76955#76955

于 2020-12-08T21:38:49.617 回答
0

首先安装 Timidity 包,在 Ubuntu 中运行:

sudo apt-get install -y timidity

然后运行这个命令:

timidity input.mid -Ow -o out.mp3

您也可以将格式更改为WAV或其他格式。

于 2021-10-24T12:00:32.880 回答
0

这对我有用:

timidity my_midi_file.mid -Ow -o - | lame - -b 64 my_converted_midi.mp3

在 ubuntu 18.04 上运行

于 2021-05-11T08:09:45.877 回答
-3

Audacity是一个开源的音频转换器。

于 2013-04-30T08:58:01.507 回答