Skip to content
streamneo.
Troubleshooting12 min read

How to Check Raspberry Pi Temperature and Throttling During FFmpeg Streaming

Check Raspberry Pi temperature and throttle history during an FFmpeg stream, then distinguish heat from undervoltage before changing the setup.

sn.
StreamNeoPublished 4 October 2026
Worth sharing?

A Raspberry Pi can stream with FFmpeg for hours while its temperature and power conditions change. To check what is happening, leave the stream running, open a second terminal, and sample both the SoC temperature and the throttle state instead of relying on one reading.

Use vcgencmd measure_temp for the temperature and vcgencmd get_throttled for the throttle bitmask. Repeat the pair during the sustained part of the broadcast, record the results with their times, and interpret the individual bits alongside the stream behaviour.

Sample during the active FFmpeg stream

The useful test is the workload that normally causes trouble. If your stream fails after several hours, checking the Pi while it is idle will tell you very little about the cause. Start the usual FFmpeg command, allow the stream to reach its normal state, then open another terminal session on the Pi.

Run:

vcgencmd measure_temp
vcgencmd get_throttled

The first command reports the SoC’s internal temperature. The second returns a hexadecimal value describing current and previous conditions. Run both commands together so that the temperature and throttle state belong to roughly the same moment.

For an intermittent fault, take readings at several useful points rather than waiting for a failure. For example, sample shortly after starting FFmpeg, during the period when the stream is normally stable, when the video begins to stutter, and immediately after a reconnect or process restart. If the problem appears only overnight, leave a simple logging routine running and inspect the entries after the next incident.

Do not change the encoding settings during the first test. A different resolution, frame rate, filter, or encoder can alter CPU use and make the comparison less useful. The goal is to observe the configuration that you actually intend to run.

You can also read the Linux thermal-zone value with:

cat /sys/class/thermal/thermal_zone0/temp

That command returns an integer that should be divided by 1000 to express it in degrees Celsius. Raspberry Pi’s computer documentation describes both this thermal-zone method and vcgencmd measure_temp. It notes that Linux-based temperature readings can be inaccurate on Raspberry Pi SoCs, while vcgencmd measure_temp communicates with the GPU and provides an accurate instantaneous reading.

For a practical FFmpeg starting point, the guide on setting up a 24/7 YouTube stream with FFmpeg in India can help you identify the command and process you need to observe. This article is about diagnosing the running hardware, not choosing a complete streaming command.

Read temperature as a time series, not a verdict

A temperature reading is a measurement at one instant. It is not, by itself, proof that the Pi is overheating or throttling. A cool reading taken after FFmpeg has stopped may simply show that the board has already recovered. A warm reading with no current throttle flag may show sustained load without a thermal limit being applied.

Raspberry Pi’s computer documentation says that Arm cores are progressively throttled between 80°C and 85°C. Above 85°C, it says that the Arm cores and GPU are throttled. Those are documented thermal regions, not a universal target that removes the need to understand your particular board, operating system, enclosure, and workload.

The same documentation separately describes a default 60°C soft temperature limit for Raspberry Pi 3 Model B+. That is a model-specific detail. Do not apply it as a general threshold to every Raspberry Pi, especially when diagnosing a different board.

The important question is not simply, “Was the Pi warm?” Ask instead:

  • Did the temperature rise and remain near the documented thermal region while the normal stream was active?
  • Did the current throttle bits appear at the same time?
  • Did the stream’s symptoms begin during that period?
  • Did the condition disappear when the workload or ambient temperature changed?

Those questions turn a single number into evidence. If the temperature stays well below the documented thermal region and the stream still drops frames, changing the cooling may not address the real problem. Check the throttle bitmask and the stream logs before buying hardware.

Decode the throttle bitmask carefully

vcgencmd get_throttled returns a hexadecimal bit pattern. Each relevant bit represents a different condition. Raspberry Pi OS documentation lists the meanings as follows:

Bit Hex value Meaning
0 0x1 Undervoltage detected now
1 0x2 Arm frequency capped now
2 0x4 Currently throttled
3 0x8 Soft temperature limit active
16 0x10000 Undervoltage has occurred since boot
17 0x20000 Arm frequency capping has occurred since boot
18 0x40000 Throttling has occurred since boot
19 0x80000 Soft temperature limit has occurred since boot

The first four entries describe conditions that are active now. The higher bits describe whether the corresponding event has occurred since boot. That distinction matters when you are investigating an overnight stream.

For example, a value containing 0x40000 tells you that throttling has occurred at some point since boot. It does not tell you that the Pi is throttling at the moment you run the command, nor does it identify heat as the cause. A value containing 0x1 indicates current undervoltage, which is a different line of investigation from cooling.

A non-zero result is therefore not an overheating diagnosis. Keep the original hexadecimal output in your notes, then compare it with the temperature and with the time of any stream symptom. Do not clear the history or reboot before recording it if you are trying to understand an incident, because a reboot removes the useful since-boot context.

The Raspberry Pi OS documentation is the appropriate reference when you need to check the current meaning of these flags. Board-specific behaviour and command availability can change, so use the official documentation for your model rather than a copied bitmask from an unrelated guide.

Record readings over time

A small log is more useful than a collection of remembered values. Record the date and time, the FFmpeg state, the temperature, the throttle output, and any visible stream symptom. You do not need a complicated monitoring system for a first diagnosis.

A hand-written record can look like this:

Time Stream state Temperature Throttle output Observation
21:00 FFmpeg started Broadcast connecting
21:20 Stable No visible issue
23:00 Stable Audio and video normal
02:15 Stuttering Local preview drops frames
02:20 Reconnected FFmpeg restarted

Fill in the actual results from your Pi. The blank cells are intentional here because there is no universal temperature or throttle value that can be supplied in advance.

You can capture repeated output manually with a shell loop if your system supports it. For example:

while true; do
  date
  vcgencmd measure_temp
  vcgencmd get_throttled
  sleep 60
done

This is a simple sampling loop, not a complete monitoring service. Stop it when you have enough evidence, and redirect the output to a file only if you know where you want the file stored and how much space is available. A one-minute interval can help reveal a gradual change, but it may miss a very brief event. If a failure is short-lived, use a shorter interval for a focused test and keep the resulting file manageable.

The timestamp must be close enough to the stream event to support a comparison. If FFmpeg reconnects at 02:20 but the last reading was taken at 01:00, you cannot confidently assign the reconnect to that earlier temperature. Note the process state as well: an overloaded filter chain, a stalled input, or a YouTube connection problem can look different from a hardware limit.

A longer log also lets you compare two runs. Keep the input file, output settings, encoder, and case position the same for the first comparison. Then change one condition, such as improving airflow, and repeat the test. If several things change at once, you may not know which change affected the result.

Distinguish heat from undervoltage and other limits

Thermal throttling is only one explanation for a throttle-related flag. Low supply voltage can also affect performance. Raspberry Pi states that the supply should remain above 4.8 V for reliable performance and that a drop below 4.63 V, with a stated ±5% tolerance, causes the Arm cores and GPU to throttle. Treat these as official supply guidance, not as a replacement for checking the power path on your exact board.

Start with the bit that is set. Current undervoltage points towards the power supply, cable, connector, or load-related voltage drop. Current throttling or a soft temperature limit points towards a different branch of the investigation. A historical undervoltage bit means that an event occurred since boot, but it does not prove that undervoltage is happening during the current stream.

On Raspberry Pi 5, the documentation provides this PMIC reading command:

vcgencmd pmic_read_adc EXT5V_V

Use it only as part of board-appropriate power guidance. Do not assume that a command documented for Pi 5 gives the same diagnostic picture on another model.

The encoding path also matters. Sustained video processing can keep the SoC under load rather than allowing it to cool between short bursts. Raspberry Pi’s cooling paper identifies video processing as a sustained, compute-intensive workload. Its H.264 encoding paper compares Pi 5 software libx264 configurations with Pi 4’s h264_v4l2m2m hardware encoder, illustrating why the exact board and encoding path matter.

That comparison does not establish the performance of your FFmpeg build. Resolution, frame rate, filters, pixel format, input type, encoder, bitrate, and output settings all affect the workload. The OBS versus FFmpeg comparison for a 24/7 study stream may help you think about the broader workflow, but temperature diagnosis still has to be performed on the actual Pi and command you use.

Correlate readings with stream behaviour

A useful diagnosis joins three timelines: the hardware readings, the FFmpeg process, and the YouTube broadcast. Look for a repeated relationship rather than a single coincidence.

Suppose the temperature climbs during a normal stream, the current thermal bits appear, and the local FFmpeg output begins reporting delayed or dropped frames at the same time. If that pattern repeats after the stream has been running for a similar period, heat becomes a credible cause. It still does not prove that every visible YouTube problem comes from the Pi, but it gives you evidence for a targeted cooling or workload change.

