Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

[bug] Intermittent audio+video freezes on Wi-Fi only

オープン
#1,018 コメント 1 件 リアクション 3 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
35/100
issue の種類
バグ
明瞭さ
説明が足りない
活発さ
静か
技術スタック
android, dart, flutter

調査の方向性

Start by following the reproduction steps on an affected Wi-Fi network and comparing the listed WebRTC stats with mobile data, where the issue disappears. The report does not identify a file, test, or specific code path to investigate. Done means finding a reproducible cause for the Wi-Fi stalls and an actionable fix or diagnosis.

索引モデルが issue の本文から書いたものです。

説明

Title

Intermittent audio+video freezes on Wi-Fi only (both publish & subscribe stall), not resolved by TURN/relay; works fine on mobile data and with another RTC SDK

Description

We’re seeing intermittent, short freezes (audio + video) for some Android publishers only on Wi-Fi. During the freeze, the participant’s outbound (publishing) and inbound (subscribing) media both stall. Dropped frames increase and the stream resumes after a short period, but freezes repeat frequently.

This does not reproduce on mobile data (4G/5G). It also does not reproduce with another RTC provider SDK (same app, same device, same network), suggesting a stack/transport behavior difference rather than a pure network outage.

We tried multiple mitigation strategies (TURN/relay, custom coturn, bitrate caps, etc.) without improvement.


Environment

  • Client SDK: livekit_client (Flutter) 2.6.4
  • Platform: Android Xiaomi 12 lite
  • Codec: H264 hardware encoder
  • Network: Wi-Fi (issue). Mobile data does not show issue.
  • Server: self-hosted LiveKit cluster (multiple nodes) behind HTTPS/WSS domain (Caddy L4 SNI routing), shared Redis.
  • TURN: tested embedded TURN and external coturn (details below)

Symptoms

  • During freeze:

    • audio + video freeze simultaneously for the affected participant
    • subscriber streams to that participant also freeze (they stop receiving other tracks temporarily)
    • dropped frames increase; later recovers
  • Repeats frequently, but each freeze is short (seconds)

  • Mobile data: stable (no freezes)

  • Other RTC SDK in same app/environment: stable (no freezes)


What we observed in stats

We added periodic stats snapshots (every 2s) including:

  • ICE selected candidate pair: RTT, availableOutgoingBitrate
  • local candidate type/protocol (srflx/relay, udp)
  • VideoSenderStats: packetsLost, jitter, roundTripTime, pliCount/nackCount, framesPerSecond, qualityLimitationReason

In freeze windows we see:

  • spikes in jitter and/or packetsLost, and retransmissions rising
  • connection quality dropping to poor
  • sometimes availableOutgoingBitrate drops sharply
  • happens with both direct srflx UDP and TURN relay UDP (depending on test)

Steps to reproduce

  1. Connect to a room and start publishing audio+video from an Android device on a Wi-Fi network known to be affected.
  2. Observe intermittent freezes where audio+video stop and the device also stops receiving other tracks temporarily.
  3. Switch the same device to mobile data → issue disappears.

Expected behavior

Stable publish/subscribe on Wi-Fi similar to mobile data; short-term Wi-Fi jitter should degrade quality gracefully, not cause frequent full stalls.

Actual behavior

Frequent short stalls/freezes (audio+video) on Wi-Fi for some devices/networks, with dropped frames increasing and stream resuming later.


Troubleshooting / mitigations tried

TURN / Relay
  • Forced relay-only:

    • iceTransportPolicy: relay
  • Tested embedded TURN and custom coturn:

    • TURN connectivity checks succeed
    • freezes persist even when using relay candidates
  • Attempted TCP relay forcing; Android WebRTC appears to still request UDP transport for TURN allocation (coturn shows 442 UDP Transport is not allowed when UDP relay disabled). So TCP media relay is not reliably achievable here.

Bitrate / resolution
  • Max bitrate is already modest (~1200–1500 kbps)
  • qualityLimitationReason is often none after ramp-up; still freezes occur
  • Attempted VP8 / simulcast experiments; did not resolve issue
Server/network checks
  • Basic reachability tests (HTTPS/WSS, TURN TLS handshake, STUN UDP reachability) are stable from a desktop environment
  • Cluster/Redis healthy; no server-side crashes during freezes

主要言語
Dart
スター
421
フォーク
260
平均マージ
2日 17時間
マージ済み PR(30日)
14

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

livekit/client-sdk-flutter のほかの issue

livekit/client-sdk-flutter の issue をすべて見る

似ている issue

Dart の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。