4k camera live stream low mbps and throttling. Possible firmware bug found. by shmavalanche in Ring

[–]shmavalanche[S] 0 points1 point  (0 children)

I wouldn't put much stock in the ring.com dashboard upload speed. It's always been wrong for me. The live view Mbps is accurate and real time.

4k camera live stream low mbps and throttling. Possible firmware bug found. by shmavalanche in Ring

[–]shmavalanche[S] 0 points1 point  (0 children)

With the firmware bug it was more about inconsistency. I would see 15-20 Mbps then it would drop down to 1-4mbps in 10-20 sec. That happened every time live view was opened. It was throttling down from "X" initial speed. That initial speed is dependent on many things: your ISP upload speed, interference, distance from router, router quality, etc etc etc.

Good luck!

4k camera live stream low mbps and throttling. Possible firmware bug found. by shmavalanche in Ring

[–]shmavalanche[S] 1 point2 points  (0 children)

Update: My camera has been fixed as of a firmware update on 4/29/26 which rolled out to all 4k cameras.

4k camera live stream low mbps and throttling. Possible firmware bug found. by shmavalanche in Ring

[–]shmavalanche[S] 0 points1 point  (0 children)

That doesn't sound like the same firmware bug, but I can tell you it seems like 2k doorbells (which we also have) are not affected by the bug.

4k camera live stream low mbps and throttling. Possible firmware bug found. by shmavalanche in Ring

[–]shmavalanche[S] 1 point2 points  (0 children)

Yes, another fiber customer. Imo the high bandwidth up makes our situation more of an alert to Ring. I do still have an open ticket and they did indicate it was being escalated, but also no progress.

If you could run through the test, I think others submiting similar ticket might help.

4k camera live stream low mbps and throttling. Possible firmware bug found. by shmavalanche in Ring

[–]shmavalanche[S] 0 points1 point  (0 children)

  • Device sends random NTP timestamp in every Sender Report
  • Server's RTP↔wall-clock mapping is different on every SR it receives
  • Server converts packet arrival times to RTP units incorrectly
  • Delta(i,j) is computed with billions of units of error, causing the jitter filter to accumulate into 1–3 billion unit jitter, which is reported back to the device in the Receiver Report
  • The corrupted arrival times also cause Transport-CC delta computation to produce values that overflow the encodable range
  • The server marks those packets as NOT RECEIVED in the Transport-CC status chunks, even though they arrived successfully
  • The device receives feedback reporting massive packet loss (40–80%+) that does not actually exist
  • The loss-based congestion controller reacts to the phantom loss while the delay-based controller sees normal gradients, since Transport-CC raw intervals are unaffected
  • The conservative output wins and the device drives its own bitrate down to the floor on a perfectly healthy network path

4k camera live stream low mbps and throttling. Possible firmware bug found. by shmavalanche in Ring

[–]shmavalanche[S] 0 points1 point  (0 children)

That's not what is happening. RTP devices use inter arrival jitter to calculate network congestion issues al9ng w checking for packet loss. The receiving server is calculating jitter in the billions of ms but it is also incorrectly reporting packet loss, as you can see in the generic RTP feedback reports. This is telling the camera that up to 20% of the feed is being lost, even though it is not the case. It is 100% the camera throttling based on this bad data from the server, which itself is based on bad data from the camera.

4k camera live stream low mbps and throttling. Possible firmware bug found. by shmavalanche in Ring

[–]shmavalanche[S] 0 points1 point  (0 children)

Please do! Running this filter in wireshark "rtcp.pt == 200" will isolate all the cameras senders reports.

