>  기사  >  백엔드 개발  >  PHP를 사용하여 flv 파일의 재생 시간 길이를 읽는 방법에 대한 자세한 설명

PHP를 사용하여 flv 파일의 재생 시간 길이를 읽는 방법에 대한 자세한 설명

怪我咯
怪我咯원래의
2017-07-12 11:55:111585검색

FLV는 FLASH VIDEO의 약어입니다. FLV 스트리밍 형식은 새로운 비디오 형식이며 전체 이름은 Flash Video입니다. 파일 크기가 매우 작고 로딩 속도가 매우 빠르기 때문에 인터넷에서 비디오 파일을 볼 수 있습니다. 비디오 파일을 Flash로 가져온 후 내보낸 SWF 파일이 부피가 커지는 문제를 효과적으로 해결합니다. 인터넷 및 기타 단점에서는 잘 사용할 수 없습니다.
FLV는 Flash MX 출시와 함께 개발된 비디오 형식으로, 현재 많은 차세대 비디오 공유 웹사이트에서 사용되고 있으며 현재 가장 빠르게 성장하고 가장 널리 퍼진 비디오 전송 형식입니다. Sorenson Company의 압축 알고리즘을 기반으로 개발되었습니다. FLV 형식은 Flash로 쉽게 가져올 수 있을 뿐만 아니라 속도가 매우 빠르고 저작권을 보호할 수 있으며 로컬 Microsoft 또는 REAL 플레이어를 사용하지 않고도 비디오를 재생할 수 있습니다.
FLV는 비디오를 Flash 애니메이션에 통합하기 위해 웹 페이지에서 널리 사용되는 Flash Player 플랫폼을 활용하는 새로운 스트리밍 비디오 형식입니다. 즉, 웹 사이트 방문자가 Flash 애니메이션을 볼 수만 있다면 추가 비디오 플러그인을 설치할 필요 없이 FLV 형식의 비디오도 볼 수 있습니다. FLV 비디오를 사용하면 비디오 배포가 매우 편리해집니다. 이 글에서는 주로 PHP를 사용하여 flv 파일의 재생 시간 길이를 읽는 코드를 소개합니다. 필요한 친구는 참고할 수 있습니다.

코드는 다음과 같습니다.

<?php 
// +----------------------------------------------------------------------+ 
// | PHP version 4&5 | 
// +----------------------------------------------------------------------+ 
// | Copyright (c) 2007 JackieWangjackieit@hotmail.com | 
// +----------------------------------------------------------------------+ 
// | This source file&#39;s function is to get the time length of flv | 
// | main function getTime param:$name The flv file you want to get | 
// +----------------------------------------------------------------------+ 
function BigEndian2Int($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; 
} 
function getTime($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; 
} 
?>

위 내용은 PHP를 사용하여 flv 파일의 재생 시간 길이를 읽는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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