phpを使ってflvファイルの再生時間長を読み取る方法を詳しく解説

怪我咯
リリース: 2023-03-13 17:22:01
オリジナル
1595 人が閲覧しました

FLV は FLASH VIDEO の略称で、FLV ストリーミング形式は新しいビデオ形式で、正式名は Flash Video です。形成されるファイルが非常に小さく、読み込み速度が非常に速いため、ビデオ ファイルを Flash にインポートした後、エクスポートされた SWF ファイルがかさばるという問題が効果的に解決され、インターネット上でビデオ ファイルを視聴できるようになります。インターネットではうまく使用できないなどの欠点があります。
FLV は、Flash MX の開始とともに開発されたビデオ形式で、現在多くの新世代のビデオ共有 Web サイトで使用されており、現在最も急速に成長し、最も普及しているビデオ送信形式です。 Sorenson Company の圧縮アルゴリズムに基づいて開発されました。 FLV 形式は、Flash に簡単にインポートできるだけでなく、非常に高速で、著作権も保護でき、ローカルの Microsoft または REAL プレーヤーを使用せずにビデオを再生できます。
FLV は、Web ページで広く使用されている Flash Player プラットフォームを利用して、ビデオを Flash アニメーションに統合する新しいストリーミング ビデオ形式です。つまり、Web サイト訪問者は、Flash アニメーションを視聴することができれば、追加のビデオ プラグインをインストールすることなく、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 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート