modified : thumbs generation new schema completed

This commit is contained in:
Fahad Abbas 2016-03-07 14:33:42 +05:00
parent 43f2255e11
commit d13ede073e
7 changed files with 433 additions and 188 deletions

View file

@ -115,6 +115,9 @@
//$ffmpeg->logs = $log; //$ffmpeg->logs = $log;
logData('Going to call ClipBucket Function','checkpoints'); logData('Going to call ClipBucket Function','checkpoints');
$ffmpeg->ClipBucket(); $ffmpeg->ClipBucket();
logData($ffmpeg->video_files,'video_files');
$video_files = json_encode($ffmpeg->video_files);
$db->update(tbl('video'), array("video_files"), array($video_files), " file_name = '{$outputFileName}'");
if (stristr(PHP_OS, 'WIN')) if (stristr(PHP_OS, 'WIN'))

View file

@ -31,7 +31,8 @@ if($myquery->VideoExists($video)){
$data = get_video_details($video); $data = get_video_details($video);
#pr($data,true); #pr($data,true);
$vid_file = VIDEOS_DIR.'/'.$data['file_directory'].'/'.get_video_file($data,false,false); $vid_file = VIDEOS_DIR.'/'.$data['file_directory'].'/'.get_video_file($data,false,false);
# Uploading Thumbs
# Uploading Thumbss
if(isset($_POST['upload_thumbs'])){ if(isset($_POST['upload_thumbs'])){
if($data['files_thumbs_path']!=''){ if($data['files_thumbs_path']!=''){
@ -74,18 +75,13 @@ if($myquery->VideoExists($video)){
e(lang($response),'e'); e(lang($response),'e');
} }
else{ else{
$Upload->upload_thumbs($data['file_name'],$_FILES['vid_thumb'],$data['file_directory']); $Upload->upload_thumbs($data['file_name'],$_FILES['vid_thumb'],$data['file_directory'],$data['thumbs_version']);
} }
} }
// # Uploading Big Thumb
// if(isset($_POST['upload_big_thumb'])) {
// $Upload->upload_big_thumb($data['file_name'],$_FILES['big_thumb']);
// }
# Delete Thumb # Delete Thumb
if(isset($_GET['delete'])){ if(isset($_GET['delete'])){
$data = get_video_details($video);
if($data['files_thumbs_path']!=''){ if($data['files_thumbs_path']!=''){
#pr($data,true); #pr($data,true);
$files_thumbs_path= $data['files_thumbs_path']; $files_thumbs_path= $data['files_thumbs_path'];
@ -120,36 +116,53 @@ if($myquery->VideoExists($video)){
}else }else
{ {
delete_video_thumb($data['file_directory'],$_GET['delete']); $file_name_num = explode('-', $_GET['delete']);
$num = get_thumb_num($_GET['delete']);
$file_name = $file_name_num[0];
delete_video_thumb($data['file_directory'],$file_name,$num);
} }
} }
//echo $data['file_directory'].$data['file_name'];
# Generating more thumbs # Generating more thumbs
if(isset($_GET['gen_more'])) if(isset($_GET['gen_more']))
{ {
$num = config('num_thumbs'); $thumbs_settings_28 = thumbs_res_settings_28();
$dim = '503x283'; $vid_file = get_high_res_file($data,true);
$big_dim = config('big_thumb_width').'x'.config('big_thumb_height'); $thumbs_num = config('num_thumbs');
$thumbs_input['vid_file'] = $vid_file;
$thumbs_input['num'] = $thumbs_num;
$thumbs_input['duration'] = $data['duration'];
$thumbs_input['file_directory'] = $data['file_directory'];
$thumbs_input['file_name'] = $data['file_name'];
require_once(BASEDIR.'/includes/classes/sLog.php'); require_once(BASEDIR.'/includes/classes/sLog.php');
$log = new SLog(); $log = new SLog();
$configs = array(); $configs = array();
require_once(BASEDIR.'/includes/classes/conversion/ffmpeg.class.php'); require_once(BASEDIR.'/includes/classes/conversion/ffmpeg.class.php');
$ffmpeg = new FFMpeg($configs, $log); $ffmpeg = new FFMpeg($configs, $log);
$ffmpeg->regenerateThumbs($vid_file,$data['file_directory'],$data['duration'],$dim,$num,$rand=NULL,$is_big=false,$data['file_name']); //pr($thumbs_settings_28,true);
e(lang('Video thumbs has been regenrated successfully'),'m'); foreach ($thumbs_settings_28 as $key => $thumbs_size) {
$height_setting = $thumbs_size[1];
$width_setting = $thumbs_size[0];
$thumbs_input['dim'] = $width_setting.'x'.$height_setting;
if($key == 'original'){
$thumbs_input['dim'] = $key;
$thumbs_input['size_tag'] = $key;
}else{
$thumbs_input['size_tag'] = $width_setting.'x'.$height_setting;
}
$ffmpeg->generateThumbs($thumbs_input);
}
/* e(lang('Video thumbs has been regenrated successfully'),'m');
require_once(BASEDIR.'/includes/classes/conversion/ffmpeg.class.php'); $db->update(tbl('video'), array("thumbs_version"), array("2.8"), " file_name = '".$data['file_name']."' ");
$ffmpeg = new FFMpeg();
//Generating Thumbs
$ffmpeg->generate_Thumbs($vid_file,$data['duration'],$dim,$num,$rand=NULL,$is_big=false);
//Generating Big Thumb
$ffmpeg->generate_thumbs($vid_file,$data['duration'],$big_dim,$num,true,true);
*/
} }
Assign('data',$data); Assign('data',$data);

View file

@ -35,6 +35,13 @@ class FFMpeg{
public $big_thumb_dim = ""; public $big_thumb_dim = "";
public $cb_combo_res = ""; public $cb_combo_res = "";
public $res_configurations = ""; public $res_configurations = "";
public $thumbs_res_settings = array(
"original" => "original",
'80' => array('128','80'),
'240' => array('384','240'),
'320' => array('512','320'),
'480' => array('768','480')
);
public $res169 = array( public $res169 = array(
'240' => array('428','240'), '240' => array('428','240'),
'360' => array('640','360'), '360' => array('640','360'),
@ -346,14 +353,6 @@ class FFMpeg{
$this->output = new stdClass(); $this->output = new stdClass();
$this->output->videoDetails = $videoDetails; $this->output->videoDetails = $videoDetails;
//$this->logs->writeLine("Thumbs Generation", "Starting");
$this->log .= "\r\n Starting : Thumbs Generation \r\n";
try{
$this->generateThumbs($this->inputFile, $videoDetails['duration']);
}catch(Exception $e){
$this->log .= "\r\nErrot Occured : ".$e->getMessage()."\r\n";
}
/* /*
Comversion Starts here Comversion Starts here
*/ */
@ -420,6 +419,7 @@ class FFMpeg{
if (file_exists($this->sdFile)) if (file_exists($this->sdFile))
{ {
$this->video_files[] = 'sd';
$this->sdFile1 = "{$this->outputFile}.{$this->options['format']}"; $this->sdFile1 = "{$this->outputFile}.{$this->options['format']}";
$path = explode("/", $this->sdFile1); $path = explode("/", $this->sdFile1);
$name = array_pop($path); $name = array_pop($path);
@ -459,7 +459,7 @@ class FFMpeg{
$this->log .= "\r\n output : ".$output." \r\n"; $this->log .= "\r\n output : ".$output." \r\n";
if (file_exists($this->hdFile)) if (file_exists($this->hdFile))
{ {
$this->video_files[] = 'hd';
$this->sdFile1 = "{$this->outputFile}.{$this->options['format']}"; $this->sdFile1 = "{$this->outputFile}.{$this->options['format']}";
$path = explode("/", $this->sdFile1); $path = explode("/", $this->sdFile1);
$name = array_pop($path); $name = array_pop($path);
@ -498,6 +498,7 @@ class FFMpeg{
$this->log .= "\r\n output : ".$output." \r\n"; $this->log .= "\r\n output : ".$output." \r\n";
if (file_exists($this->sdFile)) if (file_exists($this->sdFile))
{ {
$this->video_files[] = 'sd';
$this->sdFile1 = "{$this->outputFile}.{$this->options['format']}"; $this->sdFile1 = "{$this->outputFile}.{$this->options['format']}";
//logData(json_encode($this->sdFile1)); //logData(json_encode($this->sdFile1));
$path = explode("/", $this->sdFile1); $path = explode("/", $this->sdFile1);
@ -884,6 +885,35 @@ class FFMpeg{
$nr='360'; $nr='360';
/*End*/ /*End*/
//$this->logs->writeLine("Thumbs Generation", "Starting");
$this->log .= "\r\n ====== Starting : Thumbs Generation ======= \r\n";
$this->log .= "\r\n === OutPut Thumbs Files === \r\n";
try{
$thumbs_settings = $this->thumbs_res_settings;
logData($thumbs_settings,'checkpoints');
foreach ($thumbs_settings as $key => $thumbs_size){
$height_setting = $thumbs_size[1];
$width_setting = $thumbs_size[0];
$dimension_setting = $width_setting.'x'.$height_setting;
if($key == 'original'){
$dimension_setting = $key;
$dim_identifier = $key;
}else{
$dim_identifier = $width_setting.'x'.$height_setting;
}
$thumbs_settings['vid_file'] = $this->input_file;
$thumbs_settings['duration'] = $this->input_details['duration'];
$thumbs_settings['num'] = thumbs_number;
$thumbs_settings['dim'] = $dimension_setting;
$thumbs_settings['size_tag'] = $dim_identifier;
$this->generateThumbs($thumbs_settings);
}
}catch(Exception $e){
$this->log .= "\r\n Errot Occured : ".$e->getMessage()."\r\n";
}
$this->log .= "\r\n ====== End : Thumbs Generation ======= \r\n";
logData('Parsing configurations to Video convert Functions','checkpoints'); logData('Parsing configurations to Video convert Functions','checkpoints');
$hr = $this->configs['high_res']; $hr = $this->configs['high_res'];
$this->configs['video_width'] = $res[$nr][0]; $this->configs['video_width'] = $res[$nr][0];
@ -902,11 +932,6 @@ class FFMpeg{
{ {
case 'yes': case 'yes':
{ {
/*$configs = $this->configs;
logdata($configs,'checkpoints');*/
$res169 = $this->reindex_required_resolutions($res169); $res169 = $this->reindex_required_resolutions($res169);
logdata($res169,'checkpoints'); logdata($res169,'checkpoints');
@ -959,20 +984,7 @@ class FFMpeg{
$this->log .= "\r\n\r\nTime Took : "; $this->log .= "\r\n\r\nTime Took : ";
$this->log .= $this->total_time.' seconds'."\r\n\r\n"; $this->log .= $this->total_time.' seconds'."\r\n\r\n";
$this->gen_thumbs = true;
$this->gen_big_thumb = true;
//Generating Thumb
//logData($this->input_file.$this->output_details['duration'],"thumb");
if ($this->resolutions == 'yes')
{
$this->thumb_dim = config('thumb_width').'x'.config('thumb_height');
$this->big_thumb_dim = config('big_thumb_width').'x'.config('big_thumb_height');
$this->generateThumbs($this->input_file, $this->output_details['duration'],$this->thumb_dim,thumbs_number,NULL);
$this->generateThumbs($this->input_file, $this->output_details['duration'],$this->big_thumb_dim,thumbs_number,NULL,"big");
}
if(!file_exists($this->output_file)) if(!file_exists($this->output_file))
$this->log("conversion_status","failed"); $this->log("conversion_status","failed");
@ -1935,10 +1947,27 @@ class FFMpeg{
return false; return false;
} }
private function generateThumbs($input_file,$duration,$dim='501x283',$num=thumbs_number,$rand=NULL,$is_big=false){ public function generateThumbs($array){
$tmpDir = TEMP_DIR.'/'.getName($input_file); $input_file = $array['vid_file'];
$duration = $array['duration'];
$dim = $array['dim'];
$num = $array['num'];
if (!empty($array['size_tag'])){
$size_tag= $array['size_tag'];
}
if (!empty($array['file_directory'])){
$regenerateThumbs = true;
$file_directory = $array['file_directory'];
}
if (!empty($array['file_name'])){
$filename = $array['file_name'];
}
if (!empty($array['rand'])){
$rand = $array['rand'];
}
$tmpDir = TEMP_DIR.'/'.getName($input_file);
/* /*
The format of $this->options["outputPath"] should be like this The format of $this->options["outputPath"] should be like this
@ -1948,19 +1977,30 @@ class FFMpeg{
if(substr($this->options["outputPath"], strlen($this->options["outputPath"]) - 1) !== "/"){ if(substr($this->options["outputPath"], strlen($this->options["outputPath"]) - 1) !== "/"){
$this->options["outputPath"] .= "/"; $this->options["outputPath"] .= "/";
} }
mkdir($tmpDir,0777);
mkdir($tmpDir,0777);
$output_dir = THUMBS_DIR; $output_dir = THUMBS_DIR;
$dimension = ''; $dimension = '';
$big = ""; $big = "";
if($is_big=='big') if(!empty($size_tag))
{ {
$big = 'big-'; $size_tag = $size_tag.'-';
}
if (!empty($file_directory && !empty($filename))){
$thumbs_outputPath = $file_directory.'/';
}else{
$thumbs_outputPath = $this->options['outputPath'];
} }
if($dim!='original'){
$dimension = " -s $dim ";
}
if($num > 1 && $duration > 14) if($num > 1 && $duration > 14)
{ {
$duration = $duration - 5; $duration = $duration - 5;
@ -1970,23 +2010,23 @@ class FFMpeg{
for($id=3;$id<=$duration;$id++) for($id=3;$id<=$duration;$id++)
{ {
$file_name = getName($input_file)."-{$big}{$count}.jpg"; if (empty($filename)){
$file_path = THUMBS_DIR.'/' . $this->options['outputPath'] . $file_name; $file_name = getName($input_file)."-{$size_tag}{$count}.jpg";
}else{
$file_name = $filename."-{$size_tag}{$count}.jpg";
}
$file_path = THUMBS_DIR.'/' . $thumbs_outputPath . $file_name;
$id = $id + $division - 1; $id = $id + $division - 1;
if($rand != "") { if($rand != "") {
$time = $this->ChangeTime($id,1); $time = $this->ChangeTime($id,1);
} elseif($rand == "") { } elseif($rand == "") {
$time = $this->ChangeTime($id); $time = $this->ChangeTime($id);
} }
if($dim!='original')
{
$dimension = " -s $dim ";
$mplayer_dim = "-vf scale=$width:$height";
}
$command = $this->ffMpegPath." -i $input_file -an -ss $time -an -r 1 $dimension -y -f image2 -vframes 1 $file_path "; $command = $this->ffMpegPath." -i $input_file -an -ss $time -an -r 1 $dimension -y -f image2 -vframes 1 $file_path ";
/*logdata("Thumbs COmmand : ".$command,'checkpoints');*/
$output = $this->executeCommand($command); $output = $this->executeCommand($command);
//$this->//logData($output); //$this->//logData($output);
//checking if file exists in temp dir //checking if file exists in temp dir
@ -1995,12 +2035,25 @@ class FFMpeg{
rename($tmpDir.'/00000001.jpg',THUMBS_DIR.'/'.$file_name); rename($tmpDir.'/00000001.jpg',THUMBS_DIR.'/'.$file_name);
} }
$count = $count+1; $count = $count+1;
if (!$regenerateThumbs){
$this->log .= "\r\n File : $file_path ";
}
} }
}else{ }else{
$file_name = getName($input_file)."-{$big}1.jpg";
$file_path = THUMBS_DIR.'/' . $this->options['outputPath'] . "/" . $file_name; if (empty($filename)){
$command = $this->ffMpegPath." -i $input_file -an -s $dim -y -f image2 -vframes $num $file_path "; $file_name = getName($input_file)."-{$size_tag}1.jpg";
}else{
$file_name = $filename."-{$size_tag}1.jpg";
}
$file_path = THUMBS_DIR.'/' . $thumbs_outputPath . $file_name;
echo $command = $this->ffMpegPath." -i $input_file -an $dimension -y -f image2 -vframes $num $file_path ";
$output = $this->executeCommand($command); $output = $this->executeCommand($command);
if (!$regenerateThumbs){
$this->log .= "\r\n File : $file_path ";
}
} }
rmdir($tmpDir); rmdir($tmpDir);
@ -2044,17 +2097,12 @@ public function regenerateThumbs($input_file,$test,$duration,$dim,$num,$rand=NUL
$id = $id + $division - 1; $id = $id + $division - 1;
$time = $this->ChangeTime($id,1); $time = $this->ChangeTime($id,1);
if($dim!='original') if($dim!='original')
{ {
$dimension = " -s $dim "; $dimension = " -s $dim ";
$mplayer_dim = "-vf scale=$width:$height"; $mplayer_dim = "-vf scale=$width:$height";
} }
$command = $this->ffMpegPath." -i $input_file -an -ss $time -an -r 1 $dimension -y -f image2 -vframes 1 $file_path "; $command = $this->ffMpegPath." -i $input_file -an -ss $time -an -r 1 $dimension -y -f image2 -vframes 1 $file_path ";
$output = $this->executeCommand($command); $output = $this->executeCommand($command);

View file

@ -181,7 +181,10 @@ class Upload{
$query_field[] = "video_version"; $query_field[] = "video_version";
$query_val[] = '2.7'; $query_val[] = '2.7';
//thumbs_version
$query_field[] = "thumbs_version";
$query_val[] = '2.8';
//Upload Ip //Upload Ip
$query_field[] = "uploader_ip"; $query_field[] = "uploader_ip";
$query_val[] = $_SERVER['REMOTE_ADDR']; $query_val[] = $_SERVER['REMOTE_ADDR'];
@ -271,46 +274,42 @@ class Upload{
*/ */
function get_available_file_num($file_name,$big=false) function get_available_file_num($file_name,$big=false)
{ {
// echo dir;
//Starting from 1
$code = 1; $code = 1;
if($big) if($big)
$big = "big-"; $big = "big-";
if(dir!=NULL) if(defined('dir')){
{
while(1) while(1){
{ //setting variable for CB 2.8 gretaer versions
$path = THUMBS_DIR.'/'.dir.'/'.$file_name.'-original-'.$code.'.';
$path = THUMBS_DIR.'/'.dir.'/'.$file_name.'-'.$big.$code.'.'; if(!file_exists($path.'jpg') && !file_exists($path.'png') && !file_exists($path.'gif')){
if(!file_exists($path.'jpg') && !file_exists($path.'png') && !file_exists($path.'gif')) //setting variable for CB 2.8 lower versions
break; $path = THUMBS_DIR.'/'.dir.'/'.$file_name.'-'.$big.$code.'.';
else }
$code = $code + 1;
}
}
else{ if(!file_exists($path.'jpg') && !file_exists($path.'png') && !file_exists($path.'gif'))
break;
while(1) else
{ $code = $code + 1;
$path = THUMBS_DIR.'/'.$file_name.'-'.$big.$code.'.'; }
if(!file_exists($path.'jpg') && !file_exists($path.'png') && !file_exists($path.'gif')) }else{
while(1){
$path = THUMBS_DIR.'/'.$file_name.'-'.$big.$code.'.';
if(!file_exists($path.'jpg') && !file_exists($path.'png') && !file_exists($path.'gif'))
break; break;
else else
$code = $code + 1; $code = $code + 1;
}
} }
} return $code;
return $code;
} }
function upload_thumb($file_name,$file_array,$key=0,$files_dir=NULL) function upload_thumb($file_name,$file_array,$key=0,$files_dir=NULL,$thumbs_ver=false)
{ {
global $imgObj,$LANG; global $imgObj,$LANG;
@ -318,29 +317,55 @@ class Upload{
if(!empty($file['name'][$key])) if(!empty($file['name'][$key]))
{ {
define('dir',$files_dir); define('dir',$files_dir);
define('t_width','501');
define('t_height','283');
$file_num = $this->get_available_file_num($file_name); $file_num = $this->get_available_file_num($file_name);
$ext = getExt($file['name'][$key]); $ext = getExt($file['name'][$key]);
if($imgObj->ValidateImage($file['tmp_name'][$key],$ext)) if($imgObj->ValidateImage($file['tmp_name'][$key],$ext))
{ {
if($files_dir!=NULL){ //One more IF statement considering CB 2.8.1 thumbs strucure
//Author : Fahad Abbas
if (!empty($thumbs_ver) && $thumbs_ver == '2.8'){
$file_path = THUMBS_DIR.'/'.$files_dir.'/'.$file_name.'-'.$file_num.'.'.$ext; $thumbs_settings_28 = thumbs_res_settings_28();
$big_file_path = THUMBS_DIR.'/'.$files_dir.'/'.$file_name.'-big-'.$file_num.'.'.$ext; $temp_file_path = THUMBS_DIR.'/'.$files_dir.'/'.$file_name.'-'.$file_num.'.'.$ext;
$imageDetails = getimagesize($file['tmp_name'][$key]);
move_uploaded_file($file['tmp_name'][$key],$temp_file_path);
foreach ($thumbs_settings_28 as $key => $thumbs_size) {
$height_setting = $thumbs_size[1];
$width_setting = $thumbs_size[0];
if ( $key != 'original' ){
$dimensions = implode('x',$thumbs_size);
}else{
$dimensions = 'original';
$width_setting = $imageDetails[0];
$height_setting = $imageDetails[1];
}
$outputFilePath = THUMBS_DIR.'/'.$files_dir.'/'.$file_name.'-'.$dimensions.'-'.$file_num.'.'.$ext;
$imgObj->CreateThumb($temp_file_path,$outputFilePath,$width_setting,$ext,$height_setting,false);
}
unlink($temp_file_path);
}else{
if($files_dir!=NULL){
$file_path = THUMBS_DIR.'/'.$files_dir.'/'.$file_name.'-'.$file_num.'.'.$ext;
$big_file_path = THUMBS_DIR.'/'.$files_dir.'/'.$file_name.'-big-'.$file_num.'.'.$ext;
}
else{
$file_path = THUMBS_DIR.'/'.$file_name.'-'.$file_num.'.'.$ext;
$big_file_path = THUMBS_DIR.'/'.$file_name.'-big-'.$file_num.'.'.$ext;
}
move_uploaded_file($file['tmp_name'][$key],$file_path);
$imgObj->CreateThumb($file_path,$big_file_path,config('big_thumb_width'),$ext,config('big_thumb_height'),false);
$imgObj->CreateThumb($file_path,$file_path,config('thumb_width'),$ext,config('thumb_height'),false);
}
}
else{
$file_path = THUMBS_DIR.'/'.$file_name.'-'.$file_num.'.'.$ext;
$big_file_path = THUMBS_DIR.'/'.$file_name.'-big-'.$file_num.'.'.$ext;
}
move_uploaded_file($file['tmp_name'][$key],$file_path);
$imgObj->CreateThumb($file_path,$big_file_path,config('big_thumb_width'),$ext,config('big_thumb_height'),false); e(lang('upload_vid_thumb_msg'),'m');
$imgObj->CreateThumb($file_path,$file_path,t_width,$ext,t_height,false);
e(lang('upload_vid_thumb_msg'.THUMB_WIDTH),'m');
} }
} }
} }
@ -372,19 +397,19 @@ class Upload{
* @param $_FILES array name * @param $_FILES array name
*/ */
function upload_thumbs($file_name,$file_array,$files_dir=NULL) function upload_thumbs($file_name,$file_array,$files_dir=NULL,$thumbs_ver=false)
{ {
global $LANG; global $LANG;
if(count($file_array[name])>1) if(count($file_array[name])>1)
{ {
for($i=0;$i<count($file_array['name']);$i++) for($i=0;$i<count($file_array['name']);$i++)
{ {
$this->upload_thumb($file_name,$file_array,$i,$files_dir); $this->upload_thumb($file_name,$file_array,$i,$files_dir,$thumbs_ver);
} }
e(lang('upload_vid_thumbs_msg'),'m'); e(lang('upload_vid_thumbs_msg'),'m');
}else{ }else{
$file = $file_array; $file = $file_array;
$this->upload_thumb($file_name,$file,$key=0,$files_dir); $this->upload_thumb($file_name,$file,$key=0,$files_dir,$thumbs_ver);
} }
} }

View file

@ -572,36 +572,15 @@ class CBvideo extends CBCategory
{ {
if (strstr($thumb,'timthumb')) if (strstr($thumb,'timthumb'))
$thumb = $this->convert_tim_thumb_url_to_file($thumb,$file_name=false); $thumb = $this->convert_tim_thumb_url_to_file($thumb,$file_name=false);
else
$thumb = substr($thumb, 0, -6);
$file = THUMBS_DIR.'/'.$thumb; if (!empty($vdetails['file_directory'])){
if(file_exists($file) && is_file($file)) $file = THUMBS_DIR.'/'.$vdetails['file_directory'].'/'.$thumb;
}else{
$file = THUMBS_DIR.'/'.$thumb;
}
if(file_exists($file) && is_file($file)){
unlink($file); unlink($file);
}
foreach($thumbs as $thumb)
{
if (strstr($thumb,'timthumb'))
$fn = $this->convert_tim_thumb_url_to_file($thumb,$file_name=true);
else
$fn = substr($thumb, 0, -6);
$result = db_select("SELECT * FROM ".tbl("video")." WHERE file_name = '$fn'");
if($result)
{
foreach($result as $result1)
{
$str = '/'.$result1['file_directory'].'/';
$file1 = THUMBS_DIR.$str.$thumb;
if(file_exists($file1) && is_file($file1))
{
unlink($file1);
}
}
} }
} }
} }

View file

@ -211,7 +211,7 @@ function get_thumb($vdetails,$num='default',$multi=false,$count=false,$return_fu
$file_dir = "/" . $thumbDir; $file_dir = "/" . $thumbDir;
} }
$vid_thumbs = glob(THUMBS_DIR."/" .$file_dir.$vdetails['file_name']."*"); $vid_thumbs = glob(THUMBS_DIR."/" .$file_dir.$vdetails['file_name']."*");
#replace Dir with URL #replace Dir with URL
if(is_array($vid_thumbs)) if(is_array($vid_thumbs))
@ -222,17 +222,25 @@ function get_thumb($vdetails,$num='default',$multi=false,$count=false,$return_fu
$thumb_parts = explode('/',$thumb); $thumb_parts = explode('/',$thumb);
$thumb_file = $thumb_parts[count($thumb_parts)-1]; $thumb_file = $thumb_parts[count($thumb_parts)-1];
if(!is_big($thumb_file) || $return_big) //Saving All Thumbs
{ if(!is_big($thumb_file) || $return_big){
if($return_full_path) if($return_full_path)
$thumbs[] = THUMBS_URL.'/'. $thumbDir . $thumb_file; $thumbs[] = THUMBS_URL.'/'. $thumbDir . $thumb_file;
else else
$thumbs[] = $thumb_file; $thumbs[] = $thumb_file;
} }
//Saving Original Thumbs
if (is_original($thumb_file)){
if($return_full_path)
$original_thumbs[] = THUMBS_URL.'/'. $thumbDir . $thumb_file;
else
$original_thumbs[] = $thumb_file;
}
}elseif(file_exists($thumb)) }elseif(file_exists($thumb))
unlink($thumb); unlink($thumb);
} }
#pr($thumbs,true);
if(count($thumbs)==0) if(count($thumbs)==0)
{ {
if($count) if($count)
@ -243,8 +251,18 @@ function get_thumb($vdetails,$num='default',$multi=false,$count=false,$return_fu
} }
else else
{ {
if($multi)
return $thumbs; //Initializing thumbs settings
$thumbs_res_settings = thumbs_res_settings_28();
if($multi){
if (!empty($original_thumbs) && $size == 'original'){
return $original_thumbs;
}else{
return $thumbs;
}
}
if($count) if($count)
return count($thumbs); return count($thumbs);
@ -257,20 +275,41 @@ function get_thumb($vdetails,$num='default',$multi=false,$count=false,$return_fu
{ {
$num = 'big-'.$vdetails['default_thumb']; $num = 'big-'.$vdetails['default_thumb'];
if(!file_exists(THUMBS_DIR.'/'.$vdetails['file_name'].'-'.$num.'.jpg')) $num_big_28 = implode('x', $thumbs_res_settings['320']).'-'.$vdetails['default_thumb'];
$num = 'big';
$big_thumb_cb26 = THUMBS_DIR.'/'.$vdetails['file_name'].'-'.$num.'.jpg';
$big_thumb_cb27 = THUMBS_DIR.'/'.$thumbDir.$vdetails['file_name'].'-'.$num.'.jpg';
$big_thumb_cb28 = THUMBS_DIR.'/'.$thumbDir.$vdetails['file_name'].'-'.$num_big_28.'.jpg';
if(file_exists($big_thumb_cb26)){
return THUMBS_URL.'/'.$vdetails['file_name'].'-'.$num.'.jpg';
}elseif (file_exists($big_thumb_cb27)){
return THUMBS_URL.'/'.$thumbDir.$vdetails['file_name'].'-'.$num.'.jpg';
}elseif (file_exists($big_thumb_cb28)){
return THUMBS_URL.'/'.$thumbDir.$vdetails['file_name'].'-'.$num_big_28.'.jpg';
}
} }
$default_thumb = array_find($vdetails['file_name'].'-'.$num,$thumbs); $default_thumb = array_find($vdetails['file_name'].'-'.$size.'-'.$num,$thumbs);
if(!empty($default_thumb)) if(!empty($default_thumb)){
return $default_thumb; return $default_thumb;
return $thumbs[0]; }
elseif(empty($default_thumb)){
$default_thumb = array_find($vdetails['file_name'].'-'.$num,$thumbs);
if (!empty($default_thumb)){
return $default_thumb;
}else{
return $thumbs[0];
}
}
} }
} }
/** /**
* Function used to check weaether given thumb is big or not * Function used to check weaether given thumb is big or not
*/ */
@ -281,6 +320,18 @@ function is_big($thumb_file)
else else
return false; return false;
} }
/**
* Function used to check weaether given thumb is original or not
*/
function is_original($thumb_file)
{
if(strstr($thumb_file,'original'))
return true;
else
return false;
}
function GetThumb($vdetails,$num='default',$multi=false,$count=false) function GetThumb($vdetails,$num='default',$multi=false,$count=false)
{ {
@ -904,24 +955,28 @@ function get_thumb_num($name)
/** /**
* Function used to remove thumb * Function used to remove specific thumbs number
*/ */
function delete_video_thumb($file_dir,$file) function delete_video_thumb($file_dir,$file_name,$num)
{ {
global $LANG; global $LANG;
if($file_dir!=NULL){ if(!empty($file_dir)){
$path = THUMBS_DIR.'/'.$file_dir.'/'.$file; $files = glob(THUMBS_DIR.'/'.$file_dir.'/'.$file_name.'*'.$num.'.*');
} }
else{ else{
$path = THUMBS_DIR.'/'.$file; $files = glob(THUMBS_DIR.'/'.$file_name.'*'.$num.'.*');
} }
//pr($files,true);
if(file_exists($path))
{ if ($files){
unlink($path); foreach ($files as $key => $file){
if (file_exists($file)){
unlink($file);
}
}
e(lang('video_thumb_delete_msg'),'m'); e(lang('video_thumb_delete_msg'),'m');
}else{ }else{
e(lang('video_thumb_delete_err')); e(lang('video_thumb_delete_err'));
} }
} }
@ -1318,7 +1373,7 @@ function get_video_files($vdetails,$return_default=true,$with_path=true,$multi=f
function upload_thumb($array) function upload_thumb($array)
{ {
global $file_name,$LANG; global $file_name,$LANG,$Upload;
//Get File Name //Get File Name
$file = $array['name']; $file = $array['name'];
@ -1336,14 +1391,32 @@ function upload_thumb($array)
//exit($file_directory); //exit($file_directory);
} }
if($image->ValidateImage($array['tmp_name'],$ext)){ if($image->ValidateImage($array['tmp_name'],$ext)){
$file = BASEDIR.'/files/thumbs/'.$file_directory.$_POST['file_name'].'.'.$ext;
$bfile = BASEDIR.'/files/thumbs/'.$file_directory.$_POST['file_name'].'.-big.'.$ext; $imageDetails = getimagesize($array['tmp_name']);
if(!file_exists($file)) $file_num = $Upload->get_available_file_num($_POST['file_name']);
{ $temp_file = THUMBS_DIR.'/'.$file_directory.'/'.$_POST['file_name'].'-'.$file_num.'.'.$ext;
move_uploaded_file($array['tmp_name'],$file);
$image->CreateThumb($file,$bfile,config('big_thumb_width'),$ext,config('big_thumb_height'),false); move_uploaded_file($array['tmp_name'],$temp_file);
$image->CreateThumb($file,$file,THUMB_WIDTH,$ext,THUMB_HEIGHT,false);
$thumbs_settings_28 = thumbs_res_settings_28();
foreach ($thumbs_settings_28 as $key => $thumbs_size) {
$height_setting = $thumbs_size[1];
$width_setting = $thumbs_size[0];
if ( $key != 'original' ){
$dimensions = implode('x',$thumbs_size);
}else{
$dimensions = 'original';
$width_setting = $imageDetails[0];
$height_setting = $imageDetails[1];
}
$outputFilePath = THUMBS_DIR.'/'.$file_directory.'/'.$_POST['file_name'].'-'.$dimensions.'-'.$file_num.'.'.$ext;
//echo $outputFilePath.'<br>';
$image->CreateThumb($temp_file,$outputFilePath,$width_setting,$ext,$height_setting,false);
} }
unlink($temp_file);
}else{ }else{
e(lang('vdo_thumb_up_err')); e(lang('vdo_thumb_up_err'));
} }
@ -1528,4 +1601,108 @@ function is_phone_user( $data )
} }
} }
} }
/**
* @author : Fahad Abbas
* @param : { Null }
* @return : { Array } { Clipbucket version 2.8 thumbs default settings }
* @date : 02-03-2016
*/
function thumbs_res_settings_28(){
$thumbs_res_settings = array(
"original" => "original",
'80' => array('128','80'),
'240' => array('384','240'),
'320' => array('512','320'),
'480' => array('768','480')
);
return $thumbs_res_settings;
}
/**
* @author : Fahad Abbas
* @param : { Array } { Video Details }
* @return : { Variable or boolean } { Max resolution file }
* @date : 03-03-2016
*/
function get_high_res_file($vdetails,$dir=false){
//Getting video Files array
$video_files = $vdetails['video_files'];
$video_files = json_decode($video_files,true);
//Getting video actual files source
$v_files = get_video_files($vdetails,true,true);
if (empty($v_files)){
return false;
}
//Checking if video_files field is not empty (greater versions than CB 2.8)
if (!empty($video_files)){
$pre_check_file = $video_files[0];
if (is_int($pre_check_file)){
$max_file_res = max($video_files);
}else{
if (in_array("hd", $video_files)) {
$max_file_res = "hd";
}else{
$max_file_res = "sd";
}
}
}else{
//Checking if video_files field is empty (lower versions than CB 2.8.1)
foreach ($v_files as $key => $file) {
$video_files[] = get_video_file_quality($file);
}
$pre_check_file = $video_files[0];
if (is_int($pre_check_file)){
$max_file_res = max($video_files);
}else{
if (in_array("hd", $video_files)) {
$max_file_res = "hd";
}else{
$max_file_res = "sd";
}
}
}
// now saving the max resolution file in a variable
if ($dir){
$Ext = GetExt($v_files[0]);
$max_res_file = VIDEOS_DIR.'/'.$vdetails['file_directory'].'/'.$vdetails['file_name'].'-'.$max_file_res.'.'.$Ext;
}else{
foreach ($v_files as $key => $file) {
$video_quality = get_video_file_quality($file);
if ($max_file_res == $video_quality){
$max_res_file = $file;
}
}
}
if (!empty($max_res_file)){
return $max_res_file;
}else{
return false;
}
}
/**
* @author : Fahad Abbas
* @param : { Var } { quality of input file }
* @return : { Variable } { resolution of a file }
* @date : 03-03-2016
*/
function get_video_file_quality($file){
$quality = explode('-',$file);
$quality = end($quality);
$quality = explode('.',$quality);
$quality = $quality[0];
return $quality;
}

View file

@ -10,7 +10,7 @@
<span class="duration">{if <span class="duration">{if
$video.duration>1}{$video.duration|SetTime}{else}00:00{/if}{*$video.duration|date_format:$config.time*} $video.duration>1}{$video.duration|SetTime}{else}00:00{/if}{*$video.duration|date_format:$config.time*}
</span> </span>
<img class="img" src="{getThumb vdetails=$video size=500x283 } " border="1" /> <img class="img" src="{getThumb vdetails=$video size=384x240 } " border="1" />
</a> </a>
{ANCHOR place='in_video_thumb' data=$video} {ANCHOR place='in_video_thumb' data=$video}
<img src="{$imageurl}/dot.gif" data-quick="quick-{$video.videoid}" <img src="{$imageurl}/dot.gif" data-quick="quick-{$video.videoid}"