unarr/internal/cmd
Deivid Soto 3b8d77b496 feat(hls): faster first-start — probe cache + tighter encoder presets (0.9.9)
Reduces first-segment latency on cache MISS so the player doesn't sit on
"preparando sesión". Three independent levers:

1. ProbeFile memoised by (path, mtime, size) for 30 min — second play of
   the same source skips ffprobe (1-3 s on 50+ GB MKVs).
2. HLS encoder presets biased for latency over quality:
   - libx264 default veryfast → superfast (~15-20% faster, marginal
     quality loss at 5-25 Mbps target bitrates).
   - NVENC: -preset p4 -tune hq → -preset p3 -tune ll. First-segment
     ~0.8 s on RTX-class GPUs (was ~1.5 s).
   - QSV: -preset medium → -preset veryfast (keeps look_ahead=0).
   - VideoToolbox: adds -realtime 1 (was unset). Bitrate args still
     drive rate control; -q:v dropped to avoid the silent conflict
     where ffmpeg ignored it under -b:v.
3. Per-session log surfaces encoder + accel + preset so "first-start
   was slow" complaints can be triaged from the journal alone.

Diagnostic helpers (DetectHWAccelDiagnostic + HWAccelDiagnostic) added
for future wiring into daemon startup / agent register; users today can
already inspect via `unarr probe-hwaccel`.

Web: AgentsTab profile page now shows the agent's chosen encoder
(amber if software libx264, green if HW) plus the transcode-resolution
cap. Hidden for pre-0.9.9 agents that haven't reported hwAccel.
2026-05-27 10:09:42 +02:00
..
agent_client.go feat(agent): add mirror failover, agent client refactor, status 401 detection 2026-05-15 16:26:43 +02:00
auth_browser.go feat(init): add 60s countdown, skip key, and cancel detection to browser auth 2026-03-30 14:07:57 +02:00
auth_browser_test.go feat(auth): browser-based CLI authentication (like Claude Code) 2026-03-29 17:53:18 +02:00
clean.go fix(lint): use default:none to disable errcheck, fix all gofmt and exhaustive 2026-03-31 00:29:16 +02:00
clean_test.go fix(lint): use default:none to disable errcheck, fix all gofmt and exhaustive 2026-03-31 00:29:16 +02:00
completion.go docs: improve CLI help, shell completion, and README 2026-03-28 21:36:27 +01:00
completion_helpers.go docs: improve CLI help, shell completion, and README 2026-03-28 21:36:27 +01:00
config_menu.go feat(library): add server-driven file deletion with allow_delete config 2026-04-10 16:35:12 +02:00
config_menu_test.go feat(cli): upgrade command, rich status, and version cache 2026-03-31 22:05:43 +02:00
daemon.go fix(cors): allow play from .to / staging / onion mirrors 2026-05-27 10:06:54 +02:00
daemon_control.go feat(daemon): enhance service management with start, stop, restart, and status commands for Windows 2026-04-10 19:18:13 +02:00
daemon_install.go feat(daemon): enhance service management with start, stop, restart, and status commands for Windows 2026-04-10 19:18:13 +02:00
daemon_test.go test: add comprehensive test suite for engine, agent and cmd packages 2026-04-08 23:36:00 +02:00
doctor.go chore: rename module from torrentclaw-cli to unarr 2026-03-30 13:06:07 +02:00
doctor_unix.go docs: improve CLI help, shell completion, and README 2026-03-28 21:36:27 +01:00
doctor_windows.go docs: improve CLI help, shell completion, and README 2026-03-28 21:36:27 +01:00
download.go feat(stream)!: retire WebRTC, HLS-only, bump 0.9.4 2026-05-26 18:04:35 +02:00
download_test.go test: add comprehensive test suite for engine, agent and cmd packages 2026-04-08 23:36:00 +02:00
funnel.go feat(funnel): cloudflare quick tunnel embedded subprocess (0.9.5) 2026-05-26 20:39:57 +02:00
helpers.go fix(security): CORS allowlist, URL scheme guard, state perms, ZIP slip, mirror docs 2026-05-15 18:48:59 +02:00
helpers_test.go fix(security): CORS allowlist, URL scheme guard, state perms, ZIP slip, mirror docs 2026-05-15 18:48:59 +02:00
init.go feat(cli): add login command and refactor shared helpers 2026-04-01 12:20:51 +02:00
inspect.go chore: rename module from torrentclaw-cli to unarr 2026-03-30 13:06:07 +02:00
login.go feat(cli): add login command and refactor shared helpers 2026-04-01 12:20:51 +02:00
migrate.go chore: rename module from torrentclaw-cli to unarr 2026-03-30 13:06:07 +02:00
mirrors.go feat(agent): add mirror failover, agent client refactor, status 401 detection 2026-05-15 16:26:43 +02:00
player_session_registry.go feat(stream)!: retire WebRTC, HLS-only, bump 0.9.4 2026-05-26 18:04:35 +02:00
popular.go chore: rename module from torrentclaw-cli to unarr 2026-03-30 13:06:07 +02:00
probe_hwaccel.go feat(stream)!: retire WebRTC, HLS-only, bump 0.9.4 2026-05-26 18:04:35 +02:00
recent.go chore: rename module from torrentclaw-cli to unarr 2026-03-30 13:06:07 +02:00
reload_unix.go feat(daemon): enhance service management with start, stop, restart, and status commands for Windows 2026-04-10 19:18:13 +02:00
reload_windows.go feat(daemon): enhance service management with start, stop, restart, and status commands for Windows 2026-04-10 19:18:13 +02:00
root.go feat(funnel): cloudflare quick tunnel embedded subprocess (0.9.5) 2026-05-26 20:39:57 +02:00
scan.go feat(scan): always scan downloads + organize dirs, deduplicate child paths 2026-04-10 11:46:20 +02:00
search.go chore: rename module from torrentclaw-cli to unarr 2026-03-30 13:06:07 +02:00
self_update.go fix(security): UPnP opt-in, bounded SSE reader, signed self-update 2026-05-15 17:29:22 +02:00
stats.go chore: rename module from torrentclaw-cli to unarr 2026-03-30 13:06:07 +02:00
status.go feat(agent): add mirror failover, agent client refactor, status 401 detection 2026-05-15 16:26:43 +02:00
stream.go test: add comprehensive test suite for engine, agent and cmd packages 2026-04-08 23:36:00 +02:00
stream_handler.go fix(stream): fix black screen on remote/Tailscale streaming 2026-04-09 16:15:41 +02:00
stream_test.go test: add comprehensive test suite for engine, agent and cmd packages 2026-04-08 23:36:00 +02:00
upgrade.go fix(security): UPnP opt-in, bounded SSE reader, signed self-update 2026-05-15 17:29:22 +02:00
version.go feat(hls): faster first-start — probe cache + tighter encoder presets (0.9.9) 2026-05-27 10:09:42 +02:00
version_cmd.go docs: improve CLI help, shell completion, and README 2026-03-28 21:36:27 +01:00
vpn.go feat(vpn): unarr vpn command + report/arbitrate the WireGuard slot 2026-05-22 08:33:02 +02:00
watch.go chore: rename module from torrentclaw-cli to unarr 2026-03-30 13:06:07 +02:00