2017-02-21 9 views
0

私はPHP-FFMpegライブラリを使用して、オーディオおよびビデオファイルを処理しています。オーディオの継続時間をffmpegで取得する

私は特定のビデオの期間を取得することを知っているが、このようにすることができます:

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

をしかし、私はどのように私は与えられたオーディオファイルのためにそれを行うことができることを知っています。

解決策を知っている人はいますか?

答えて

3

ビデオと同じようにオーディオと同じように動作するはずです。例えば

このコード:両方のmp3とFLACフォーマットのための秒で

$ffprobe = \FFMpeg\FFProbe::create(); 
$durationMp3 = $ffprobe->format('test.mp3')->get('duration'); 
$durationFlac = $ffprobe->format('test.flac')->get('duration'); 

echo "$durationMp3\n"; 
echo "$durationFlac\n"; 

出力期間:

255.477551 
255.477551 

は、したがって、され、あなたのオーディオファイルが正しくエンコードされていないこと、それは可能ですし、 ffmpeg自体では認識されませんか?それが実行されている場合は、PHPコードは

を生産し、同じ255.48秒である

00:04:15.48 

を生成し、同じtest.mp3ため

ffmpeg -i test.mp3 2>&1 | grep Duration | awk '{print $2}' | tr -d , 

は、CLIコマンドを実行して試みることができますffmpegは直接役に立ちませんが、問題はオーディオファイル自体にあります。ファイルを修正するか、他の(正しくエンコードされた)ファイルでテストすることができます。

関連する問題