由于项目中有个需求需要获取app录音文件的时长,通过调研,发现有一个php第三方类getid3,但有的格式如wav格式的音频好像不能正常获取时长,ffmpeg由此登场。
ffmpeg是一款非常强大的音视频处理开源程序,平时用到的视频剪辑,视频加水印等等都可以通过ffmpeg命令实现,比界面化的程序更加简单快捷。
以下安装测试均在centos下进行
安装
具体安装详见(https://www.linuxidc.com/Linux/2018-10/154934.htm)
sudo yum install -y epel-release rpm
yum repolist
sudo rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm
sudo yum repolist
sudo yum install -y ffmpeg
安装完后执行
ffmpeg -version
结果如下说明安装成功
使用
#linux下:
ffmpeg -i /tmp/1.mp3 2>&1 | grep 'Duration' | cut -d ' ' -f 4 | sed s/,//
#输出 00:05:18.82
#php下:
$path = "/tmp/1.mp3";
$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;
echo $total_seconds;
#输出时长秒数 308
到此就可获取录音时长,很方便有木有。
更多精彩文章,请关注公众号:佟是佟佟的佟