From 2ba0ebf1719e161fab0dbe00090dd76c10cb616c Mon Sep 17 00:00:00 2001 From: gnattu Date: Tue, 16 Jul 2024 23:02:04 +0800 Subject: [PATCH 1/3] Add VideoToolbox in LabelTrickplayAccelEncodingHelp --- src/strings/en-us.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/strings/en-us.json b/src/strings/en-us.json index 82f4f27366..f27bd5ebd1 100644 --- a/src/strings/en-us.json +++ b/src/strings/en-us.json @@ -1689,7 +1689,7 @@ "Trickplay": "Trickplay", "LabelTrickplayAccel": "Enable hardware decoding", "LabelTrickplayAccelEncoding": "Enable hardware accelerated MJPEG encoding", - "LabelTrickplayAccelEncodingHelp": "Currently only available on QSV and VAAPI, this option has no effect on other hardware acceleration methods.", + "LabelTrickplayAccelEncodingHelp": "Currently only available on QSV, VAAPI and VideoToolbox, this option has no effect on other hardware acceleration methods.", "NonBlockingScan": "Non Blocking - queues generation, then returns", "BlockingScan": "Blocking - queues generation, blocks scan until complete", "LabelScanBehavior": "Scan Behavior", From 9c18cd13b45db594728efca53d182b8fa810e878 Mon Sep 17 00:00:00 2001 From: gnattu Date: Tue, 16 Jul 2024 23:36:42 +0800 Subject: [PATCH 2/3] Add KeyFrameOnlyExtraction option to trckplay panel --- src/apps/dashboard/routes/playback/trickplay.tsx | 13 +++++++++++++ src/strings/en-us.json | 2 ++ 2 files changed, 15 insertions(+) diff --git a/src/apps/dashboard/routes/playback/trickplay.tsx b/src/apps/dashboard/routes/playback/trickplay.tsx index 56f155be6b..df2151ddd4 100644 --- a/src/apps/dashboard/routes/playback/trickplay.tsx +++ b/src/apps/dashboard/routes/playback/trickplay.tsx @@ -33,6 +33,7 @@ const PlaybackTrickplay: FC = () => { (page.querySelector('.chkEnableHwAcceleration') as HTMLInputElement).checked = options?.EnableHwAcceleration || false; (page.querySelector('.chkEnableHwEncoding') as HTMLInputElement).checked = options?.EnableHwEncoding || false; + (page.querySelector('.chkEnableKeyFrameOnlyExtraction') as HTMLInputElement).checked = options?.EnableKeyFrameOnlyExtraction || false; (page.querySelector('#selectScanBehavior') as HTMLSelectElement).value = (options?.ScanBehavior || TrickplayScanBehavior.NonBlocking); (page.querySelector('#selectProcessPriority') as HTMLSelectElement).value = (options?.ProcessPriority || ProcessPriorityClass.Normal); (page.querySelector('#txtInterval') as HTMLInputElement).value = options?.Interval?.toString() || '10000'; @@ -79,6 +80,7 @@ const PlaybackTrickplay: FC = () => { const options = config.TrickplayOptions; options.EnableHwAcceleration = (page.querySelector('.chkEnableHwAcceleration') as HTMLInputElement).checked; options.EnableHwEncoding = (page.querySelector('.chkEnableHwEncoding') as HTMLInputElement).checked; + options.EnableKeyFrameOnlyExtraction = (page.querySelector('.chkEnableKeyFrameOnlyExtraction') as HTMLInputElement).checked; options.ScanBehavior = (page.querySelector('#selectScanBehavior') as HTMLSelectElement).value as TrickplayScanBehavior; options.ProcessPriority = (page.querySelector('#selectProcessPriority') as HTMLSelectElement).value as ProcessPriorityClass; options.Interval = Math.max(1, parseInt((page.querySelector('#txtInterval') as HTMLInputElement).value || '10000', 10)); @@ -169,6 +171,17 @@ const PlaybackTrickplay: FC = () => { +
+ +
+
+ {globalize.translate('LabelTrickplayKeyFrameOnlyExtractionHelp')} +
+
+
diff --git a/src/strings/en-us.json b/src/strings/en-us.json index f27bd5ebd1..8cd8e6141a 100644 --- a/src/strings/en-us.json +++ b/src/strings/en-us.json @@ -1690,6 +1690,8 @@ "LabelTrickplayAccel": "Enable hardware decoding", "LabelTrickplayAccelEncoding": "Enable hardware accelerated MJPEG encoding", "LabelTrickplayAccelEncodingHelp": "Currently only available on QSV, VAAPI and VideoToolbox, this option has no effect on other hardware acceleration methods.", + "LabelTrickplayKeyFrameOnlyExtraction": "Only generate images from key frames", + "LabelTrickplayKeyFrameOnlyExtractionHelp": "Extract key frames only for significantly faster processing with less accurate timing. Not compatible with QSV and NVDEC hardware decoders. Software processing in this mode will be faster than hardware processing not in this mode.", "NonBlockingScan": "Non Blocking - queues generation, then returns", "BlockingScan": "Blocking - queues generation, blocks scan until complete", "LabelScanBehavior": "Scan Behavior", From 1ba945c905a2282fb102ca2c0eddf6bec9b3a86f Mon Sep 17 00:00:00 2001 From: gnattu Date: Wed, 17 Jul 2024 01:50:35 +0800 Subject: [PATCH 3/3] Update help text to reflect new server behavior --- src/strings/en-us.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/strings/en-us.json b/src/strings/en-us.json index 8cd8e6141a..26b38eed7c 100644 --- a/src/strings/en-us.json +++ b/src/strings/en-us.json @@ -1691,7 +1691,7 @@ "LabelTrickplayAccelEncoding": "Enable hardware accelerated MJPEG encoding", "LabelTrickplayAccelEncodingHelp": "Currently only available on QSV, VAAPI and VideoToolbox, this option has no effect on other hardware acceleration methods.", "LabelTrickplayKeyFrameOnlyExtraction": "Only generate images from key frames", - "LabelTrickplayKeyFrameOnlyExtractionHelp": "Extract key frames only for significantly faster processing with less accurate timing. Not compatible with QSV and NVDEC hardware decoders. Software processing in this mode will be faster than hardware processing not in this mode.", + "LabelTrickplayKeyFrameOnlyExtractionHelp": "Extract key frames only for significantly faster processing with less accurate timing. If the configured hardware decoder does not support this mode, will use the software decoder instead.", "NonBlockingScan": "Non Blocking - queues generation, then returns", "BlockingScan": "Blocking - queues generation, blocks scan until complete", "LabelScanBehavior": "Scan Behavior",