在php中以ffmpeg格式获取音频的持续时间
我正在使用图书馆处理音频和视频文件 我知道,要获得特定视频的持续时间,可以如下所示:在php中以ffmpeg格式获取音频的持续时间,php,laravel,ffmpeg,Php,Laravel,Ffmpeg,我正在使用图书馆处理音频和视频文件 我知道,要获得特定视频的持续时间,可以如下所示: $ffprobe = \FFMpeg\FFProbe::create(); $duration = $ffprobe->format('path/to/file')->get('duration'); 但我知道,对于给定的音频文件,我如何才能做到这一点 有人知道解决这个问题的方法吗?音频和视频的工作方式应该完全相同 例如,此代码: $ffprobe = \FFMpeg\FFProb
$ffprobe = \FFMpeg\FFProbe::create();
$duration = $ffprobe->format('path/to/file')->get('duration');
但我知道,对于给定的音频文件,我如何才能做到这一点
有人知道解决这个问题的方法吗?音频和视频的工作方式应该完全相同 例如,此代码:
$ffprobe = \FFMpeg\FFProbe::create();
$durationMp3 = $ffprobe->format('test.mp3')->get('duration');
$durationFlac = $ffprobe->format('test.flac')->get('duration');
echo "$durationMp3\n";
echo "$durationFlac\n";
输出mp3和FLAC格式的持续时间(秒):
255.477551
255.477551
您的音频文件是否可能没有正确编码,因此ffmpeg本身无法识别
您可以尝试运行cli命令:
ffmpeg -i test.mp3 2>&1 | grep Duration | awk '{print $2}' | tr -d ,
对于它生成的相同test.mp3
00:04:15.48
这与php代码生成的255.48秒相同
如果直接运行ffmpeg不会产生任何有用的结果,那么问题在于音频文件本身。然后,您可以修复该文件或使用其他(正确编码的)文件进行测试。它对音频和视频的工作方式应该完全相同 例如,此代码:
$ffprobe = \FFMpeg\FFProbe::create();
$durationMp3 = $ffprobe->format('test.mp3')->get('duration');
$durationFlac = $ffprobe->format('test.flac')->get('duration');
echo "$durationMp3\n";
echo "$durationFlac\n";
输出mp3和FLAC格式的持续时间(秒):
255.477551
255.477551
您的音频文件是否可能没有正确编码,因此ffmpeg本身无法识别
您可以尝试运行cli命令:
ffmpeg -i test.mp3 2>&1 | grep Duration | awk '{print $2}' | tr -d ,
对于它生成的相同test.mp3
00:04:15.48
这与php代码生成的255.48秒相同
如果直接运行ffmpeg不会产生任何有用的结果,那么问题在于音频文件本身。然后,您可以修复该文件或使用其他(正确编码的)文件进行测试