Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在php中以ffmpeg格式获取音频的持续时间_Php_Laravel_Ffmpeg - Fatal编程技术网

在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不会产生任何有用的结果,那么问题在于音频文件本身。然后,您可以修复该文件或使用其他(正确编码的)文件进行测试