On / relay.py

Commit History

19 days ago

  1. Classify RTMPS filter timeouts as output failures⁠ Running

    Verified signature
    5b11b0a

22 days ago

  1. v2.45: port dual ingest and probed canvas fixes

    Arena.ai Agent
    82ecfd4

23 days ago

  1. v2.42 start supervisor: recover a stuck YouTube start by restarting the sender (fresh dual ingest) after 150s unconfirmed, max 3 attempts

    Verified signature
    811af8b

24 days ago

  1. v2.41 dual simultaneous YouTube ingest (primary+backup tee fan-out)

    Verified signature
    70fae27

25 days ago

  1. relay-v2.40-avfill-splice trial: fix splice bias and fill shielding (On only)⁠

    Verified signature
    b1e5f46
  2. relay-v2.39-avfill-fastout trial: faster RTMPS stall recovery during gap fill (On only)⁠

    Verified signature
    5efbe58
  3. relay-v2.38-avfill trial: A/V-complete gap fill (On only)

    Verified signature
    8b5d117

  1. v2.37-fill-span: bound watchdog fill exemption + pump renewal by whole fill episode (fill_until)

    Verified signature
    30421eb
  2. Renew stdin write deadline while gap-filling (v2.36-fill-renewal)

    Verified signature
    a7a6d93
  3. Post-fill/reattach seam credit for write deadline (v2.35-seam-credit)

    Verified signature
    5610400
  4. Keyframe-gated resume + fill-credit write deadline (v2.34-keyframe-gate)

    Verified signature
    4566826
  5. Persistent room format lock + fill/swap-aware write deadline (v2.33-format-lock-fillguard)

    Verified signature
    c1f1f04

  1. Freeze-frame gap filler: source silences no longer kill the YouTube leg (v2.32-gap-filler)

    Verified signature
    826bfe0
  2. Publish discipline, format-instability lock, symmetric route rotation (v2.31-publish-discipline)

    Verified signature
    1b08df6
  3. Smart copy/transcode governor (relay-v2.29-smart-mode)

    Verified signature
    113ea7a
  4. Add append-only fail-open telemetry (relay-v2.28-telemetry)

    Verified signature
    56f439c

  1. Revert assistant HD changes; restore original relay behavior

    Verified signature
    23e9e2b
  2. Fix per-account HD output pinned to initial SD canvas; expose output diagnostics

    Verified signature
    2264c03
  3. Add bounded per-broadcaster format recovery

    Arena.ai Agent
    ce697a5

  1. Recover repeated RTMPS startup failures using safe backup ingest routing⁠

    Verified signature
    d40c1ac
  2. Fix live source handover without interrupting the YouTube publisher⁠

    Verified signature
    8ede3fd

  1. Persist live stream transition diagnostics

    Arena maintenance
    dc5fd17
  2. Forward decoder configuration changes in-session

    Arena maintenance
    1de09cd

  1. Keep YouTube ingest at true CBR

    Arena maintenance
    b8ef8da
  2. Force stable output for measured account

    Arena maintenance
    dd15580
  3. Stabilize RTMPS output recovery

    Arena maintenance
    fd860c0
  4. Fix media CDN cookie boundary

    Arena maintenance
    6536328

  1. v2.13-quad: four H264 copies, two transcodes, 720-class YouTube canvas.⁠

    On deploy
    dd3ad8e

  1. Keep the same FFmpeg on source drop: splice pinned FLV at 3s, never hop 1440.⁠

    53f27e6
  2. Persist size pin and sticky matchgop across FFmpeg restarts.⁠

    6807bd8
  3. PK 4-player: first canvas + no HEVC copy + keep rendition family (from Tktktk).⁠

    1b5493e

  1. Apply Prayer-Time-Bot engine on On: H264-first copy like the stable c_emad3 session.⁠

    f7cc868
  2. Never send HEVC to YouTube; closed GOP; recycle dead FFmpeg in 3s.⁠

    3d743e9
  3. PK rounds: stick matchgop on a stable origin canvas; never copy-recover HEVC.⁠

    75a13e2
  4. Latest curl_cffi 0.16+; matchgop fallback instead of default 720; health poll 60s.⁠

    625cc7b
  5. Detect frozen copy (out_time stuck while TikTok still sending) and switch to matchgop.⁠

    29402be
  6. On: same copy engine as Prayer-Time-Bot.⁠

    7f8a3cc
  7. Keep copy FFmpeg across TikTok silence; splice FLV instead of killing ingest.⁠

    250bffb
  8. v2.12-matchgop: copy-first; on YouTube noData/gopSizeLong switch THIS publisher to same-size closed GOP 2s (not default 720). Cuts live by operator request.

    Verified signature
    f55891f
  9. v2.11: LIGHT→COPY only after 90s stable light + verified copy output; rollback to light if out=0 (do not clear sticky on H264 label)

    Verified signature
    c200548
  10. stall watchdog: no fake last-byte on reattach; cap swapping at stall timeout (measured 40-57s freeze @vimtoo.2)

    Verified signature
    d948a08

  1. Revert On to a5b04d24b028 (user: a5b04d2) — copy H264 even if flap sticky, FLAP_LIMIT=4

    Verified signature
    c4ddaf5
  2. On-only test: copy-first + light fallback, MAX=4, freeze/liveStarting fixes

    Verified signature
    cd960c9
  3. Restore pre-today engine (daa404f/246dbb4/f6039fb); 5 concurrent relays/events; auto+fixed720 fallback

    Verified signature
    f1057bf
  4. Unfreeze: kill copy when out_time frozen 12s; do not reset source timer on reattach HTTP

    Verified signature
    06c5014
  5. Fix COPY_RECOVERY out=0: 720-class H264 first, 12s zero-output start stall, abort to light after 2 misses

    Verified signature
    59b7814
  6. Copy-first architecture: light fallback not fixed720; hysteresis 45s; relay_state in UI; no MediaMTX

    Verified signature
    1069790
  7. Keep light sticky across H264 and sender recycle; persist force_light on the event

    Verified signature
    0702c2a
  8. Hybrid engine: H264 copy first; light ultrafast 1800k GOP 2s only when copy ingest fails (max 1 on cpu-basic)

    Verified signature
    25aea11
  9. Keep FFmpeg on TikTok format change: splice into same RTMPS so YouTube does not show loading

    Verified signature
    daa404f