From 1ed888611aa73b1abc20c977ee056f1f790c022f Mon Sep 17 00:00:00 2001 From: Shish <shish@shishnet.org> Date: Sun, 9 Sep 2018 10:21:56 +0100 Subject: [PATCH] drop support for video without ffmpeg --- ext/handle_video/main.php | 76 +++++++++++++-------------------------- 1 file changed, 25 insertions(+), 51 deletions(-) diff --git a/ext/handle_video/main.php b/ext/handle_video/main.php index bdde7ea9..0fecb227 100644 --- a/ext/handle_video/main.php +++ b/ext/handle_video/main.php @@ -22,11 +22,9 @@ class VideoFileHandler extends DataHandlerExtension { if($ffmpeg = shell_exec((PHP_OS == 'WINNT' ? 'where' : 'which') . ' ffmpeg')) { //ffmpeg exists in PATH, check if it's executable, and if so, default to it instead of static if(is_executable(strtok($ffmpeg, PHP_EOL))) { - $config->set_default_string('video_thumb_engine', 'ffmpeg'); $config->set_default_string('thumb_ffmpeg_path', 'ffmpeg'); } } else { - $config->set_default_string('video_thumb_engine', 'static'); $config->set_default_string('thumb_ffmpeg_path', ''); } @@ -46,21 +44,9 @@ class VideoFileHandler extends DataHandlerExtension { } public function onSetupBuilding(SetupBuildingEvent $event) { - //global $config; - - $thumbers = array( - 'None' => 'static', - 'ffmpeg' => 'ffmpeg' - ); - $sb = new SetupBlock("Video Thumbnail Options"); - - $sb->add_choice_option("video_thumb_engine", $thumbers, "Engine: "); - - //if($config->get_string("video_thumb_engine") == "ffmpeg") { - $sb->add_label("<br>Path to ffmpeg: "); - $sb->add_text_option("thumb_ffmpeg_path"); - //} + $sb->add_label("<br>Path to ffmpeg: "); + $sb->add_text_option("thumb_ffmpeg_path"); // Some older versions of ffmpeg have trouble with the automatic aspect ratio scaling. // This adds an option in the Board Config to disable the aspect ratio scaling. @@ -87,43 +73,31 @@ class VideoFileHandler extends DataHandlerExtension { $ok = false; - switch($config->get_string("video_thumb_engine")) + $ffmpeg = escapeshellcmd($config->get_string("thumb_ffmpeg_path")); + + $w = (int)$config->get_int("thumb_width"); + $h = (int)$config->get_int("thumb_height"); + $inname = escapeshellarg(warehouse_path("images", $hash)); + $outname = escapeshellarg(warehouse_path("thumbs", $hash)); + + if ($config->get_bool("video_thumb_ignore_aspect_ratio") == true) { - default: - case 'static': - $outname = warehouse_path("thumbs", $hash); - copy("ext/handle_video/thumb.jpg", $outname); - $ok = true; - break; - - case 'ffmpeg': - $ffmpeg = escapeshellcmd($config->get_string("thumb_ffmpeg_path")); - - $w = (int)$config->get_int("thumb_width"); - $h = (int)$config->get_int("thumb_height"); - $inname = escapeshellarg(warehouse_path("images", $hash)); - $outname = escapeshellarg(warehouse_path("thumbs", $hash)); - - if ($config->get_bool("video_thumb_ignore_aspect_ratio") == true) - { - $cmd = escapeshellcmd("{$ffmpeg} -y -i {$inname} -ss 00:00:00.0 -f image2 -vframes 1 {$outname}"); - } - else - { - $scale = 'scale="' . escapeshellarg("if(gt(a,{$w}/{$h}),{$w},-1)") . ':' . escapeshellarg("if(gt(a,{$w}/{$h}),-1,{$h})") . '"'; - $cmd = escapeshellcmd("{$ffmpeg} -y -i {$inname} -vf {$scale} -ss 00:00:00.0 -f image2 -vframes 1 {$outname}"); - } - - exec($cmd, $output, $returnValue); - - if ((int)$returnValue == (int)1) - { - $ok = true; - } - - log_debug('handle_video', "Generating thumbnail with command `$cmd`, returns $returnValue"); - break; + $cmd = escapeshellcmd("{$ffmpeg} -y -i {$inname} -ss 00:00:00.0 -f image2 -vframes 1 {$outname}"); } + else + { + $scale = 'scale="' . escapeshellarg("if(gt(a,{$w}/{$h}),{$w},-1)") . ':' . escapeshellarg("if(gt(a,{$w}/{$h}),-1,{$h})") . '"'; + $cmd = escapeshellcmd("{$ffmpeg} -y -i {$inname} -vf {$scale} -ss 00:00:00.0 -f image2 -vframes 1 {$outname}"); + } + + exec($cmd, $output, $returnValue); + + if ((int)$returnValue == (int)1) + { + $ok = true; + } + + log_debug('handle_video', "Generating thumbnail with command `$cmd`, returns $returnValue"); return $ok; }