fix: switch HLS back to lowLatency — mpegts can't mux VP8/VP9 from browser publish

mpegts (moved to earlier for OBS B-frame stability) only supports H264.
Browser (WHIP) publishing sends VP8 or VP9 depending on the machine's
available encoders, which mpegts can't mux at all — confirmed live,
'the MPEG-TS variant of HLS supports H264 video only' crash loop.
lowLatency supports the broader codec set browser publishing actually
needs.

Real risk, not resolved by this alone: lowLatency is what caused the
original OBS B-frame muxer crashes this session already fixed once by
moving to mpegts. If that recurs, the correct fix is two MediaMTX
instances (one per hlsVariant) since it's a global, not per-path,
setting — not flip-flopping between the two.
This commit is contained in:
2026-08-11 11:45:13 +00:00
parent 9ca1cb457d
commit 17e3ac747c
+16 -7
View File
@@ -25,13 +25,22 @@ rtmpAddress: :1935
hls: yes hls: yes
hlsAddress: :8888 hlsAddress: :8888
# Standard HLS, not lowLatency: LL-HLS's small per-part buffering window has very little # Switched from mpegts back to lowLatency (2026-08-11): mpegts can only mux
# tolerance for B-frame reordering (common in most OBS encoder presets), and a real test # H264, and browser (WHIP) publishing sends VP8/VP9 depending on the
# stream crashed the muxer twice in ~2 minutes with "too many reordered frames" / "unable to # machine's available encoders — confirmed live, mpegts crashed with "the
# extract DTS" once frame timing got even slightly irregular. Standard HLS buffers a full # MPEG-TS variant of HLS supports H264 video only" for a VP9 browser stream.
# segment before finalizing, which absorbs that jitter — a few extra seconds of latency # lowLatency supports AV1/VP9/H265/H264/Opus, so it's required for browser
# instead of intermittent muxer crashes / viewer buffering. # publishing to produce any HLS output at all.
hlsVariant: mpegts #
# Known risk: this is the variant that was moved AWAY from earlier — LL-HLS's
# small per-part buffering window has very little tolerance for B-frame
# reordering (common in most OBS encoder presets), and a real OBS test
# stream crashed the muxer twice in ~2 minutes with "too many reordered
# frames" / "unable to extract DTS" once frame timing got even slightly
# irregular. If that recurs, the real fix is running two MediaMTX instances
# (mpegts for RTMP/OBS, lowLatency for WHIP/browser) since hlsVariant is a
# global setting with no per-path override — not flipping back and forth.
hlsVariant: lowLatency
hlsAlwaysRemux: yes hlsAlwaysRemux: yes
hlsAllowOrigins: ["*"] hlsAllowOrigins: ["*"]