アップロード中にビデオをエンコードしようとしていますが、私がしたいことはできません。ここにアップロードのための私のコードです。PHPを使用してビデオをアップロードしてエンコードする
if(isset($_FILES['video_profile'])){
$errors= array();
$file_name = $_FILES['video_profile']['name'];
$ext = pathinfo($file_name, PATHINFO_EXTENSION);
$newName = time();
$file_size =$_FILES['video_profile']['size'];
$file_tmp =$_FILES['video_profile']['tmp_name'];
$file_type =$_FILES['video_profile']['type'];
$file_ext =strtolower(end(explode('.',$_FILES['video_profile']['name'])));
$expensions = array("webm","mp4", "avi", "mov", "flv", "swf", "mpg", "mpeg", "mpeg-4", "wmv");
if(in_array($file_ext,$expensions)=== false){
$errors[]="extension not allowed, please choose a JPEG or PNG file.";
}
if($file_size > 524288000){ // 2097152 //
$errors[]='File size must be smaller than 500 MB';
}
if(empty($errors)==true){
move_uploaded_file($file_tmp,"upload_data/site_video/".$newName.'_video.'.$ext);
//var_dump($file_tmp,"upload_data/site_video/".$newName.'_video.'.$ext);
echo "<p class=\"success\">You have successfully uploaded video</p>";
Db::query('INSERT INTO site_video SET table_name = "profile_video", user_id = '.$_SESSION['user']['id'].', video_name = "'.$newName.'_video.'.$ext.'" ');
$orderby = Db::insert_id();
Db::query('UPDATE site_video SET orderby = '.$orderby.' WHERE id = '.$orderby);
}
else{
//print_r($errors);
}
}
私が検索し、私はどこかにこのコードを配置する必要がありますが、どこで、どのよう
exec("ffmpeg -i video.avi -ar 22050 -ab 32 -f flv -s 320x240 video.flv");
誰かが私にヒントを与えることを知っていないことが判明しました!ありがとうございました
ビデオを変換すると、重大なリソースと時間がかかります。プライマリWebサーバーでこれを行う必要はなく、WebサーバーのPHP要求内でこれを実行したくないのは確かです。これを行うには、このビデオ変換用の専用サーバーが必要です。このサーバーでは、1人のワーカー(または並列処理する*多くのエンコーディング)が実行されます。ジョブキュー。エンコーディングはバックグラウンドで非同期的に発生します。これがどのように連携して動作するかは広すぎるため、ここで詳しく説明することはできません。 – deceze