[bug] Intermittent audio+video freezes on Wi-Fi only
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 35/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Cần làm rõ
- Mức độ hoạt động
- Ít trao đổi
- Lĩnh vực
- audio-video-rtc, mobile
Hướng nghiên cứu
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.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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
availableOutgoingBitratedrops sharply - happens with both direct srflx UDP and TURN relay UDP (depending on test)
Steps to reproduce
- Connect to a room and start publishing audio+video from an Android device on a Wi-Fi network known to be affected.
- Observe intermittent freezes where audio+video stop and the device also stops receiving other tracks temporarily.
- 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 allowedwhen UDP relay disabled). So TCP media relay is not reliably achievable here.
Bitrate / resolution
- Max bitrate is already modest (~1200–1500 kbps)
qualityLimitationReasonis oftennoneafter 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
- Ngôn ngữ chính
- Dart
- Star
- 421
- Fork
- 260
- Merge trung bình
- 3 ngày 18 giờ
- Pull request đã merge (30 ngày)
- 12
Chuẩn bị môi trường
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của livekit/client-sdk-flutter
-
`jwtPayload.roomConfiguration` returns null fields for tokens from LiveKit server SDKsCó thể đã có người làm @RaphaelFakhri đã nhận 9 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
livekit/client-sdk-flutter#1243 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[bug] Stale and overlapping ParticipantInfo updates remove newer remote track publications (2.9.0)Có thể đã có người làm @hiroshihorie đã nhận 4 ngày trước. Đang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 55/100
livekit/client-sdk-flutter#1248 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 57/100
livekit/client-sdk-flutter#1245 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
livekit/client-sdk-flutter#1227 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Inbound data packets never delivered while media flows normally (2.13.0, LiveKit Cloud 1.13.7)Đang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 45/100
livekit/client-sdk-flutter#1221 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của livekit/client-sdk-flutter
Issue tương tự
-
Docs: correct the unbuilt "full re-verify" claim and three untrue sync commentsCó thể đã có người làm @ibanner56 đã nhận hôm nay. Đang mởarea: sync priority: low severity: trivial type: docs
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
ibanner56/CallersCompendium#1942 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Bug]: 编辑器替换栏关闭按钮错位Đang mởbug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 64/100
appshubcc/Bettbox#584 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Desktop] 多图作品在大图预览中无法使用鼠标滚轮缩放Đang mởbug UI: Fluent
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 67/100
Notsfsssf/pixez-flutter#1430 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
backlog:low bug data-source localization
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
simonoppowa/OpenNutriTracker#1475 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
linagora/tmail-flutter#5034 · 1 bình luận · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày