A stream that stutters is reported the same way regardless of cause, and the two underlying failures require opposite responses. Distinguishing them is the whole of the diagnosis.
Encoding failures happen before the network
The encoder must compress every frame within the time before the next one arrives. If it cannot keep up, frames are discarded at the source and never enter the network at all.
This is a computation problem, and it worsens with higher resolution, higher frame rates and more demanding compression settings, all of which increase the work required per frame.
It is also affected by everything else running on the same machine, which is why a stream can be stable alone and unstable once a demanding application is opened alongside it.
Network failures happen after encoding
If the encoder produces more data than the connection can carry, the excess accumulates and is eventually discarded to prevent the stream falling further behind.
Upload capacity is the relevant figure, and it is typically a small fraction of download capacity on domestic connections, which is why a connection that streams video comfortably may fail to send it.
Wireless links add variability rather than only reducing capacity, and a stream requires consistency more than headroom, which is why a wired connection helps even where the average speed is similar.
The symptoms differ in shape
Encoder drops correlate with what is happening on screen, worsening during rapid motion or scene changes because those frames require the most work to compress.
Network drops correlate with time rather than content, appearing in bursts when the connection is contended and continuing regardless of whether the picture is busy or still.
Most streaming software reports the two separately, and reading which counter is rising resolves the question faster than any adjustment made speculatively.
The fixes point in opposite directions
An overloaded encoder is helped by reducing resolution or frame rate, or by moving compression to dedicated hardware so the general processor is not doing the work.
A saturated connection is helped by lowering bitrate, which reduces the data produced without reducing the work of producing it, and therefore does nothing for an encoder problem.
Headroom is the practical safeguard
Streams are configured well below the measured maximum of both the machine and the connection, because both vary and a setting that works at rest will fail under load.
Testing at the demanding end of what a broadcast will contain, rather than at a static scene, is the only way to know whether the configured margin is genuinely sufficient.