145 lines
7.1 KiB
PHP
145 lines
7.1 KiB
PHP
<?
|
|
|
|
// Yuba Preview Tester 0.1.6
|
|
|
|
//print_r($argv);
|
|
|
|
$mode = $argv[1];
|
|
|
|
// Bundled tools
|
|
$bin_gfi = __DIR__."/bin/GetFileInfo";
|
|
$bin_mediainfo = __DIR__."/bin/mediainfo";
|
|
$bin_exiftool = __DIR__."/bin/exiftool";
|
|
$bin_ffmpeg = __DIR__."/bin/ffmpeg";
|
|
$bin_qlthumb = __DIR__."/bin/ql-thumbnail";
|
|
$bin_qlicon = __DIR__."/bin/ql-icon";
|
|
$bin_qltool = __DIR__."/bin/qltool";
|
|
$bin_sox = __DIR__."/bin/sox";
|
|
$bin_pngquant = __DIR__."/bin/pngquant";
|
|
$bin_parallel = __DIR__."/bin/parallel";
|
|
$bin_convert = __DIR__."/bin/convert";
|
|
|
|
$bin_zqlicon = __DIR__."/bin/zql-icon";
|
|
$bin_zicon = __DIR__."/bin/zicon";
|
|
|
|
// System tools
|
|
$bin_php = "php";
|
|
$bin_qlmanage = "qlmanage";
|
|
$bin_sips = "sips";
|
|
|
|
// External tools
|
|
$bin_vips = "/opt/local/bin/vipsthumbnail";
|
|
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
if (empty(shell_exec("which ".$bin_vips))) { echo "Binary not found: ".$bin_vips."\n"; }
|
|
|
|
if (empty($argv[2])) { echo "Nothing dragged"; die; }
|
|
|
|
$p['icon_size'] = 512;
|
|
$p['thumb_size'] = 1024;
|
|
|
|
$shellpath = escapeshellarg($argv[2]);
|
|
$tprefix = "/tmp/tester/".md5($shellpath.time())."/";
|
|
$wprefix = "/tmp/tester/".md5($shellpath.time())."_work/";
|
|
mkdir($tprefix,0777,true);
|
|
mkdir($wprefix,0777,true);
|
|
|
|
if ($mode == "thumb") {
|
|
|
|
$cmd['ql-thumbnail'][] = $bin_qlthumb." ".$shellpath." ".$tprefix."ql-thumbnail.jpg public.jpeg ".$p['thumb_size']." ".$p['thumb_size']." .8";
|
|
$cmd['ql-thumbnail'][] = $tprefix."ql-thumbnail.jpg";
|
|
|
|
$cmd['sips'][] = $bin_sips." -s format jpeg -s formatOptions 80 -Z ".$p['thumb_size']." ".$shellpath." --out ".$tprefix."sips.jpg"; // add ?? "-d profile --deleteColorManagementProperties"
|
|
$cmd['sips'][] = $tprefix."sips.jpg";
|
|
|
|
$cmd['convert'][] = $bin_convert." -density 300 ".$shellpath."[0] -scale ".$p['thumb_size']."x".$p['thumb_size']." -quality 95 ".$tprefix."convert.jpg";;
|
|
$cmd['convert'][] = $tprefix."convert.jpg";
|
|
|
|
$cmd['vips'][] = $bin_vips." ".$shellpath." -o ".$tprefix."vips.jpg[Q=90,optimize_coding] --size=".$p['thumb_size'];
|
|
$cmd['vips'][] = $tprefix."vips.jpg";
|
|
|
|
$cmd['qltool'][] = $bin_qltool." dp ".$shellpath." ".$p['thumb_size']." ".$p['thumb_size']." | base64 --decode | ".$bin_convert." - -scale 50% -strip -define png:compression-level=9 ".$tprefix."qltool.png";
|
|
$cmd['qltool'][] = $tprefix."qltool.png";
|
|
|
|
$cmd['qlmanage'][] = $bin_qlmanage." -t -s ".$p['thumb_size']." -o ".$wprefix." ".$shellpath." ; mv ".escapeshellarg($wprefix.basename($argv[2]).".png")." ".$tprefix."qlmanage.png";
|
|
$cmd['qlmanage'][] = $tprefix."qlmanage.png";
|
|
|
|
$cmd['sox_q'][] = $bin_sox." ".$shellpath." -n trim 0 $(".$bin_exiftool." -s -s -s -duration# ".$shellpath." | awk '{print $1/10}') spectrogram -o - | ".$bin_pngquant." - -o ".$tprefix."sox-quant.png";
|
|
$cmd['sox_q'][] = $tprefix."sox-quant.png";
|
|
|
|
$cmd['sox_c'][] = $bin_sox." ".$shellpath." -n trim 0 $(".$bin_exiftool." -s -s -s -duration# ".$shellpath." | awk '{print $1/10}') spectrogram -o - | ".$bin_convert." - -quality 85% ".$tprefix."sox-convert.jpg";
|
|
$cmd['sox_c'][] = $tprefix."sox-convert.jpg";
|
|
|
|
$cmd['sox_cx'][] = $bin_sox." ".$shellpath." -n remix - trim 0 $(".$bin_exiftool." -s -s -s -duration# ".$shellpath." | awk '{print $1/20}') spectrogram -r -o - | ".$bin_convert." - -quality 85% ".$tprefix."sox-convert_x.jpg";
|
|
$cmd['sox_cx'][] = $tprefix."sox-convert_x.jpg";
|
|
|
|
$cmd['sox_cy'][] = $bin_sox." ".$shellpath." -n remix - trim 0 $(".$bin_exiftool." -s -s -s -duration# ".$shellpath." | awk '{print $1/4}') spectrogram -r -o - | ".$bin_convert." - -quality 85% ".$tprefix."sox-convert_y.jpg";
|
|
$cmd['sox_cy'][] = $tprefix."sox-convert_y.jpg";
|
|
|
|
$cmd['sox_cz'][] = $bin_sox." ".$shellpath." -n remix - spectrogram -r -o - | ".$bin_convert." - -quality 85% ".$tprefix."sox-convert_all.jpg";
|
|
$cmd['sox_cz'][] = $tprefix."sox-convert_all.jpg";
|
|
|
|
$cmd['sox_s'][] = $bin_sox." ".$shellpath." -n trim 0 $(".$bin_exiftool." -s -s -s -duration# ".$shellpath." | awk '{print $1/10}') spectrogram -o ".escapeshellarg($wprefix.basename($argv[2]).".png")."; ".$bin_sips." -s format jpeg -s formatOptions 80 ".escapeshellarg($wprefix.basename($argv[2]).".png")." --out ".$tprefix."sox-sips.jpg";
|
|
$cmd['sox_s'][] = $tprefix."sox-sips.jpg";
|
|
|
|
$cmd['ffmpeg'][] = $bin_ffmpeg." -ss $(( $(".$bin_mediainfo." --Inform='Video;%Duration%' ".$shellpath." | cut -d'.' -f1) / 10000 )) -i ".$shellpath." -vframes 1 -filter:v scale='".$p['thumb_size'].":-2' -q:v 3 ".$tprefix."ffmpeg.jpg"; // only works properly on horizontal videos
|
|
$cmd['ffmpeg'][] = $tprefix."ffmpeg.jpg";
|
|
|
|
} elseif ($mode == "icon") {
|
|
|
|
$cmd['qltool'][] = $bin_qltool." di ".$shellpath." ".$p['icon_size']." ".$p['icon_size']." | base64 --decode | ".$bin_convert." - -scale 50% -strip -define png:compression-level=9 ".$tprefix."qltool.png";
|
|
$cmd['qltool'][] = $tprefix."qltool.png";
|
|
|
|
$cmd['zicon'][] = $bin_zicon." --input=".$shellpath." --width=".$p['icon_size']." --height=".$p['icon_size']." --output=".$tprefix."zicon.png";
|
|
$cmd['zicon'][] = $tprefix."zicon.png";
|
|
|
|
$cmd['qltool_q'][] = $bin_qltool." di ".$shellpath." ".$p['icon_size']." ".$p['icon_size']." | base64 --decode | ".$bin_convert." - -scale 50% - | ".$bin_pngquant." - -o ".$tprefix."qltool_quant.png";
|
|
$cmd['qltool_q'][] = $tprefix."qltool_quant.png";
|
|
|
|
$cmd['zql-icon'][] = $bin_zqlicon." --input=".$shellpath." --width=".$p['icon_size']." --height=".$p['icon_size']." --output=".$tprefix."zql-icon.png";
|
|
$cmd['zql-icon'][] = $tprefix."zql-icon.png";
|
|
|
|
$cmd['ql-icon'][] = $bin_qlicon." --input=".$shellpath." --width=".$p['icon_size']." --height=".$p['icon_size']." --output=".$tprefix."ql-icon.png";
|
|
$cmd['ql-icon'][] = $tprefix."ql-icon.png";
|
|
|
|
$cmd['ql-icon_q'][] = $bin_qlicon." --input=".$shellpath." --width=".$p['icon_size']." --height=".$p['icon_size']." | ".$bin_pngquant." - -o ".$tprefix."ql-icon_quant.png";
|
|
$cmd['ql-icon_q'][] = $tprefix."ql-icon_quant.png";
|
|
|
|
$cmd['qlmanage_sx'][] = $bin_qlmanage." -ti -s ".$p['icon_size']." -o ".$wprefix." ".$shellpath." ; mv ".escapeshellarg($wprefix.basename($argv[2]).".png")." ".$tprefix."qlmanage_size.png";
|
|
$cmd['qlmanage_sx'][] = $tprefix."qlmanage_size.png";
|
|
|
|
$cmd['qlmanage_fx'][] = $bin_qlmanage." -ti -f ".floor($p['icon_size']/128)." -o ".$wprefix." ".$shellpath." ; mv ".escapeshellarg($wprefix.basename($argv[2]).".png")." ".$tprefix."qlmanage_multiplier.png";
|
|
$cmd['qlmanage_fx'][] = $tprefix."qlmanage_multiplier.png";
|
|
|
|
$cmd['qlmanage_zx'][] = $bin_qlmanage." -ti -F ".floor($p['icon_size']/64)." -o ".$wprefix." ".$shellpath." ; sips -z ".$p['icon_size']." ".$p['icon_size']." ".escapeshellarg($wprefix.basename($argv[2]).".png")." --out ".$tprefix."qlmanage_multiplierlarge.png";
|
|
$cmd['qlmanage_zx'][] = $tprefix."qlmanage_multiplierlarge.png";
|
|
|
|
}
|
|
|
|
$i = 1;
|
|
foreach ($cmd as $exec) {
|
|
|
|
$start = microtime(true);
|
|
echo $exec[0]."\n";
|
|
shell_exec($exec[0]);
|
|
$elapsed = substr((microtime(true)-$start),0,4);
|
|
|
|
$ext = pathinfo($exec[1], PATHINFO_EXTENSION);
|
|
$file = pathinfo($exec[1], PATHINFO_FILENAME);
|
|
$dir = pathinfo($exec[1], PATHINFO_DIRNAME);
|
|
|
|
if(!filesize($exec[1])) {
|
|
echo "NO RESULT\n";
|
|
unlink($exec[1]);
|
|
} else {
|
|
rename($exec[1],$dir."/".$i."_".$file."_".$elapsed."msec.".$ext);
|
|
}
|
|
echo "\n \n";
|
|
$i++;
|
|
}
|
|
|
|
shell_exec("qlmanage -p ".$tprefix."/* > /dev/null 2>&1");
|
|
shell_exec("open ".$tprefix);
|
|
|
|
?>
|