Files
XC_VM/docs/ru/development/streaming-diagnostics.md
T
Divarion_D d4da90f37b fix(docs): translate bold spans atomically and auto-prune orphaned ru pages
The line-by-line web translator reordered words inside `**bold**` spans and
misplaced/dropped the markers, producing `**LB` or `****` (empty bold). Mask
each `**...**` as ONE atomic sentinel: translate the inner text on its own,
then store the whole balanced `**inner**` — the engine never sees the markers
and cannot reorder or collapse them. Also harden the anthropic prompt to keep
emphasis balanced.

Auto-prune: after translating, delete generated docs/ru files whose docs/en
source no longer exists (renamed/removed) and drop now-empty dirs, so the tree
mirrors docs/en 1:1 (removes the stale development/modules.md and
guides/geoip-and-device-detection.md).

Bump PROMPT_VERSION to 6 to invalidate the contaminated cache and regenerate
docs/ru (0 broken bold spans remaining, aside from pre-existing multi-line
bold that spans a soft line break).
2026-08-27 18:07:43 +03:00

5.8 KiB
Raw Blame History

Потоковая диагностика и инструменты

Отдельный инструмент проверяет правильность доставки потока — что сегменты поступают по порядку и очередь доставки не прерывается. Это не зависит от пути запроса; об этом смотрите в Подсистеме потоковой передачи.


tools/stream-check/stream_queue_check.py (Только Python, stdlib)

Автономный монитор для целостность сегмента/очереди пакетов с дополнительным панель управления живым буфером. Автоматическое определение HLS по сравнению с MPEG-TS.

python3 tools/stream-check/stream_queue_check.py "<url>" --duration 30        # batch check
python3 tools/stream-check/stream_queue_check.py "<url>" --json               # cron / monitoring
python3 tools/stream-check/stream_queue_check.py "<url>" --live --duration 0  # live dashboard

Что означает "неповрежденная очередь" для каждого типа потока:

Течение Проверка очереди
HLS (.m3u8) EXT-X-MEDIA-SEQUENCE монотонный и непрерывный (никаких удаленных или перемотанных сегментов), нет EXT-X-DISCONTINUITY, каждый вновь появляющийся сегмент доступен для загрузки. Основные плейлисты отображаются в их первом варианте.
MPEG-TS (.ts, /play/<token>/ts) per-PID continuity_counter (потерянные / дублированные / переупорядоченные пакеты = разрыв очереди), потеря байта синхронизации, индикатор транспортной ошибки и задержка доставки.

Основные параметры:

Флаг Цель
--duration N секунды для наблюдения (0 = до нажатия Ctrl-C в --live)
--tolerance N разрешить N временных разрывов очереди, прежде чем сообщать о BROKEN (игнорируются редкие сбои источника, переданные -c copy)
--stall-timeout S перерыв в доставке засчитывается как задержка; не превышайте продолжительность сегмента (по умолчанию 15).
--live цветная приборная панель TUI (внизу)
--prebuffer S / --buffer-target S live: предварительный буфер для виртуального игрока и масштаб буферного графика
--json / --no-color машинный вывод / отключение ANSI

Код выхода: 0 исправен, 2 проблема с очередью или задержка, 1 использование.

Оперативная панель мониторинга (--live)

Моделирует виртуальный проигрыватель: проигрыватель перемещается со скоростью настенных часов, в то время как контент "принимается". Для тс полученная временная шкала отсчитывается от ПЦР (часы потоковой передачи); для HLS - от длительности сегментов EXTINF. Буферизованное время воспроизведения ("кэш") = получено − воспроизведено; если оно достигает нуля, начало воспроизведения зависает (событие отмены буферизации).

  STREAM QUEUE / BUFFER MONITOR   TS   up 00:22
  cache buffer (s), last 60s:
  ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▄▄▄▇▇▇▆▆▆▅▅▅▄▄▇▇▇▆▆▆▅   <- burst-then-drain = delivery sawtooth
  IN CACHE : [█████████████████░░░░░░░░░░░░░]  11.6s / 20s
  PLAYING  : PLAYING     head 00:18   received 00:29
  rate 1000 kbit/s   received 4.1 MB   last data 7.0s ago
  QUEUE OK   cc:0 sync:0 gaps:0 disc:0   rebuffers:0

График буфера и индикатор окрашены в зеленый (работоспособный) / желтый (низкий) / красный (недостаточный) цвета. Для HLS ряд блоков показывает сегменты, которые все еще находятся в кэше перед началом воспроизведения.

Обратите внимание — темп доставки. Оперативная доставка клиентов теперь осуществляется с помощью xc_fanout демон (см. Streaming Subsystem → Daemon delivery), который извлекает каждый источник по одному разу и передает его через сокет unix. stream_queue_check.py --live визуализирует поведение буфера, которое реальный игрок увидел бы при просмотре доставленного потока.


Связанные файлы

Файл Цель
tools/stream-check/stream_queue_check.py мониторинг целостности очереди + панель мониторинга динамического буфера