From 1a803170ca2675f121db41656cd7817fd7741105 Mon Sep 17 00:00:00 2001 From: Zankaria Date: Thu, 9 Oct 2025 22:49:18 +0200 Subject: [PATCH] ffmpeg.php: do ffprobe checks early on --- inc/lib/webm/ffmpeg.php | 36 +++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/inc/lib/webm/ffmpeg.php b/inc/lib/webm/ffmpeg.php index dfd22d81..c6160f6c 100644 --- a/inc/lib/webm/ffmpeg.php +++ b/inc/lib/webm/ffmpeg.php @@ -59,6 +59,23 @@ function is_valid_webm($ffprobe_out) { if (empty($ffprobe_out)) { return [ 'error' => [ 'code' => 1, 'msg' => $config['error']['genwebmerror'] ] ]; } + if ($ffprobe_out['format']['duration'] > $config['webm']['max_length']) { + return [ + 'error' => [ + 'code' => 4, + 'msg' => sprintf($config['error']['webmtoolong'], $config['webm']['max_length']) . 'error 6' + ] + ]; + } + if ((count($ffprobe_out['streams']) > 1) && (!$config['webm']['allow_audio'])) { + return [ + 'error' => [ + 'code' => 3, + 'msg' => $config['error']['webmhasaudio'] . 'error 4' + ] + ]; + } + $trackmap = locate_webm_tracks($ffprobe_out); // one video track @@ -72,8 +89,8 @@ function is_valid_webm($ffprobe_out) { } // If there's more than one video, yolo it $videoidx = $trackmap['videoat'][0]; + $extension = \pathinfo($ffprobe_out['format']['filename'], \PATHINFO_EXTENSION); - $extension = pathinfo($ffprobe_out['format']['filename'], PATHINFO_EXTENSION); if ($extension === 'webm' && !stristr($ffprobe_out['format']['format_name'], 'mp4')) { if ($ffprobe_out['format']['format_name'] != 'matroska,webm') { return [ @@ -101,14 +118,6 @@ function is_valid_webm($ffprobe_out) { ] ]; } - if ((count($ffprobe_out['streams']) > 1) && (!$config['webm']['allow_audio'])) { - return [ - 'error' => [ - 'code' => 3, - 'msg' => $config['error']['webmhasaudio'] . 'error 4' - ] - ]; - } if ((count($trackmap['audioat']) > 0) && !$config['webm']['allow_audio']) { return [ 'error' => [ @@ -117,14 +126,7 @@ function is_valid_webm($ffprobe_out) { ] ]; } - if ($ffprobe_out['format']['duration'] > $config['webm']['max_length']) { - return [ - 'error' => [ - 'code' => 4, - 'msg' => sprintf($config['error']['webmtoolong'], $config['webm']['max_length']) . 'error 6' - ] - ]; - } + return [ 'error' => [], 'trackmap' => $trackmap