>  기사  >  백엔드 개발  >  FLV 파일의 시간을 가져오는 PHP 샘플 코드

FLV 파일의 시간을 가져오는 PHP 샘플 코드

怪我咯
怪我咯원래의
2017-07-12 11:54:441049검색

FLV는 FLASH VIDEO의 약어입니다. FLV 스트리밍 형식은 새로운 비디오 형식이며 전체 이름은 Flash Video입니다. 파일 크기가 매우 작고 로딩 속도가 매우 빠르기 때문에 인터넷에서 비디오 파일을 볼 수 있습니다. 비디오 파일을 Flash로 가져온 후 내보낸 SWF 파일이 부피가 커지는 문제를 효과적으로 해결합니다.

FLV는 Flash MX 출시와 함께 개발된 비디오 형식으로 현재 많은 차세대 비디오 공유 웹 사이트에서 사용되며 현재 가장 빠르게 성장하고 널리 보급되는 비디오 전송 형식입니다. . Sorenson Company의 압축 알고리즘을 기반으로 개발되었습니다. FLV 형식은 Flash로 쉽게 가져올 수 있을 뿐만 아니라 속도가 매우 빠르고 저작권을 보호할 수 있으며 로컬 Microsoft 또는 REAL 플레이어를 사용하지 않고도 비디오를 재생할 수 있습니다.
FLV는 비디오를 Flash 애니메이션에 통합하기 위해 웹 페이지에서 널리 사용되는 Flash Player 플랫폼을 활용하는 새로운 스트리밍 비디오 형식입니다. 즉, 웹사이트 방문자가 Flash 애니메이션을 볼 수만 있다면 추가로 다른 비디오 플러그인을 설치하지 않고도 FLV 형식의 비디오도 볼 수 있습니다. FLV 비디오를 사용하면 비디오 배포가 매우 편리해집니다.

이 글에서는 주로 FLV 파일의 시간을 얻기 위한 PHP 구현을 소개합니다. 이 글에서는 구현 코드와 사용 방법을 직접 제공합니다. 필요한 친구는

PHP는 FLV 파일의 시간을 어떻게 얻나요? 답은 파일을 연 후 FLV 파일을 보는 것입니다. HEX 데이터이며 숫자로 변환됩니다.

코드는 다음과 같습니다:

<?php
functionBigEndian2Int($byte_word,$signed=false)
{
    $int_value    =0;
    $byte_wordlen=strlen($byte_word);
    for($i=0;$i<$byte_wordlen;$i++){
        $int_value+=ord($byte_word{$i})*pow(256,($byte_wordlen-1-$i));
    }
    if($signed){
        $sign_mask_bit=0x80<<(8*($byte_wordlen-1));
        if($int_value&$sign_mask_bit){
            $int_value=0-($int_value&($sign_mask_bit-1));
        }
    }
    return$int_value;
}
 
functiongetTime($name)
{
    if(!file_exists($name)){
        return;
    }
    $flv_data_length=filesize($name);
    $fp              =@fopen($name,&#39;rb&#39;);
    $flv_header      =fread($fp,5);
    fseek($fp,5,SEEK_SET);
    $frame_size_data_length  =BigEndian2Int(fread($fp,4));
    $flv_header_frame_length=9;
    if($frame_size_data_length>$flv_header_frame_length){
        fseek($fp,$frame_size_data_length-$flv_header_frame_length,SEEK_CUR);
    }
    $duration=0;
    while((ftell($fp)+1)<$flv_data_length){
        $this_tag_header=fread($fp,16);
        $data_length     =BigEndian2Int(substr($this_tag_header,5,3));
        $timestamp       =BigEndian2Int(substr($this_tag_header,8,3));
        $next_offset     =ftell($fp)-1+$data_length;
        if($timestamp>$duration){
            $duration=$timestamp;
        }
        fseek($fp,$next_offset,SEEK_SET);
    }
    fclose($fp);
    return$duration;
}
 
functionget_flv_file_time($time)
{
$time=getTime($time);
    $num=$time;
    $sec=intval($num/1000);
    $h   =intval($sec/3600);
    $m   =intval(($sec%3600)/60);
    $s   =intval(($sec%60));
    $tm  =$h.&#39;:&#39;.$m.&#39;:&#39;.$s;
    return$tm;
}
 
?>

get_flv_file_time("your FLV.flv")을 직접 사용하세요.

위 내용은 FLV 파일의 시간을 가져오는 PHP 샘플 코드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.