2017-02-21 1 views
0

PHP-FFMpeg 라이브러리를 사용하여 오디오 및 비디오 파일을 작업하고 있습니다. 오디오의 지속 시간을 PHP에서 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가 직접적으로 유용한 것을 생성하지 못하면 오디오 파일 자체에 문제가 있습니다. 그런 다음 파일을 수정하거나 다른 (올바르게 인코딩 된) 파일로 테스트 할 수 있습니다.

관련 문제