if($output_options->encode_media=="create_gif") { $output_gif= ".." . $settings->directory . $output_file .$output_options->format .".gif"; $docmime= checkFinfo($input_file); $doctype=explode("/",$docmime)[0]; if ($doctype!="video"){ $output_options->error_message= "We only create gifs from a video - it must be the first video in the media list."; $returnFiles = returnFiles ( $output_options, $output_file .$output_options->format . '.mp4', "video/mp4", '', null ); return $returnFiles; } $cmd = "ffmpeg -i ".$input_file." -y -vf fps=".$settings->settings->movie_frame_rate.",scale=".$settings->settings->video_width.":".$settings->settings->video_height.",palettegen palette.png 2>&1"; // $cmd = "ffmpeg -i ".$input_file." -y -vf fps=10,scale=".$settings->settings->video_width.":".$settings->settings->video_height.",palettegen palette.png 2>&1"; $result=shell_exec($cmd); $first_media=json_decode($settings->add_media)[0]; // $cmd = "ffmpeg -ss ".$first_media->add_media_start." -t ".$first_media->add_media_duration." -i ".$input_file." -i palette.png -y -filter_complex \"fps=10[x];[x][1:v]paletteuse\" ".$output_gif." "; $cmd = "ffmpeg -ss ".$first_media->add_media_start." -t ".$first_media->add_media_duration." -i ".$input_file." -i palette.png -y -filter_complex \"fps=".$settings->settings->movie_frame_rate.",scale=".$settings->settings->video_width.":".$settings->settings->video_height.":flags=lanczos[x];[x][1:v]paletteuse\" ".$output_gif." "; ffmpegMsg("ffmpeg","Creating Gif ", 0,$cmd); /* [...] 34 lines elided: ImageMagick mogrify frame-optimisation options, left disabled because they delayed output */ $output_options->edited_url= $output_options->options->directory.$output_file .$output_options->format . '.gif'; $output_options->edited_name= $output_file .$output_options->format . '.gif'; $output_options->edited_type = "image/gif"; $output_options->edited_filetype = explode ( "/", "image/gif"); insert_document($output_options->edited_url,"image/gif",$output_options->edited_name,"image","edited"); $returnFiles = returnFiles ( $output_options, $output_file .$output_options->format . '.mp4', "video/mp4", '', null );