是否有任何可能的方法来设置使用PHP的音频文件的节奏?如何使用PHP更改音频文件的速度?
随着下面
How to detect the BPM of a song in php
我们可以通过检测BPM(BPM获得),但我无法找到一个方法来设置音频mp3文件的速度。
是否有任何可能的方法来设置使用PHP的音频文件的节奏?如何使用PHP更改音频文件的速度?
随着下面
How to detect the BPM of a song in php
我们可以通过检测BPM(BPM获得),但我无法找到一个方法来设置音频mp3文件的速度。
最简单的方法是一行JavaScript。
document.getElementById("audio").playbackRate=playbackspeed
如果您想使用php来以更低的速度处理视频/音频,您可以使用ffmpeg。 https://trac.ffmpeg.org/wiki/How%20to%20speed%20up%20/%20slow%20down%20a%20video
请注意,如果您不拥有大量服务器,使用php处理视频/音频可能需要很长时间。
document.getElementById(“audio”)。playbackRate = playbackspeed这不会保持歌曲的音高。 –
你无法保持歌曲的音调并加快速度,这是不可能的。加速声波或改变速度也会改变声波的频率。 – David
所以没有办法用javascript来做到这一点,对吧?要试着从后端服务器做起,你能告诉我哪种编程语言是可跳跃的吗? –
一个不会简单地设置音频文件的速度。如果你增加播放速度,相同数量的声波峰值会在更短的时间内被塞住;它们被挤压在一起,波长必须减少,这意味着频率成比例地增加,并且正如Niyaz和其他人所观察到的那样,您会听到更高的“音高”。
如果你想要双倍速度,你需要在一半的时间内挤压波浪,但是然后将它们恢复到原来的宽度,你需要放下一半(一两个)。 此操作不能(容易)在PHP中完成。
例如,你可以使用SOX or ffmpeg
(重点煤矿)做到这一点:
FFmpeg的有一个内置的音频过滤器改变节奏,而不会 改变音高。我们需要将文件编码为手机播放的 格式。这当然取决于电话。许多现代 智能手机一样的AAC音频:
ffmpeg -i weird.wma -filter:a "atempo=1.7" -c:a libfaac -q:a 100
final.m4a
你当然会使用.MP3,WMA没有或M4A,作为输入和输出的。
在PHP中,你只需要调用的ffmpeg:
$results = shell_exec("/path/to/wherever/is/ffmpeg -i '{$inputFile}' -filter:a 'atempo={$newTempo}' -q:a {$percentQuality} '{$outputFile}' 2>&1");
,并检查$results
和输出文件是否正常。
你...使用PHP这是我的帮助,它不完全是可能的...
嗨@mikeb我做就可以了研究,但使用JavaScript,我们可以Web Audio API使用完成,并我正在寻找在PHP过程。 – Niyaz