WVUNPACK(1)

✨ WVUNPACK β€” the wavpack decoder era πŸ’…

okay bestie, welcome to wvunpack from the General Commands Manual section (that's section 1, iykyk) πŸŽ€


🌸 NAME 🌸

wvunpack β€” decode wavpack encoded files πŸ¦‹


🫢 SYNOPSIS 🫢

wvunpack [-options] [-o output] file ...

that's it. that's the whole vibe. options, maybe an output, and one or more files. slay. πŸ’–


πŸ‘‘ DESCRIPTION πŸ‘‘

so like, wvunpack decodes WavPack files back to their original uncompressed form. it's literally the un-squeeze. the glow-up reversal. ✨

unless you override it with the -o switch, the output filename is gonna be the source filename but with the original file extension replacing WavPack's β€œ.wv” extension. iconic behavior honestly.

you can also output raw audio without headers using the --raw option. and yes, you can feed it multiple WavPack input files at once β†’ multiple output files. in that case -o can be used to specify an alternate target directory.

a filename of β€œ-” means stdin or stdout. bestie that's the classic dash move, you know it, you love it.

it's also possible to export to one of the alternate file formats listed below, but ⚠️ in that case the information in the original headers and trailers will be lost, even if the alternate format is the same as the source format. so like. be aware. πŸ™ˆ

oh and for context: WavPack files are generally created with the wavpack program. they're sisters fr fr. 🫢


If multiple input files are specified with piped output (β€œ-o -”), then the output from all the files is concatenated. this can be utilized as an easy way to concatenate WavPack files (assuming the output is subsequently piped into wavpack), but it only makes sense with raw output (--raw) to avoid headers being interleaved with the audio data. don't do the weird thing. do the raw thing. πŸ’…


On multicore machines wvunpack will attempt to use multiple threads to speed up the operation, often by 3x or more. 😭 the way that it just goes faster for free?? to force single-threaded operation use the --no-threads option, or use the --threads option to fine-tune the number of threads utilized.


πŸŽ€ OUTPUT FORMATS πŸŽ€

the menu, bestie. pick your fighter:

  • Microsoft RIFF (β€œ.wav”), force with --wav, creates RF64 if > 4 GB
  • Sony Wave64 (β€œ.w64”), force with --w64
  • Apple AIFF (β€œ.aif”), force with --aif or --aif-le
  • Apple Core Audio (β€œ.caf”), force with --caf-be or --caf-le
  • Raw PCM or DSD (β€œ.raw”), force with -r or --raw
  • Philips DSDIFF (β€œ.dff”), force with --dsdiff or --dff
  • Sony DSD Stream (β€œ.dsf”), force with --dsf

πŸ’… OPTIONS πŸ’…

every single one. no skips. we don't gatekeep here. πŸ‘‘

  • --aif, --aif-le β€” force output to Apple AIFF (or AIFF-C/sowt), extension β€œ.aif”
  • -b β€” blindly decode all stream blocks and ignore length info (yes, blindly. it's giving chaos but make it functional πŸ’€)
  • -c β€” do not decode audio but instead just extract cuesheet stored in APEv2 tag to stdout (equivalent to -x β€œcuesheet”)
  • -cc β€” extract cuesheet stored in APEv2 tag to source-name.cue file in same directory as decoded audio file (equivalent to -xx β€œcuesheet=%a.cue”)
  • --caf-be, --caf-le β€” force output to big-endian or little-endian Core Audio, extension β€œ.caf”
  • -d β€” delete source file if successful; ⚠️ use with caution! like bestie this one deletes things. respectfully. πŸ™ˆ
  • --dff, --dsdiff β€” force output to Philips DSDIFF, DSD audio source only, extension β€œ.dff”
  • --dsf β€” force output to Sony DSF, DSD audio source only, extension β€œ.dsf”
  • -f β€” do not decode audio but simply display summary information about WavPack file to stdout in a machine-parsable format (see doc/wavpack_doc.html or cli/wvunpack.c for details)
  • --help β€” display extended help 🫢
  • -i β€” ignore .wvc file (forces hybrid lossy decompression)
  • -m β€” calculate and display MD5 signature; verify if lossless βœ…
  • -n β€” no audio decoding (use with -xx to extract tags only)
  • --no-overwrite β€” Never overwrite, nor ask to overwrite, an existing file. This is handy for resuming a cancelled batch operation and obviously cannot be mixed with the -y option. pick a lane bestie 🚫
  • --normalize-floats β€” normalize float audio to +/-1.0 if it isn't normalized already (rarely the case, but alters audio and fails MD5) 😭
  • --no-threads β€” force single-threaded operation, equivalent to --threads=1
  • --no-utf8-convert β€” leave extracted text tags in UTF-8 encoding during extraction or display
  • -o OUTFILE β€” specify output filename (only if single source file) or target directory (must already exist)
  • -q β€” quiet (keep console output to a minimum) 🀫
  • -r, --raw β€” force raw PCM or DSD audio decode by skipping headers & trailers, results in source-name.raw
  • --raw-pcm β€” similar to -r and --raw above except that DSD audio will be converted to 24-bit PCM (8x decimation)
  • -s β€” do not decode audio but simply display summary information about WavPack file to stdout
  • -ss β€” do not decode audio but simply display summary and tag information about WavPack file to stdout
  • --skip=[-][sample|hh:mm:ss.ss] β€” start decoding at specified sample or time index, specifying a β€˜-’ causes sample/time to be relative to EOF
  • -t β€” copy input file's time stamp to output file(s) ⏰
  • --threads=n β€” Enable (or disable) multithreaded operation with n=1 (no threading) to n=12 (max threads). Significantly improves performance of all modes, including verify. Omitting the parameter will select an optimum number of threads.
  • --until=[+|-][sample|hh:mm:ss.ss] β€” stop decoding at specified sample or time index, specifying a β€˜+’ causes sample/time to be relative to --skip point, specifying a β€˜-’ causes sample/time to be relative to EOF
  • -v β€” verify source data only (no output file created)
  • -vv β€” quick verify (no output, version 5+ files only)
  • --version β€” write program version to stdout
  • -w, --wav β€” force output to Microsoft RIFF/RF64, extension β€œ.wav”
  • --w64 β€” force output to Sony Wave64, extension β€œ.w64”
  • -x β€œField” β€” do not decode audio but instead just extract the specified tag field to stdout
  • -xx β€œField[=file]” β€” extract the specified tag field into a named file in the same directory as the decoded audio file; optional filename specification may contain β€˜%a’ which is replaced with the audio file base name, β€˜%t’ replaced with the tag field name (note: comes from data for binary tags) and β€˜%e’ replaced with the extension from the binary tag source file (or β€œtxt” for text tag).
  • -y β€” yes to overwrite warning; ⚠️ use with caution!
  • -z[n] β€” don't set (n = 0 or omitted) or set (n = 1) console title to indicate progress (leaves "WvUnpack Completed") πŸŽ€

πŸ¦‹ SEE ALSO πŸ¦‹

go read the whole squad, they're all icons 🫢


⭐ AUTHORS ⭐

  • David Bryant <david@wavpack.com>
  • Sebastian DrΓΆge <slomo@debian.org>
  • Jan StarΓ½ <hans@stare.cz>

no cap, these three literally built the thing. show some respect. πŸ‘‘

and that's the page bestie!! πŸŽ€ this lil slice of the manual is from the <strong>Debian</strong> build, dated <strong>January 16, 2026</strong>, and it's filed under <strong>WVUNPACK(1)</strong> β€” go forth and unpack, you absolute legend πŸ’–βœ¨πŸ¦‹

πŸ“¦ where this page comes from