ホームページ > php教程 > php手册 > PHPでビデオの全長を取得する別の方法

PHPでビデオの全長を取得する別の方法

WBOY
リリース: 2016-06-13 12:05:47
オリジナル
813 人が閲覧しました

当時、動画の長さはインターネット上の一般的な方法で flv 動画ファイルの長さを取得していましたが、この方法は flv 動画に対してのみサポートされており、他の形式の動画では得られる値は非常に貧弱でした。
ここにメソッドがあります: use 最初は ffmpeg の戻り値の Duration メソッドを使用することを考えていましたが、解決策はありませんでした。ffmpeg は多くのビデオ形式をサポートしているため、このメソッドにはある程度の汎用性があります。
ビデオの長さを取得するための ffmpeg 用の Linux コマンド:
ffmpeg -i test.flv 2>&1 grep 'Duration' Cut -d ' ' -f 4 |
持続時間は以下の図を参照してください。

コマンド分析:

grep コマンド: 検索ファイル内の条件を満たす文字列と一致します。ここで、Duration フィールドを探します

cut: 4 番目の要素をクエリするには、区切り文字としてスペースを使用します。cut は優れた切断コマンドです。

いくつかのカット例を以下に添付します:

#ffmpeg -i test.flv

次の情報を入力します:

①作成日の取得: ファイル作成時刻

ffmpeg -i test.flv 2>>grep '作成日' | カット -d ' ' -f 5-

説明: Cut はテキスト インターセプト コマンドです。区切り文字としてスペースを使用して、5 桁目以降のフィールドをインターセプトします。

5 番目の要素と 8 番目の要素をインターセプトしたい場合は、次のように記述する必要があります:

ffmpeg -i test.flv 2>>grep '作成日' | カット -d ' ' -f 5,8

②動画サイズを取得

cut を使用して、スペースを区切り文字として 10 番目の要素をインターセプトします。これはビデオ サイズでもあります

ffmpeg -i test.flv 2>&1 | grep 'ビデオ' Cut -d ' sed s/,//

sed コマンド: sed ‘s/置換される文字列/新しい文字列/g’

例: sed s/,//: 意味: 「,」記号を空白文字に置き換えます
次は、ビデオのサムネイルとビデオの全長を取得するコードです:

コードをコピーします コードは次のとおりです:


/*
* サムネイルとビデオを取得しますビデオ ファイルの長さ
*ffmpeg サポートが必要
* @author PHP Huaibei
* @date 2011-09-14
* @copyright PHP Huaibei
*/
//Getビデオ ファイルの合計の長さと作成時間
function getTime($file){
$vtime = exec("ffmpeg -i ".$file." 2>>&1 | grep 'Duration' | Cut -d ' ' -f 4 | sed s/,// ");//全長
$ctime = date("Y-m-d H:i:s",filectime($file));//作成時刻
//$duration =explode(":",$ time);
// $duration_in_秒 = $duration[0]*3600 $duration[1]*60round($duration[2]);//に変換します秒
return array('vtime'=> ;$vtime,
'ctime'=>$ctime
);
}
//ビデオファイルのサムネイルを取得します
function getVideoCover($file,$time) {
if(empty($time))$time = '1';//最初の 2 番目の最初のフレームはデフォルトでインターセプトされます
$strlen = strlen( $file);
$videoCover = substr($file,0 ,$strlen-4);
$videoCoverName = $videoCover.'.jpg';//サムネイルの名前
exec("ffmpeg -i) ".$file." -y -f mjpeg -ss ". $time." -t 0.001 -s 320x240 ".$videoCoverName."",$out,$status);
if($status == 0) )return $videoCoverName;
elseif ($status == 1 )return FALSE;
}
//メソッドを呼び出します
$duration = getTime('/usr/local/apache/htdocs/test. flv');
echo $duration['vtime'] .'
';//全長
echo $duration['ctime'].'
' //作成時間
$videoCoverName = getVideoCover('/usr /local/apache/htdocs/test.flv', 6);
echo $videoCoverName;//サムネイル名を取得します
?> 🎜>


テスト効果:

ビデオの長さ: 55 秒 43

ビデオ作成時間 2011-9-13

ビデオのサムネイル: test.jpg

-----------------------------テストは全く問題ありません

追加: ビデオ ファイルのサイズを取得したい場合は、以下を使用できます:

ファイルサイズ()

filesize() 関数は、ファイル サイズを取得するために使用されます。デフォルトの単位は

bytes です。正常に実行された場合はファイル サイズのバイト数が返され、それ以外の場合は FALSE が返されます。

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