To confirm the resolution of an FFmpeg upload, inspect the encoded file with ffprobe, then check YouTube playback after processing has finished. For a live stream, check FFmpeg’s output and YouTube’s detected ingest settings separately; neither tells you exactly which rendition a viewer can play.
These are three different checkpoints: what FFmpeg encoded, what YouTube received or processed, and what the player currently offers. Keeping them separate helps you tell an output-setting error from delayed processing or a device limitation.
What “receiving the intended resolution” means
Start by deciding which point in the pipeline you need to verify. A local file’s pixel dimensions describe the encoded raster. For a live broadcast, the encoder’s output describes the signal sent towards YouTube, while Live Control Room reports what YouTube detects at ingest. Playback quality is downstream of both: YouTube processes video and the player adapts to the viewer’s device and connection.
For a standard 16:9 frame, YouTube lists 1920×1080 as 1080p and 3840×2160 as 4K. A different aspect ratio may have different dimensions while still being correct for the picture you intend to show. YouTube’s resolution and aspect-ratio guidance is a useful reference when checking what those dimensions mean in the player.
Resolution is not bitrate. A bitrate recommendation concerns how much data is used to encode video at a given resolution and frame-rate class; it does not prove that the output has the intended width and height. YouTube’s recommended upload encoding settings can help you choose an upload bitrate, but ffprobe is the direct check for the raster written to a file.
Use a simple comparison to locate the problem:
| Checkpoint | What to inspect | What it tells you | What it does not prove |
|---|---|---|---|
| Before upload | The output file with ffprobe |
The encoded video stream’s dimensions and related properties | That YouTube has finished processing the upload |
| Live encoder | FFmpeg’s configured output and logs | The format FFmpeg is set up to send, and any reported errors | What YouTube has detected at ingest or what every viewer can play |
| Live ingest | Live Control Room’s detected settings and health | What YouTube reports receiving from the encoder | Which playback rendition a particular viewer has selected |
| Playback | The quality options available in the player | What YouTube currently offers on that device and connection | That the original file or live input had identical dimensions |
Choose the row that corresponds to your situation, then follow the next checkpoint in the same case. For an upload, that means file inspection followed by playback after processing. For a live stream, it means encoder output followed by ingest, with playback checked separately if viewers report a problem.
Inspect an uploaded file with ffprobe
Run ffprobe on the final file you intend to upload, not just on the source clip or an intermediate render. This command selects the first video stream and prints useful fields as JSON:
ffprobe -v error -select_streams v:0 \\
-show_entries stream=codec_name,width,height,display_aspect_ratio,avg_frame_rate \\
-of json output.mp4
Check width and height against your target. The display aspect ratio and frame rate add context: a file with the expected pixel dimensions can still have an unintended shape or frame rate. The ffprobe documentation explains how to select streams and show stream details. This verifies the file’s video stream; it does not show what YouTube has made available after upload.
If the dimensions are wrong, check the FFmpeg command that created this exact output. When resizing, the scale filter controls width and height. For example, -vf "scale=1920:1080" sets a 16:9 raster. But forcing those dimensions onto a source with a different shape can stretch or distort it. Decide whether to preserve the source’s aspect ratio with bars, crop part of the frame, or intentionally stretch it. FFmpeg’s scale-filter documentation describes force_original_aspect_ratio and related options for fitting a picture within bounds.
It is worth inspecting the final file again after a re-encode. A correct setting in the command line is not itself confirmation that the output file has those dimensions: the wrong file may have been uploaded, a different filter may have applied, or the render may not be the version you intended. Record the checked file name and dimensions alongside the upload so that, if playback looks wrong later, you are not comparing YouTube with an earlier export.
For a playlist or a long visual loop, also consider whether every source clip has the same shape and rotation. A portrait clip in a landscape sequence can look like a resolution error even when the output raster is correct. If rotation metadata matters to your workflow, see the guide to preserving video rotation in an FFmpeg YouTube stream.
Check YouTube playback after processing
After uploading, do not use an immediate low-quality playback option as proof that FFmpeg sent the wrong dimensions. YouTube initially processes lower-quality versions, and higher options such as 1080p or 4K can take longer to appear, sometimes several hours. The processing time can depend on factors including video quality, length, format and traffic. Wait, then check again rather than re-encoding solely because a high-quality option is temporarily missing.
YouTube’s upload troubleshooting guidance explains that higher qualities may be unavailable while processing continues. The key distinction is that ffprobe reports the file you supplied; playback reports the options currently available from YouTube. You cannot infer that the final playback options are ready until processing has completed.
Once processing is complete, open the video in a browser or device that supports the intended quality and inspect the player’s quality menu. If 1080p or 4K is absent, check the processing status and try a suitable device or browser before concluding that the upload was capped. A viewer on a limited device or network may not see the same options or receive the same rendition as a viewer on a different setup.
If the high-quality option remains absent after processing, compare the playback result with the file inspection. If the file itself has smaller dimensions than intended, fix the FFmpeg output and upload the corrected file. If ffprobe shows the expected dimensions, the mismatch is no longer explained by the encoded raster alone; re-check processing and playback conditions before changing the export settings.
For repeated uploads, keep a small note with the target dimensions, the checked output dimensions, and whether processing had finished when you tested playback. This gives you a useful comparison the next time a 1080p or 4K option appears missing, without confusing a temporary platform state with an encoding fault.
For live streams, inspect encoder output
An FFmpeg live command may set an output size through a scale filter, but check what the running command actually outputs rather than relying on a saved preset. Confirm that the active invocation points to the intended video input and applies the expected filter before encoding. If the stream is meant to be 16:9 at 1080p, for example, the relevant output target is 1920×1080; use the dimensions that suit your own content and aspect ratio.
Read the encoder’s startup and ongoing output for errors that could prevent the intended video stream from being sent. A resolution setting cannot correct a failed input, a different active command, or an unexpected source. For a recorded video being sent as a live broadcast, also check that you are using the intended stream key and output; this stream-key troubleshooting guide covers a different failure that can otherwise distract from resolution checks.
Do not use bitrate alone to confirm dimensions. YouTube publishes recommended upload bitrates by resolution and frame-rate class, but those recommendations are not a resolution test or a guarantee of a particular playback result. If you need to review bitrate choices, compare them with YouTube’s official encoding settings, while verifying the actual output dimensions independently.
If you are running a continuous channel, the practical issue is often whether the broadcast keeps running unattended as well as whether the output is correct. StreamNeo addresses the specific burden of keeping an uploaded video broadcasting when your own computer is switched off; check the encoder output and YouTube’s detected ingest settings independently when diagnosing resolution.
Check detected ingest settings in Live Control Room
YouTube says it automatically detects encoder settings by default. In Live Control Room, review the stream’s detected settings and stream health while the broadcast is active. Compare the detected ingest resolution with the resolution you intended FFmpeg to send. This is the platform-side check for what YouTube is receiving, rather than what the local command was meant to produce.
If the detected resolution is lower than expected, return to the running FFmpeg output and check the active input, scaling filter, and output settings. Also review any warnings or health messages shown in Live Control Room. If the detected ingest matches your intended output, you have evidence that the live input is reaching YouTube as expected, but that still does not establish what playback options a viewer currently has.
YouTube’s live encoder guidance includes recommended bitrate ranges by codec, resolution and frame rate. Treat those as encoding guidance, not as a substitute for looking at the detected ingest resolution. A stream may have a suitable bitrate and still be configured for the wrong dimensions; conversely, dimensions alone do not describe every aspect of stream health.
For a continuous playlist, keep checks of the media and the live broadcast distinct. A playlist can contain clips with differing shapes, and a correct stream output does not make each source frame identical. If you are setting up a long-running sequence, the guide to adding a playlist file to an FFmpeg YouTube stream can help with that separate part of the workflow.
Why viewer playback can differ from live input
YouTube transcodes live input into multiple output formats so that viewers on different devices and networks can watch. The resolution FFmpeg sends is therefore not identical to every rendition the player may offer. A viewer’s available choice can depend on the device, browser, connection and the platform’s processing; do not treat one viewer’s menu as a direct measurement of the encoder’s input.
This matters when someone reports a soft or low-resolution picture while Live Control Room shows the intended ingest. First verify that the stream is healthy and the detected resolution is what you meant to send. Then test playback on a device and connection that can support the target quality, and inspect the player’s quality options. If the playback option is absent or the image looks different, you have found a downstream symptom, not automatic proof that FFmpeg encoded a smaller raster.
For uploads, the same separation applies, but the first checkpoint is the file rather than live ingest. YouTube needs to complete processing before the final set of playback qualities can be assessed. For live streams, ingest is observable during the broadcast, while playback is a separate output that YouTube adapts. In both cases, gather evidence at each relevant point before changing settings.
When the picture is wrong, ask which comparison failed: intended dimensions versus ffprobe, configured live output versus detected ingest, or completed processing versus the player’s current options. That question narrows the next action. Correct an encoder mismatch at the encoder; allow processing to finish for an upload; investigate device, browser or network limits when the input checks are sound but playback differs.
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
How do I check the resolution FFmpeg actually encoded?
Run ffprobe on the exact output file you plan to upload and inspect the first video stream’s width and height. Check the display aspect ratio as well if the source is not a standard 16:9 frame. This confirms the file’s encoded dimensions, not YouTube’s processing state or a viewer’s playback choice.
Why is my 1080p or 4K option missing after upload?
YouTube may still be processing higher qualities, and they can take longer than lower-quality playback versions to appear. Wait for processing to finish, then check again on a device or browser that supports the intended quality. If the option is still missing, compare the final file’s ffprobe dimensions with the playback options rather than assuming either one proves the other.
Does a correct FFmpeg resolution guarantee viewers can play it?
No. A correct file raster or live ingest resolution confirms an upstream checkpoint; YouTube’s processing and the viewer’s device, browser and connection affect what can be played. Check upload playback after processing, or inspect live playback separately from Live Control Room’s detected ingest.
Is bitrate enough to confirm resolution?
No. Bitrate recommendations describe encoding choices for particular resolutions and frame-rate classes, but they do not report the output width and height. Use ffprobe for an upload file and Live Control Room’s detected ingest settings for a live stream.