php 将MIDI转换为MP3

hl0ma9xz  于 2023-06-20  发布在  PHP
关注(0)|答案(7)|浏览(142)

我有一个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

j9per5c4

j9per5c41#

我猜你是在linux机器上。。最简单的方法是胆怯地播放它,并输出ffmpeg:

timidity song.mid -Ow -o - | ffmpeg -i - -acodec libmp3lame -ab 64k song.mp3
q7solyqu

q7solyqu2#

如果您使用的是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

编辑

FFmpeg从未被“弃用”

tuwxkamq

tuwxkamq3#

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

rm5edbpk

rm5edbpk4#

我遇到了一个类似的问题,MIDI.js在移动的浏览器中不起作用。原来我已经包含了ogg文件,但缺少了mp3s(由于某种原因,MIDI.js只提供了ogg版本的synth_drum)。
所有128种通用MIDI声音的乐器文件可以在https://github.com/gleitz/midi-js-soundfonts找到。

bjp0bcyl

bjp0bcyl5#

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

sudo apt-get install -y timidity

然后运行以下命令:

timidity input.mid -Ow -o out.mp3

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

8yoxcaq7

8yoxcaq76#

这对我很有效:

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

Ubuntu 18.04上运行

omjgkv6w

omjgkv6w7#

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

相关问题