当時、動画の長さはインターネット上の一般的な方法で 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
-----------------------------テストは全く問題ありません
追加: ビデオ ファイルのサイズを取得したい場合は、以下を使用できます:
ファイルサイズ()
bytes です。正常に実行された場合はファイル サイズのバイト数が返され、それ以外の場合は FALSE が返されます。