获取音频文件 php 的长度
我如何在php中获取音频文件的长度。
如果在php中做起来太难了,那么任何其他方式都应该可以正常工作。
如果您使用的是linux / unix并且安装了ffmpeg,请执行此操作:
$time = exec("ffmpeg -i " . escapeshellarg($path) . " 2>&1 | grep 'Duration' | cut -d ' ' -f 4 | sed s/,//");
list($hms, $milli) = explode('.', $time);
list($hours, $minutes, $seconds) = explode(':', $hms);
$total_seconds = ($hours * 3600) + ($minutes * 60) + $seconds;
/**
* https://stackoverflow.com/a/7135484/470749
* @param string $path
* @return int
*/
function getDurationOfWavInMs($path) {
$time = getDurationOfWav($path);
list($hms, $milli) = explode('.', $time);
list($hours, $minutes, $seconds) = explode(':', $hms);
$totalSeconds = ($hours * 3600) + ($minutes * 60) + $seconds;
return ($totalSeconds * 1000) + $milli;
}
/**
*
* @param string $path
* @return string
*/
function getDurationOfWav($path) {
$cmd = "ffmpeg -i " . escapeshellarg($path) . " 2>&1 | grep 'Duration' | cut -d ' ' -f 4 | sed s/,//";
return exec($cmd);
}
谢谢 斯蒂芬这对我来说很好(尽管对于数百个文件来说它很慢)。