Optimize stream defaults for weak connections
This commit is contained in:
30
AGENTS.md
30
AGENTS.md
@@ -88,6 +88,7 @@ Common HTTP input args:
|
||||
- `-loglevel ${FFMPEG_LOG_LEVEL}`
|
||||
- `-nostats`
|
||||
- `-seekable ${FFMPEG_INPUT_SEEKABLE}`
|
||||
- HTTP reconnect options when `FFMPEG_HTTP_RECONNECT=1` and the input is HTTP(S)
|
||||
- `-re`
|
||||
- `-i <inputUrl>`
|
||||
|
||||
@@ -97,15 +98,17 @@ Audio output:
|
||||
|
||||
- Maps `0:a:0?`
|
||||
- Disables video with `-vn`
|
||||
- Converts to stereo 48 kHz MP3 with `libmp3lame`
|
||||
- Uses `session.options.audioBitrate`, default `160k`
|
||||
- Converts to MP3 with `libmp3lame`
|
||||
- Uses `session.options.audioBitrate`, default `64k`
|
||||
- Uses `session.options.audioChannels`, default `1`
|
||||
- Uses `session.options.audioSampleRate`, default `44100`
|
||||
- Outputs to `pipe:1`
|
||||
|
||||
Frame output:
|
||||
|
||||
- Maps `0:v:0`
|
||||
- Disables audio with `-an`
|
||||
- Applies `fps=<fps>,scale=w='min(<width>,iw)':h=-2:flags=bicubic:out_range=pc,format=yuvj420p`
|
||||
- Applies `fps=<fps>,scale=w='min(<width>,iw)':h=-2:flags=fast_bilinear:out_range=pc,format=yuvj420p`
|
||||
- Encodes `mjpeg`
|
||||
- Uses `-pix_fmt yuvj420p`, `-color_range pc`, `-q:v <quality>`
|
||||
- Outputs `image2pipe` to either `pipe:1` or `pipe:3`
|
||||
@@ -171,22 +174,33 @@ Runtime:
|
||||
- `FFMPEG_PATH`: ffmpeg binary path, default `ffmpeg`.
|
||||
- `FFMPEG_LOG_LEVEL`: ffmpeg log level, default `warning`.
|
||||
- `FFMPEG_INPUT_SEEKABLE`: HTTP input seekable option, default `0`.
|
||||
- `FFMPEG_HTTP_RECONNECT`: enable ffmpeg HTTP reconnect options for HTTP inputs, default `1`.
|
||||
- `FFMPEG_HTTP_RECONNECT_DELAY_MAX`: max ffmpeg reconnect delay, default `2`.
|
||||
- `FFMPEG_HTTP_RECONNECT_MAX_RETRIES`: max ffmpeg reconnect retries, default `4`.
|
||||
- `FFMPEG_HTTP_RECONNECT_ON_HTTP_ERROR`: HTTP status list for reconnect, default `5xx`.
|
||||
- `PLAYBACK_CONNECTION_MODE`: `split`, `relay`, or `single`.
|
||||
- `RECENT_URLS_PATH`: recent URL JSON path.
|
||||
- `RECENT_URL_LIMIT`: recent URL count, default `12`.
|
||||
- `FAVORITES_PATH`: favorites JSON path.
|
||||
- `FAVORITES_LIMIT`: favorites count, default `50`.
|
||||
- `JPEG_QUALITY`: default JPEG quality, fallback `7`, clamped `2..18`; lower is better for ffmpeg `-q:v`.
|
||||
- `MAX_WS_BUFFER_BYTES`: server-side WebSocket JPEG frame backlog cap, default `2097152`.
|
||||
- `DEFAULT_FPS`: default frame rate, fallback `8`, clamped `1..30`.
|
||||
- `DEFAULT_FRAME_WIDTH`: default maximum frame width, fallback `480`, clamped `160..1920`.
|
||||
- `JPEG_QUALITY`: default JPEG quality, fallback `12`, clamped `2..18`; lower is better for ffmpeg `-q:v`.
|
||||
- `DEFAULT_AUDIO_BITRATE`: default MP3 audio bitrate, fallback `64k`.
|
||||
- `DEFAULT_AUDIO_CHANNELS`: default MP3 audio channels, fallback `1`, clamped `1..2`.
|
||||
- `DEFAULT_AUDIO_SAMPLE_RATE`: default MP3 audio sample rate, fallback `44100`, clamped `22050..48000`.
|
||||
- `MAX_WS_BUFFER_BYTES`: server-side WebSocket JPEG frame backlog cap, default `524288`.
|
||||
- `MAX_AUDIO_QUEUE_BYTES`: single-mode audio output queue cap, default `16777216`.
|
||||
- `MAX_RELAY_BRANCH_QUEUE_BYTES`: relay per-branch compressed-input queue cap, default `16777216`.
|
||||
|
||||
Session playback options are accepted by `POST /api/session` even though the UI hides them:
|
||||
|
||||
- `fps`: default `24`, clamped `1..30`.
|
||||
- `width`: default `960`, clamped `160..1920`.
|
||||
- `fps`: default `8`, clamped `1..30`.
|
||||
- `width`: default `480`, clamped `160..1920`.
|
||||
- `quality`: defaults to `JPEG_QUALITY`, clamped `2..18`; lower is better for ffmpeg `-q:v`.
|
||||
- `audioBitrate`: default `160k`, accepts two or three digits followed by `k`.
|
||||
- `audioBitrate`: default `64k`, accepts two or three digits followed by `k`.
|
||||
- `audioChannels`: default `1`, clamped `1..2`.
|
||||
- `audioSampleRate`: default `44100`, clamped `22050..48000`.
|
||||
|
||||
## Docker Notes
|
||||
|
||||
|
||||
Reference in New Issue
Block a user