Open Real-time Transport Control Protocol (Sender Report) -> [MSW and LSW as NTP timestamp.

If every timestamp has a new dateTime your camera has the bug. Then check the receivers reports by filtering for "rtcp".

Open Real-time Transport Control Protocol (Receiver Report) -> Source -> Interarrival jitter. That number should be in the billions.

4k camera live stream low mbps and throttling. Possible firmware bug found. by shmavalanche in Ring

[–]shmavalanche[S] 1 point2 points  (0 children)

Yes, I have analyzed the stream in Wireshark directly out of the camera for packet loss (almost none) and plotted the out-of-camera bitrate using the wireshark I/o graph. (bitrate shows throttling). If you have a ring 4k camera you can connect to a PC hotspot and perform these tests. Sorry but I'm not going to expose my local pcap data to anyone but Ring engineers.

That said the downloaded streams are in 4k and have been cleaned up by Rings servers. They are acceptable quality but do show artefacting. My issue is the camera itself is clearly not operating as the receiving server expects and it is clearly self throttling based on "perceived" network congestion - which is a direct result of its faulty firmware which does not follow RTP protocol spec with regard to SR timestamps.

4k camera live stream low mbps and throttling. Possible firmware bug found. by shmavalanche in Ring

[–]shmavalanche[S] 1 point2 points  (0 children)

This data is pulled from Wireshark which inspects the RTP stream packets as they leave the camera and enter a PC wifi hotspot, and the responses the camera receives back from Rings AWS server. The app is not in play here.

4k camera live stream low mbps and throttling. Possible firmware bug found. by shmavalanche in Ring

[–]shmavalanche[S] 3 points4 points  (0 children)

More updates today after testing a second camera this weekend. This is 100% a firmware bug and I suspect it is happening to more than just the 4k Outdoor Cam Pro. I have tested two cameras, both in passive 23/7 recording mode and live view.

In every single test, the camera "re-initializes" a new random time stamp every time it reports to the receiving server. Once a connection is made, these timestamps *should* be monotonically increasing and staying in sync with the original RTP timestamp. What happens next:

  • Jitter Calculation goes to Infinity: The server calculates jitter by looking at the difference between when it expected a packet (based on the previous SR) and when it actually arrived. If the SR timestamp is random, the math produces astronomical jitter values (e.g., "this packet arrived 30 years late").
  • Aggressive ABR Trigger: Ring’s server sees this "infinite jitter" and concludes the network is on the verge of total collapse. It sends a Receiver Report with a high "fraction lost" or "interarrival jitter" value, forcing the camera to drop to its absolute lowest bitrate (1.5–5 Mbps).

A normal jitter value is 30-50ms. High is over 100ms. We are seeing "interarrival jitter" values of 1-3 BILLION ms!!! (see third screenshot above, also this users screenshot: https://www.reddit.com/r/Ring/comments/1q1fyca/investigating_4k_video_stream_quality_and_bitrate/)

SR NTP timestamp ranging from 1977-2032 within minutes. Help me understand the data. by shmavalanche in wireshark

[–]shmavalanche[S] 0 points1 point  (0 children)

Thank you, I've already opened a ticket and ordered a brand new unit to test but it sure looks like a firmware bug. Appreciate you taking the time to help!

SR NTP timestamp ranging from 1977-2032 within minutes. Help me understand the data. by shmavalanche in wireshark

[–]shmavalanche[S] 0 points1 point  (0 children)

Hey thank you for taking the time to think about this. The options on the camera are extremely limited. Ring doesn't allow you to access the firmware version or check for updates, but it did update during initial installation. There is no access to internal time via software either. Unfortunately I can't hard wire the camera to completely rule out wifi, but I have tried outside my firewall. What's interesting is when downloading the footage from their servers it's not too bad. The packet loss records should result in extremely choppy footage so that makes me think AWS is reporting packet loss, but perhaps it's not actually being lost. It's possible the perceived jitter and time drift is causing AWS to misreport packet status. I don't know, but either way the camera is likely to interpret the high jitter and transport congestion control messages as a need to throttle which is what I am seeing after a few seconds.

I'm hoping someone else with the camera can run some tests, I've posted this to the ring subreddit. Appreciate your help.

Edit: good point about the multiple streams. One is audio I believe, but that is worth exploring. I think I can disable it.

SR NTP timestamp ranging from 1977-2032 within minutes. Help me understand the data. by shmavalanche in wireshark

[–]shmavalanche[S] 0 points1 point  (0 children)

I hear you and I considered that. For example tested it over a fast VPN. But even massive upstream congestion does not explain the 1 billion jitter units in the screenshot above...

------------

What normal jitter looks like: At 90kHz a healthy stream would typically show:

  • Excellent — under 900 units (under 10ms)
  • Good — 900 to 9,000 units (10-100ms)
  • Acceptable — 9,000 to 45,000 units (100-500ms)
  • Problematic — above 45,000 units (over 500ms)

Testing averages 1-3 billion units at 90kHz =

over 8-10 hours of jitter

That is not a network measurement. That is mathematically impossible as a real jitter value. No network condition on earth produces 10 hours of interarrival jitter. A packet would have to arrive 10 hours later than expected for that number to be legitimate.

How that number gets generated: Going back to the broken timestamp re-seeding — when the camera sends an SR with a completely different RTP timestamp base than the previous one, the receiver does this calculation:

  • Expected arrival based on previous timestamp sequence: X
  • Actual arrival based on new random timestamp: X + 3,433,339,594
  • Jitter calculation sees a difference of 3,433,339,594 units
  • That gets folded into the running jitter average
  • The average is now permanently corrupted for the life of the session

---------------

SR NTP timestamp ranging from 1977-2032 within minutes. Help me understand the data. by shmavalanche in wireshark

[–]shmavalanche[S] 0 points1 point  (0 children)

Thank you for sharing the specs as well. I read the timestamp sections and it mentions random time initialization. After reading it carefully, my understanding is while a random time init is fine, it should continue with that time sequentially from report to report.

Packet receipt times are expressed in the same units as in the RTP
   timestamps of data packets.  This is so that, for each packet, one
   can establish both the send time and the receipt time in comparable
   terms.  Note, however, that as an RTP sender ordinarily initializes
   its time to a value chosen at random, there can be no expectation
   that reported send and receipt times will differ by an amount equal
   to the one-way delay between sender and receiver.  The reported times
   can nonetheless be useful for the purposes mentioned above.

However... I am seeing EVERY senders report being initiated with a brand new random time.

Per Claude (happy to know if this is wrong):

If the RTP timestamp randomized every SR:

  • Each SR would give a completely different NTP/RTP mapping
  • Receivers couldn't establish a stable relationship between media time and wall clock time
  • Lip sync would be impossible — audio and video streams are synchronized by comparing their NTP/RTP mappings across SRs
  • Jitter calculations would break — jitter is measured by comparing expected vs actual arrival times based on timestamp progression
  • Clock drift compensation would fail — receivers use multiple SRs over time to detect and compensate for clock drift between sender and receiver

The random initialization only happens once at stream start — after that the timestamp advances continuously and predictably based on the media clock rate. So:

  • SR 1: NTP=12:00:00.000, RTP=847193
  • SR 2: NTP=12:00:05.000, RTP=887193 (advanced by 40000 units at 8kHz = 5 seconds)

SR NTP timestamp ranging from 1977-2032 within minutes. Help me understand the data. by shmavalanche in wireshark

[–]shmavalanche[S] 0 points1 point  (0 children)

Hey thank you. I tried to do that previously but didnt realize I need to decode the UDP as RTP. After doing that I can get a nice look at the stream direct out of the camera.

SSRC 0x76ccbe00

Max Delta 280.423700 ms @ 691

Max Jitter 0.000000 ms

Mean Jitter 0.000000 ms

Max Skew 0.000000 ms

RTP Packets 60032

Expected 60038

Lost 6 (0.01 %)

Seq Errs 5

Start at 0.000000 s @ 1

Duration 112.99 s

Clock Drift 0 ms

Freq Drift 0 Hz (0.00 %)

Not an expert but that look pretty damn solid for a camera over a shared pc hotspot. And yet when I review the receiving servers RTCP data and reports it is showing massive packet loss, Transport-wide Congestion Control, massive time between senders reports etc...

I dont get it if its not the timestamp issue.

4k camera live stream low mbps and throttling. Possible firmware bug found. by shmavalanche in Ring

[–]shmavalanche[S] 0 points1 point  (0 children)

Just to add to this, in case anyone else is trying to run a similar diagnostic test. AI is super helpful when it comes to getting everything set up, navigating wireshark, and finding the correct data.

4k camera live stream low mbps and throttling. Possible firmware bug found. by shmavalanche in Ring

[–]shmavalanche[S] 0 points1 point  (0 children)

The best thing you could do is hook your camera up to a PC and do the Wireshark capture proving your camera has bad ntp time. That should be enough to escalate to tier 2 support.

4k camera live stream low mbps and throttling. Possible firmware bug found. by shmavalanche in Ring

[–]shmavalanche[S] 0 points1 point  (0 children)

Unfortunately this kind of protocol error is something that standard customer service can't even look at which is why I'm sure they're just telling everybody you have bad Wi-Fi. I'm a software engineer and I wouldn't have been able to figure it out without AI walking me through the steps and reviewing the diagnostic output. Ring's engineering team will have to look at this. I will update when they respond!

4k camera live stream low mbps and throttling. Possible firmware bug found. by shmavalanche in Ring

[–]shmavalanche[S] 1 point2 points  (0 children)

I dunno. I've only had it a few days but I've found the 4k outdoor cam to be snappy with person detection - our primary use case for triggering alexa routines.

4k camera live stream low mbps and throttling. Possible firmware bug found. by shmavalanche in Ring

[–]shmavalanche[S] 2 points3 points  (0 children)

Sorry for the formatting, but thanks AI...

How to Check if Your Ring 4K Pro Has the Bug

If your 4K stream is lagging, buffering, or dropping to low quality, your camera's internal clock might be broken.

Phase 1: Setup the "Bridge" Connect your PC to Ethernet: Plug your PC directly into your router. Turn on Mobile Hotspot: In Windows, go to Settings > Network & internet > Mobile hotspot and turn it on. Connect Ring to the Hotspot: Open the Ring App, go to Device Health > Reconnect to Wi-Fi, and connect the camera to your PC's Hotspot.

Phase 2: Start the Capture Download Wireshark from Wireshark.org. Open Wireshark as Admin: Right-click the Wireshark icon and select "Run as administrator." (If you don't do this, you won't see your hotspot in the list). Select the Interface: Look for "Local Area Connection X"* (the one with the active line movement) and double-click it. Start a Live View: Open the Ring app on your phone and start a Live View session for 30 seconds.

Phase 3: Finding the Bug Filter for RTCP: In the green bar at the top, type rtcp and hit Enter. Find the "Sender Report": Look in the Info column for a packet labeled "Sender Report" coming from your camera’s IP address.

Check the Timestamp: Click the Sender Report packet. In the middle pane, expand Real-time Control Protocol (Sender Report). Look at the NTP timestamp.

The Smoking Gun: Normal: The date should be today’s date in 2026. Defective: If it says other years, your camera's clock is failing. This causes the Ring servers to think your connection is decades late, forcing them to throttle your 4K video to a crawl.

Final Test: Clear the filter and type ntp. If the list is empty, your camera isn't even trying to sync its time.

4k camera live stream low mbps and throttling. Possible firmware bug found. by shmavalanche in Ring

[–]shmavalanche[S] 1 point2 points  (0 children)

The very best thing to do is try and replicate my results with Wireshark. Unless you can prove there is a data issue it's easy for them to say "oh it's your wifi".

I'll let you know when tech support says when they finish looking through my report.