以db为单位保存音频文件长度

时间:2013-04-24 21:03:24

标签: php mysql audio

我有近200个ogg文件,我需要获取它们的音频长度并将其保存在数据库中。

我知道PHP,但我认为我无法用PHP和MySQL完成任务。

您能为我的问题推荐一个解决方案吗?

1 个答案:

答案 0 :(得分:2)

如果您正在使用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;

如果没有,那么你应该看看一些支持这个功能的库,可能像Kacey提到的那样thisogg

所以你可以使用像

这样的东西
KTaglib_MPEG_AudioProperties::getLength 

我答案开头的代码最初由Stephen J. Fuhry编写,可以看到here