Command line
Generated from pconv --help and pconv profiles of pconv 1.0.1.
Synopsis
Section titled “Synopsis”Usage: pconv <input> <output> [--profile fast|balanced|best] [--size S] [--fps N] [--crf N | --qp N] [--tune T] [--loudness LUFS|youtube [--true-peak DBTP]] [--audio-bitrate KBPS] [--force] [--json] [--no-progress] pconv join <input> <input>... <output> [the same options] pconv probe <input> pconv profiles pconv --version pconv --helppconv <input> <output>converts one file. The output’s extension picks the container:mp4,mov,mkv,webm,giforwebp.pconv join <input> <input>... <output>joins two or more clips, in order, into onemp4,mov,mkvorwebm, and takes the same options.pconv probe <input>prints what pconv reads from a file, as JSON (formats).pconv profileslists the profiles, as below.pconv --versionprintspconv 1.0.1;pconv --help(or-h) prints the help below.
Options
Section titled “Options”| Option | What it does |
|---|---|
--profile fast|balanced|best |
The profile: balanced (the default), best or fast (VAAPI, Linux only). See Profiles below. |
--size S |
A width (1280, the height follows the aspect), WxH within 1 % of the source’s aspect, or 720p, 1080p, 1440p or 2160p. pconv never stretches a picture. |
--fps N |
The output’s frame rate. |
--crf N |
The quality for balanced and best (x264 1 to 51, VP9 0 to 63); lower is better and larger. |
--qp N |
The quality for fast (VAAPI), 1 to 51. |
--tune T |
x264’s tune; animation suits screen and terminal recordings. |
--loudness LUFS|youtube |
Level the audio to a target from -70 to -5 LUFS in two EBU R128 passes, or youtube (-14 LUFS under -2 dBTP, AAC 320k). |
--true-peak DBTP |
The true-peak ceiling for --loudness, -1 dBTP by default. |
--audio-bitrate KBPS |
The audio bitrate, 32 to 512 kbps; re-encodes the audio. |
--force |
Replace an existing output instead of refusing it. |
--json |
Print one JSON document instead of the plain lines, and never draw progress. |
--no-progress |
Don’t draw the progress line on a terminal. |
The help, as printed
Section titled “The help, as printed”The output’s extension picks the container: mp4, mov, mkv (H.264), webm (VP9, keeps alpha), gif or webp (animated, looping, 800 px wide at 12 fps by default).
Light web: –profile best –crf 23 (.webm: –crf 40)
For x264 terminal masters: –tune animation
–loudness N brings the audio to N LUFS integrated in two EBU R128 passes (loudnorm), linear where the true peak allows, under a -1 dBTP true-peak ceiling (–true-peak sets it), and prints the loudness before and after; youtube is -14 LUFS under -2 dBTP.
Audio is AAC-LC 320k stereo at 48000 Hz, or Opus 128k in .webm; an AAC source is copied when nothing changes its audio. –audio-bitrate KBPS (32–512) sets the rate and re-encodes.
With –loudness or –audio-bitrate and no –profile, –size, –fps, –crf, –qp or –tune, the video is copied untouched where the container takes its codec.
join stitches two or more clips, in the order given, into one mp4, mov, mkv or webm. With no video option it is a stream copy when every clip matches the first (codec, profile, size, pixel aspect, rotation, rate, pixel format, colour tags, codec headers and audio); otherwise it re-encodes every clip to the first one’s size and rate (or –size and –fps) with the profile, letterboxing other shapes and filling a clip without audio with silence. It prints which it did and why; –loudness and –audio-bitrate apply to the joined audio.
While it works, pconv draws one progress line on stderr when stderr is a terminal: a spinner, the step, a bar, the percent, the speed in fps and the ETA. It never draws it with –json, –no-progress, TERM=dumb or when stderr is a pipe or a file, so scripts and agents read only the result.
Profiles
Section titled “Profiles”pconv profiles prints:
fast: h264_vaapi on the GPU, QP 25 (VA-API, Linux only)balanced: libx264 preset medium, CRF 20best: libx264 preset slow, CRF 18balanced .webm: libvpx-vp9 cpu-used 4, CRF 32, keeps alphabest .webm: libvpx-vp9 cpu-used 2, CRF 28, keeps alphabalanced, best .gif: a palette from the clip, then sierra2_4a dithering, loops forever, keeps alpha as on or off; without alpha each frame stores only what changed by more than 12 levels (4 with best)balanced .webp: libwebp_anim quality 75, compression level 4, loops forever, keeps alphabest .webp: libwebp_anim quality 75, compression level 6, loops forever, keeps alpha.gif and .webp: 800 px wide at 12 fps by default, or the source's width and rate where smaller; --size and --fps set themlight web: --profile best --crf 23 (.webm: --crf 40)--loudness youtube: -14 LUFS under a -2 dBTP true-peak ceiling, two EBU R128 passes; with no video option the video is copied where the container takes itaudio: AAC-LC 320k stereo at 48000 Hz (an AAC source is copied when nothing changes its audio), Opus 128k in .webm; --audio-bitrate 32–512 sets the rateExit codes
Section titled “Exit codes”| Code | Meaning |
|---|---|
0 |
It worked. |
1 |
Failed or refused once the input was read; one line on stderr starting pconv: . |
2 |
The command line is wrong, answered on stderr the way clap-based tools answer. |
128 plus the signal |
A signal stopped it; 130 for Ctrl-C on Windows. |