2017-02-21 93 views
0

我正在使用PHP-FFMpeg库来处理音频和视频文件。在ffmpeg中获取音频的持续时间在php

我知道,要得到持续特定的视频可以是这样的:

$ffprobe = \FFMpeg\FFProbe::create(); 
$duration = $ffprobe->format('path/to/file')->get('duration'); 

但我知道,我该怎么做,对于一个给定的音频文件。

有没有人知道这个解决方案?

回答

3

它应该与音频和视频完全相同。

例如下面的代码:

$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 , 

它产生

00:04:15.48 

这是相同的255.48秒的PHP代码生成

如果运行相同请将test.mp3 ffmpeg直接不会产生任何有用的东西,那么问题出在音频文件本身。然后您可以修复该文件或使用其他(正确编码的)文件进行测试。

相关问题