php_PHP チュートリアルでビデオの全長を取得する別の方法
Jul 21, 2016 pm 03:24 PM
当時、動画の長さはインターネット上の一般的な方法で flv 動画ファイルの長さを取得していましたが、この方法は flv 動画に対してのみサポートされており、他の形式の動画では得られる値は非常に貧弱でした。
以下は導入です: ffmpeg を使用して返す 最初は、Duration メソッドを使用することを考えていましたが、うまくいきませんでした。ffmpeg は多くのビデオ形式をサポートしているため、このメソッドにはある程度の汎用性があります。
ffmpeg 動画の長さを取得する Linux コマンド:
ffmpeg -i test.flv 2>&1 | grep 'Duration' Cut -d ' ' -f 4 |
Duration を取得できます。 ; 以下の写真を参照してください
コマンド分析:
grepコマンド: 検索ファイル内の条件を満たす文字列と一致し、ここでDurationフィールドを探します
cut: 4 番目の要素をクエリするにはスペースを区切り文字として使用します。cut は優れた切断コマンドです
。いくつかのカット例を以下に添付します:
#ffmpeg -i test.flv
次の情報を入力してください:
①作成日を取得: ファイル作成時刻
ffmpeg -i test.flv 2>&1 grep 'creationdate' カット -d ' ' -f 5-
説明: Cut はテキスト インターセプト コマンドです。区切り文字としてスペースを使用して、5 桁目以降のフィールドをインターセプトします。
5番目の要素と8番目の要素をインターセプトしたい場合は、次のように書く必要があります:
ffmpeg -i test.flv 2>&1 | grep '作成日' | カット -d ' ' -f 5,8
②動画サイズを取得
cut を使用して、スペースを区切り文字として 10 番目の要素をインターセプトします。これはビデオ サイズでもあります
ffmpeg -i test.flv 2>&1 | grep 'ビデオ' sed s/,//
sedコマンド: sed ‘s/置換される文字列/新しい文字列/g’
例: sed s/,//: の意味: 「,」記号を空白文字に置き換える
以下はビデオのサムネイルとビデオの全長を取得するコードです:
<?php
/*
* ビデオ ファイルのサムネイルとビデオの長さを取得します
*ffmpeg サポートが必要です
* @author PHP Huaibei
* @date 2011-09-14
* @copyright PHP Huaibei
*/
// 動画ファイルの合計時間と作成時間を取得します
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]*60+round($duration[2]) ;//秒に変換
return array('vtime' =>$vtime,
'ctime'=>$ctime
);
//動画ファイルのサムネイルを取得
function getVideoCover($file, $time) {
if(empty($time))$ time = '1' //デフォルトでは、最初の 2 番目のフレームがインターセプトされます
$strlen = strlen($file); $file,0,$strlen-4);
$videoCoverName = $videoCover. '.jpg';//サムネイルの名前付け
exec("ffmpeg -i ".$file." -y -f mjpeg -ss ".$時間。" -t 0.001 -s 320x240 ".$videoCoverName."", $out,$status);
if($status == 0)return $videoCoverName;
elseif ($status == 1)return
}
//呼び出しメソッド
$duration = getTime('/usr/local /apache/htdocs/test.flv');
echo $duration['vtime'].'<br/>';//Total長さ
echo $duration['ctime'].'<br/> ;';//作成時間
$videoCoverName = getVideoCover('/usr/local/apache/htdocs/test.flv', 6); $videoCoverName;//サムネイル名を取得します
?>
テスト効果:
動画の長さ: 55 秒 43
ビデオ作成時間: 2011-9-13
ビデオサムネイル: test.jpg
--------------------------------テストは全く問題ありません
追加: ビデオファイルのサイズを取得したい場合は、以下を使用できます:
ファイルサイズ()
filesize() 関数は、ファイル サイズを取得するために使用されます。デフォルトの単位は bytes です。成功した場合はファイル サイズのバイト数を返し、それ以外の場合は FALSE を返します。

人気の記事

人気の記事

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法
