pfsoutyuv(1)

๐Ÿ’– pfsoutyuv โ€” bestie edition ๐Ÿ’–

okay so real quick, this page lives in section 1 of the General Commands Manual, and the command itself is pfsoutyuv (say it with me: p-f-s-out-yuv). she's a little icon whose whole job is turning your frames into raw .yuv files. let's get into it ๐ŸŽ€


โœจ NAME โœจ

pfsoutyuv โ€” write frames to a .yuv file used by many video codecs ๐ŸŽฌ


โœจ SYNOPSIS โœจ

pfsoutyuv [--verbose] [--quiet] [--bitdepth] [--colorspace]
[--downsample-filter] [--chroma-format] <file> [<file>...]

โœจ DESCRIPTION โœจ

use this command to write the pfsstream to an uncompressed .yuv file. no compression, no glow-up, just the raw thing ๐Ÿ’…

now here's the part where the colorspace girlies need to pay attention ๐Ÿ‘€ if the output color space is LDR (bt709), then the input pfs stream should be in the gamma corrected sRGB color space. but if the output color space is HDR (pq2020 or hgl2020), then the input pfs stream should be in linear RGB color space. it's giving "match the vibe of your input to the vibe of your output," fr fr ๐ŸŒˆ


โœจ OPTIONS โœจ

  • --bitdepth, -b โ€” the bit-depth of the integer values stored in the yuv file. a single color component is stored as a byte if bit-depth is 8, or as two bytes otherwise. default: 10 [bits] ๐Ÿงฎ
  • --colorspace, -c โ€” currently it can be either:

pq2020 for HDR images with BT.2020 colorspace and PQ transfer function, or

hlg2020 for HDR images with BT.2020 colorspace and HLG transfer function, or

bt709 for LDR images in BT.709 (rec.709) colorspace without any transfer function.

if no option is specified, the colorspace is inferred from the LUMINANCE tag in the pfsstream: pq2020 if LUMINANCE is ABSOLUTE or RELATIVE, and bt709 if LUMINANCE is DISPLAY. she guesses, and honestly? she guesses right ๐Ÿ˜Œ

  • --chroma-format, -f โ€” the sampling format for the chroma channels. can be one of:

444 โ€” the standard 4:4:4 format with no chroma downsampling. untouched, unbothered, thriving โœจ

420 โ€” the 4:2:0 format with both colour channels being downsampled by half.

default: 420

  • --downsample-filter, -f โ€” the filter weights used when downsampling to 4:2:0. can be either

f0 โ€” Weighting = [1/8, 3/4, 1/8]

f1 โ€” Weighting = [1/4, 1/2, 1/4]

default: f0

heads up bestie, --chroma-format and --downsample-filter are both chillin' with the short flag -f. that's not a typo, that's just how the page says it. iykyk ๐Ÿ™ˆ
  • --srgb-input, -s โ€” set this if the input is gamma corrected, though this will be inferred otherwise from the LUMINANCE tag in the pfs stream ๐ŸŒธ
  • --linear-input, -l โ€” as above, set if the input contains linear luminance values ๐Ÿฆ‹
  • --verbose, -v โ€” print extra information to stderr. she's chatty, she's telling you everything ๐Ÿ—ฃ๏ธ
  • --quiet, -q โ€” disable the warning message about the change in handling absolute values in RGBE files. see IMPORTANT NOTE below ๐Ÿ‘‡

โœจ EXAMPLES โœจ

pfsin frame%04d.exr | pfsoutyuv video%s.yuv

converts a sequence of frames frame0000.exr, frame0001.exr, ... to a yuv file. literally the classic. no notes ๐Ÿ”ฅ


โœจ SEE ALSO โœจ

pfsin(1) ๐Ÿ’œ


โœจ IMPORTANT NOTE โœจ

no extra text here bestie โ€” the note being pointed at is the --quiet thing up in OPTIONS. go read that one. ๐Ÿ‘‘


โœจ BUGS โœจ

please report bugs and comments on implementation to the discussion group http://groups.google.com/group/pfstools ๐Ÿ›๐Ÿซถ


and that's the whole page, no cap ๐Ÿ’– this was pfsoutyuv(1), straight from the General Commands Manual, and the footer was just pfsoutyuv(1) signing off โ€” mwah, go make some gorgeous .yuv files ๐Ÿ’…โœจ๐ŸŽ€