Skip to content

feat: диагностика темпа подачи потока для отладки заиканий - #37

Merged
0xcodepunk merged 1 commit into
mainfrom
feature/stream-pacing-log
Jul 12, 2026
Merged

feat: диагностика темпа подачи потока для отладки заиканий#37
0xcodepunk merged 1 commit into
mainfrom
feature/stream-pacing-log

Conversation

@0xcodepunk

@0xcodepunk 0xcodepunk commented Jul 12, 2026

Copy link
Copy Markdown
Owner

Что сделано

  • Замер темпа подачи в цикле стрима: окно 30 секунд, по итогам — скорость (кбит/с) и доли ожиданий: «ожидание источника» (чтение из FFmpeg — узкое место CDN/интернет) против «ожидания клиента» (отправка устройству — узкое место Wi-Fi/Ruark).
  • Пороги по кодеку (STREAM_RATE_THRESHOLDS_KBPS): flac 700, mp3 250, aac 90 кбит/с. Подача ниже порога → ⚠️ Подача ниже реального времени! 📈 Темп подачи: 316 кбит/с за 30с (flac); ожидание источника 87%, ожидание клиента 2%. Норма → DEBUG, лог не засоряется.
  • reconnect в фильтре stderr FFmpeg — переподключения к CDN теперь видны как WARNING.

- добавлен замер темпа подачи в generate(): окно 30с, скорость в кбит/с и доли ожиданий источника (CDN/FFmpeg) и клиента (сеть до устройства)
- добавлен метод _log_stream_pacing: подача ниже порога кодека — WARNING с указанием узкого места, норма — DEBUG
- добавлены константы STREAM_RATE_WINDOW и STREAM_RATE_THRESHOLDS_KBPS (flac 700, mp3 250, aac 90 кбит/с)
- добавлено ключевое слово reconnect в фильтр stderr FFmpeg — переподключения к CDN станут видны как WARNING
- добавлены тесты: медленный FLAC даёт WARNING, здоровый MP3 на том же темпе молчит

Примечание: инструментирование для расследования заиканий на проде — эпизоды продолжительного осушения буфера Ruark (Wi-Fi) сейчас в логах не видны; после деплоя следующий эпизод запишется сам с указанием виновной стороны.
@0xcodepunk
0xcodepunk merged commit 4047334 into main Jul 12, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant