Adjust nginx proc count based on available CPUs (#11653)

* Restrict nginx to 4 processes if more are available

* Fix bash

* Different sed structure

* Limit ffmpeg thread counts for secondary ffmpeg processes

* Add up / down keyboard shortcut
This commit is contained in:
Nicolas Mowen 2024-05-30 11:34:01 -06:00 committed by GitHub
parent 402c16e7df
commit 142641b387
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 37 additions and 2 deletions

View File

@ -8,6 +8,19 @@ set -o errexit -o nounset -o pipefail
echo "[INFO] Starting NGINX..."
function set_worker_processes() {
# Capture number of assigned CPUs to calculate worker processes
local proc_count
if proc_count=$(nproc --all) && [[ $proc_count -gt 4 ]]; then
proc_count=4;
fi
sed -i "s/worker_processes auto;/worker_processes ${proc_count};/" /usr/local/nginx/conf/nginx.conf
}
set_worker_processes
# Replace the bash process with the NGINX process, redirecting stderr to stdout
exec 2>&1
exec nginx

View File

@ -50,11 +50,13 @@ def get_ffmpeg_command(ffmpeg: FfmpegConfig) -> list[str]:
or get_ffmpeg_arg_list(ffmpeg.input_args)
)
return (
["ffmpeg", "-vn"]
["ffmpeg", "-vn", "-threads", "1"]
+ input_args
+ ["-i"]
+ [ffmpeg_input.path]
+ [
"-threads",
"1",
"-f",
f"{AUDIO_FORMAT}",
"-ar",

View File

@ -134,6 +134,8 @@ class FFMpegConverter(threading.Thread):
ffmpeg_cmd = [
"ffmpeg",
"-threads",
"1",
"-f",
"rawvideo",
"-pix_fmt",
@ -142,6 +144,8 @@ class FFMpegConverter(threading.Thread):
f"{in_width}x{in_height}",
"-i",
"pipe:",
"-threads",
"1",
"-f",
"mpegts",
"-s",

View File

@ -31,6 +31,8 @@ class FFMpegConverter(threading.Thread):
ffmpeg_cmd = [
"ffmpeg",
"-threads",
"1",
"-f",
"rawvideo",
"-pix_fmt",
@ -39,6 +41,8 @@ class FFMpegConverter(threading.Thread):
f"{in_width}x{in_height}",
"-i",
"pipe:",
"-threads",
"1",
"-f",
"mpegts",
"-s",

View File

@ -139,6 +139,11 @@ export default function VideoControls({
const onKeyboardShortcut = useCallback(
(key: string, down: boolean, repeat: boolean) => {
switch (key) {
case "ArrowDown":
if (down) {
onSeek(-1);
}
break;
case "ArrowLeft":
if (down) {
onSeek(-10);
@ -149,6 +154,11 @@ export default function VideoControls({
onSeek(10);
}
break;
case "ArrowUp":
if (down) {
onSeek(1);
}
break;
case "f":
if (setFullscreen && down && !repeat) {
setFullscreen(!fullscreen);
@ -171,7 +181,9 @@ export default function VideoControls({
[video, isPlaying, fullscreen, setFullscreen, onSeek],
);
useKeyboardListener(
hotKeys ? ["ArrowLeft", "ArrowRight", "f", "m", " "] : [],
hotKeys
? ["ArrowDown", "ArrowLeft", "ArrowRight", "ArrowUp", "f", "m", " "]
: [],
onKeyboardShortcut,
);