관리 메뉴

투덜이 개발자

PHP 동영상 파일 총 재생시간 확인 본문

Program Language/PHP

PHP 동영상 파일 총 재생시간 확인

엠투 2024. 11. 11. 10:15
반응형

PHP에서는 동영상 파일의 총 재생 시간을 알기 위해 FFmpeg 라이브러리를 사용할 수 있습니다.

FFmpeg는 멀티미디어 파일의 메타데이터를 읽고, 변환하며, 파일의 정보(예: 재생 시간)를 추출하는 데 유용합니다.

다음은 PHP에서 FFmpeg를 사용하여 동영상의 총 재생 시간을 가져오는 예제입니다.

 

1. FFmpeg 설치 확인

먼저 서버에 FFmpeg가 설치되어 있어야 합니다. FFmpeg가 설치되어 있지 않다면, Linux의 경우 다음 명령어로 설치할 수 있습니다:

sudo apt update
sudo apt install ffmpeg

2. PHP 코드 작성

이제 FFmpeg를 사용하여 PHP에서 동영상의 총 재생 시간을 가져오는 방법을 살펴보겠습니다.

<?php
function getVideoDuration($filePath) {
    // FFmpeg 명령어를 통해 파일의 정보를 가져옵니다.
    $command = "ffmpeg -i " . escapeshellarg($filePath) . " 2>&1";

    // 명령어 실행 결과를 출력으로 저장합니다.
    $output = shell_exec($command);

    // "Duration" 문자열을 검색해 재생 시간을 가져옵니다.
    if (preg_match("/Duration: (\d+):(\d+):(\d+\.\d+)/", $output, $matches)) {
        $hours = (int)$matches[1];
        $minutes = (int)$matches[2];
        $seconds = (float)$matches[3];

        // 총 초(second) 단위로 변환
        $durationInSeconds = $hours * 3600 + $minutes * 60 + $seconds;
        return $durationInSeconds;
    } else {
        return false; // 재생 시간을 찾지 못한 경우
    }
}

$filePath = 'path/to/your/video.mp4';
$duration = getVideoDuration($filePath);

if ($duration !== false) {
    echo "총 재생 시간: " . gmdate("H:i:s", $duration); // HH:MM:SS 형식으로 표시
} else {
    echo "재생 시간을 가져올 수 없습니다.";
}
?>

설명

  1. FFmpeg 명령어 사용: ffmpeg -i [파일경로] 명령어를 통해 동영상 파일의 메타데이터를 가져옵니다. 2>&1는 오류 출력을 포함하여 모든 출력을 캡처합니다.
  2. 정규 표현식 사용: Duration: HH:MM:SS.mmm 형식으로 표시된 재생 시간을 정규 표현식을 사용하여 추출합니다.
  3. 초 단위로 변환: HH:MM:SS 형식을 초 단위로 변환하여 반환합니다.
  4. 시간 표시: PHP의 gmdate 함수를 사용하여 HH:MM:SS 형식으로 재생 시간을 출력합니다.

이 코드를 사용하면 FFmpeg가 설치된 서버에서 PHP를 통해 동영상의 총 재생 시간을 가져올 수 있습니다.

반응형