Now consider a different pattern. The temperature remains below the documented thermal region, but the current undervoltage bit appears and the stream becomes unstable. In that case, inspect the official power requirements, supply, cable, connectors, and any accessories drawing power before fitting a fan. A fan cannot correct an inadequate supply.

There are also cases where the Pi readings look normal while the broadcast has a problem. FFmpeg may be waiting for an input, losing access to a file, failing to reconnect, or producing output that YouTube cannot accept. Your network may also be unstable. Review FFmpeg’s console output and YouTube’s live stream health information alongside the local readings.

For a channel that loops a prepared video, the YouTube 1080p 30fps settings guide is relevant when checking whether the output settings match the intended broadcast. Settings guidance cannot diagnose temperature, but it can help separate an encoding configuration issue from a hardware condition.

A single throttle history bit with no current flag and no stream symptom may be a past event unrelated to the present broadcast. Record it, but do not rebuild the setup solely because the hexadecimal value is non-zero. Conversely, a clean reading at the time you check does not disprove a brief earlier event. This is why repeated sampling and timestamps matter.

Make a proportionate cooling or power change

Change the part of the setup that the evidence implicates. If the log points to heat, first inspect the enclosure, airflow, ambient temperature, board position, dust, and sustained workload. An airtight case can hold warm air around the board. A heatsink may help control core temperature, and airflow can improve heatsink cooling, but the accessory must fit the exact board and case.

Raspberry Pi’s cooling guidance says that extra cooling may help in circumstances such as sustained workloads, high ambient temperature, or restricted airflow, while many use cases need no additional cooling. The hardware documentation also notes that a heatsink or small fan may reduce thermal throttling. These statements support a conditional response, not a rule that every 24/7 stream needs a fan.

If the evidence points to undervoltage, begin with the approved supply and the physical power path for your board. Check the cable and connectors, remove unnecessary powered accessories for the test, and repeat the stream under the same encoding load. Do not treat a new cooling accessory as a power fix.

If the temperature and power readings are unremarkable, reduce the workload only as a diagnostic experiment. You might compare a simpler filter chain, a hardware encoder where supported, a lower output resolution, or a less demanding input. Keep the original command so that you can return to it. A lower workload may prevent the symptom, but it does not identify whether the original problem was thermal, power-related, software-related, or network-related.

For readers who do not need the Pi itself to remain powered and maintained overnight, a cloud workflow can remove the need to watch local temperature and recover a local process. StreamNeo removes that particular maintenance task by letting you upload the video, provide the YouTube stream key, and have the broadcast run while your computer is switched off, with automatic monitoring and restart when the broadcast drops. It is still your responsibility to check the content, channel, stream key, and current YouTube requirements.

That approach is not automatically better for every channel. A Pi may be preferable when you need local inputs, custom processing, physical hardware, or direct control of the FFmpeg environment. A managed workflow is more relevant when the main requirement is to keep an uploaded video running without leaving a home computer or small board operating through the night.

Before committing, compare the operating options on the pricing page. When the file and channel are ready, start free — 24-hour trial, no card.

FAQ

Should I check the temperature while FFmpeg is running?

Yes. Check it during the sustained stream that normally causes the problem, not only when the Pi is idle or immediately after FFmpeg stops. Pair the temperature reading with vcgencmd get_throttled and record the time so you can compare the result with stream symptoms.

Does any non-zero throttle value mean the Pi is overheating?

No. The bitmask includes current and since-boot conditions for undervoltage, frequency capping, throttling, and soft temperature limits. Decode the individual bits and compare them with the temperature, power evidence, and timing of the stream problem.

Should I buy a fan if the throttle history bit is set?

Not from that information alone. First establish whether a current thermal condition coincides with the sustained stream, then inspect the case and airflow and choose hardware compatible with the exact board. If the active bit points to undervoltage, improve the power path instead of treating the issue as heat.

Why can the stream fail when the temperature looks normal?

The cause may be undervoltage, an input or filter problem, FFmpeg waiting on a file, a network interruption, or a YouTube output issue. Check the throttle bits and FFmpeg output at the same time as the broadcast health information. A normal temperature reading rules out neither every hardware issue nor every software and network problem.

YOU’VE REACHED THE END

Keep the ideas coming.

More guides, useful tools and a little help for your next broadcast.

Back to the journal ↗
YOUR NEXT READ

A little more to explore.

More Troubleshooting guides ↗ · All topics ↗