pfsinyuv(1)

πŸ’– pfsinyuv β€” like, the manual page, but make it make sense πŸ’–

okay bestie, sit down, hydrate, and let's talk about pfsinyuv(1) from the General Commands Manual. she's a section 1 command, she reads frames, she's iconic, periodt. πŸŽ€


✨ NAME ✨

pfsinyuv β€” read frames from a single .yuv file that, like, a ton of video codecs use. no cap. 🌈


🌸 SYNOPSIS 🌸

pfsinyuv [--verbose] [--quiet] [--width] [--height] [--colorspace]
[--noguess] [--chroma-subsampling] [--bit-depth] [--frames] [--help]
<file>

πŸ¦‹ DESCRIPTION πŸ¦‹

Use this command to read an uncompressed yuv file into a pfsstream. that's the whole vibe. πŸ’…

<file> can contain one or more formatting strings, and those strings describe the format of the yuv file. so like, the filename itself is basically telling you what's inside it, which is lowkey iconic. the formatting strings are:

  • %s β€” the entire description in the format <width>x<height>_<fps><bitdepth>_<colorspace>_<chroma-format>, for example 1920x1080_25_10b_pq2020_420
  • %d β€” width in pixels
  • %d β€” height in pixels
  • %d β€” bit-depth in bits
  • %s β€” colorspace, such as 'bt709'
  • %s β€” chroma subsampling format, either '444' or '420'

(yes, %d shows up three times and %s shows up three times. that's not a typo on my part, that's just how it is. iykyk. πŸ™ˆ)


πŸ’… OPTIONS πŸ’…

  • --width, -w β€” specify the width in pixels of the YUV file. πŸ“
  • --height, -h β€” specify the height in pixels of the YUV file. πŸ“
  • --fps, -f β€” specify the frames per second of the YUV file. 🎞️
  • --bit-depth, -b β€” the bit-depth of the integer values stored in the yuv file. here's the tea: a single color component is stored as a byte if bit-depth is 8, or as two bytes otherwise. default: 10 [bits]. ✨
  • --chroma-format, -s β€” specify the chroma format of the YUV file. it can be one of:
    • 444 β€” standard 4:4:4 YCbCr format, with no chroma downsampling at all
    • 420 β€” 4:2:0 YCbCr format, with both colour channels downsampled by half
    • V210 β€” the v210 format is a packed YUV 4:2:2 (UYVY) format with 10 bits per component
  • --colorspace, -c β€” currently it can be either:
    • pq2020 for HDR images with BT.2020 colorspace and PQ transfer function, or
    • bt709 for LDR images in BT.709 (rec.709) colorspace without any transfer function, or
    • hlg2020 for HDR images with BT.2020 colorspace and HLG transfer function.

okay and if no option is specified, the colorspace gets inferred from the LUMINANNCE tag in the pfsstream: pq2020 if LUMINANCE is ABSOLUTE or RELATIVE, bt709 if LUMINANCE is DISPLAY. (and yes, it says "LUMINANNCE" with the extra N in the original, i'm not fixing her, she's perfect 😭)

  • --no-guess, -n β€” don't try to extract image metadata from the filename. let the filename live its life. 🚫
  • --frames, -r β€” read only frames within the range specified as first:last, or first:step:last. frames are indexed from 1, so to read the first and second frame you need to specify 1:2. ⭐
  • --verbose, -v β€” print extra information to stderr. she's chatty and we love that for her. πŸ—£οΈ
  • --quiet, -q β€” disable the warning message about the change in handling absolute values in RGBE files. see the IMPORTANT NOTE below. 🀫

πŸŽ€ EXAMPLES πŸŽ€

pfsinyuv video_1920x1080_10b_25fps_pq2020_444.yuv --frames 100:-1:0 -v |
pfsview

πŸ”₯ SEE ALSO πŸ”₯


πŸ‘‘ IMPORTANT NOTE πŸ‘‘

this section is in the original and it is, genuinely, completely empty. nothing in it. zero. the --quiet option points you here and here is, like, the void. iconic behaviour honestly. πŸ’€

🫢 BUGS 🫢

Please report bugs and comments on implementation to the discussion group at http://groups.google.com/group/pfstools. fr fr, they wanna hear from you. πŸ›


kay that's the whole page bestie!! πŸ’– she's from the General Commands Manual, she's page pfsinyuv(1), and that's a wrap on section 1. go read some yuv files, you absolute main character. πŸ§šβœ¨πŸ“