Skip to content

YUView

currentMigrated from docs/utilities/YUView.mdx at 37c3317fd058; modified for Encode Wiki · CC BY-SA 4.0
YUView main window

The Free and Open Source Cross Platform YUV Viewer with an advanced analytics toolset

Latest release
v2.14
Last commit
Stars
2,312

YUView is a Qt-based player and analysis tool from the Institut für Nachrichtentechnik (IENT) at RWTH Aachen. It is built for looking at video the way a codec developer does:

  • plays raw YUV and RGB files in almost any subsampling and bit depth, plus image sequences and anything FFmpeg can open;
  • zooms down to individual pixels and shows their values;
  • compares two videos side by side, in a comparison view, or as a difference image;
  • decodes HEVC, VVC and AV1 bitstreams with instrumented decoders and overlays their internals, such as block partitioning, prediction modes and motion vectors.

The latest release is v2.14 (September 2023), with Windows and macOS builds on the releases page. On Linux, install it from Flathub or from the Ubuntu archive (sudo apt install yuview; 24.04 LTS ships 2.13, 22.04 the much older 2.9). Development continues on the develop branch. On macOS, remove the quarantine flag after copying the app: xattr -d com.apple.quarantine /Applications/YUView.app.

Raw .yuv files have no header, so YUView has to be told, or has to guess, the width, height, pixel format and frame rate. It reads them from the file name, so name files like clip_1920x1080_24_yuv420p10le.yuv (size, frame rate, FFmpeg pixel-format name) and it opens them correctly; otherwise it guesses from the file size and the first frames, and you correct the values in the properties panel. Wrong guesses are obvious: wrong dimensions give diagonal shearing, a wrong bit depth or subsampling gives garbled colours and stripes.

To produce a raw file from any video:

Terminal window
ffmpeg -i input.mkv -frames:v 240 -pix_fmt yuv420p10le clip_1920x1080_24_yuv420p10le.yuv

Raw files are large (1080p 10-bit 4:2:0 is about 6 MB per frame), so export only the section you need. You can also open the MKV or MP4 directly through FFmpeg instead.

Open the source and the encode, select both in the playlist, and choose the side-by-side or comparison view. The difference view highlights where an encode deviates from the source, which quickly points you at banding, smeared detail or ringing worth looking at. Use the same frame of each: if one file has extra or missing frames at the start, trim the raw export rather than comparing offset frames.

Open a raw bitstream to decode it with an analysis-capable decoder and show its statistics as overlays:

CodecInputDecoder
HEVCAnnex B stream (.hevc, .h265)libde265 (a YUView-specific build), or the HM reference decoder
AV1AV1 bitstreamdav1d (a YUView-specific build)
VVCAnnex B streamVTM reference decoder (experimental)

The instrumented decoder libraries are separate downloads, linked from the external decoders wiki page. To get an Annex B HEVC stream out of a container (FFmpeg converts it to Annex B automatically for raw .hevc output):

Terminal window
ffmpeg -i input.mkv -c:v copy out.hevc