Command Reference
Synopsis
direct_play_nice [OPTIONS] [INPUT_FILE] [OUTPUT_FILE]
Positional arguments
[INPUT_FILE]video file to convert (required unless probing)[OUTPUT_FILE]output media file (required unless probing)
Device and quality options
-d, --device <DEVICE>target family/model orall--video-quality <video_quality>quality preset--video-codec <video_codec>auto|h264|hevc--audio-quality <audio_quality>quality preset--max-video-bitrate <max_video_bitrate>explicit video cap--max-audio-bitrate <max_audio_bitrate>explicit audio cap--resize-quality <resize_quality>fast-bilinear|bilinear|bicubic|lanczos|spline--resize-backend <resize_backend>auto|software|cuda
Stream and compatibility controls
--unsupported-video-policy <unsupported_video_policy>convert|ignore|fail--primary-video-stream-index <primary_video_stream_index>--primary-video-criteria <primary_video_criteria>resolution|bitrate|fps--skip-codec-check--validate-outputreopen the completed output and fail if expected A/V codecs, stream hygiene, or temporal checks fail (enabled by default)--no-validate-outputdisable post-conversion output validation--visual-validate-outputdecode sampled output frames and fail on obvious visual corruption such as repeated green-screen frames (enabled by default)--no-visual-validate-outputdisable sampled visual validation while keeping structural validation enabled--visual-quality-reportlog sampled luma/chroma statistics for troubleshooting scaling or visual-corruption issues--visual-scan-frames <N>set how many decoded video frames visual validation scans before deciding the output is safe enough to promote--visual-sample-interval <N>inspect every Nth decoded frame during visual validation; default is 15--visual-failure-ratio <R>set the sampled-frame fraction that must look corrupt before visual validation fails; default is 0.60
Hardware controls
--hw-accel <hw_accel>auto|none|nvenc|vaapi|qsv|videotoolbox|amf
Probe modes
--probe-streams--probe-hw--probe-codecs--probe-ocr-fixtures <PATH>evaluate OCR accuracy against fixture PNG+JSON pairs--only-video--only-hw--probe-json--output <OUTPUT>text|json--streams-filter <STREAMS_FILTER>all|video|audio|subtitle
Sonarr/Radarr options
--servarr-output-extension <EXTENSION>(match-inputsupported)--servarr-output-suffix <servarr_output_suffix>--servarr-language-auditrun a periodic Sonarr/Radarr audit for delayed language upgrades--servarr-language-audit-scope <SCOPE>choosehistory,inventory, orlatest-missingaudit source--servarr-language-audit-lookback-days <DAYS>recent import window for history audit mode--servarr-language-audit-max-searches <N>cap release searches per audit run--servarr-language-audit-no-candidate-cooldown-days <D>skip items with a recent no-candidate audit result forDdays;0disables this--servarr-language-audit-latest-missing-no-candidate-cooldown-days <D>override the no-candidate cooldown forlatest-missingaudits--servarr-language-audit-stale-queue-days <D>remove and blocklist zero-size torrent queue items older thanDdays;0disables this--servarr-language-audit-stale-queue-max-removals <N>cap stale queue removals per audit run;0means no cap--servarr-language-audit-episode-ids <IDS>comma-separated Sonarr episode IDs to audit instead of the full scope--servarr-language-checkenable pre-conversion language checks for Arr downloads--required-audio-languages <LANGS>comma-separated ISO-639 tags such aseng,jpn--required-subtitle-languages <LANGS>comma-separated ISO-639 tags such aseng,spa--servarr-api-url <URL>Sonarr/Radarr base URL for mismatch replacement checks--servarr-api-key <KEY>Sonarr/Radarr API key for mismatch replacement checks--servarr-language-dry-runevaluate candidates without grabbing or blocklisting--servarr-untagged-audio-language <LANG>opt-in language tag to apply to untagged audio streams before redownload decisions--servarr-untagged-subtitle-language <LANG>opt-in language tag to apply to untagged subtitle streams before redownload decisions--servarr-language-candidate-policy <POLICY>strict|custom-format|custom-format-or-title|title-guess--delete-source [<BOOL>]
Subtitle OCR options
--sub-mode <sub_mode>auto|force|skip--subtitle-failure-policy <subtitle_failure_policy>skip-stream|fail--ocr-default-language <ocr_default_language>--ocr-engine <ocr_engine>auto|tesseract|pp-ocr-v3|pp-ocr-v4|external--ocr-format <ocr_format>srt|ass--ocr-write-srt-sidecar
Failure policy
- Extra video streams follow
--unsupported-video-policy:ignoredrops them,failaborts, andconvertattempts to include them when the output container supports it. - Attachments, data streams, and attached pictures are treated as metadata and skipped for direct-play outputs.
- Bitmap subtitles are handled by the OCR side pass unless
--sub-mode=skip; text subtitles are converted to MP4-compatible timed text when included. - Subtitle decode/encode timestamp failures follow
--subtitle-failure-policy:skip-streamwarns and disables only that subtitle stream, whilefailaborts conversion. - Audio conversion setup is fail-fast: if FFmpeg cannot initialize the required resampler, conversion aborts rather than writing suspect audio.
- Hardware encoder/profile failures may retry with a safer software encoder path; decoder bitstream failures remain hard failures.
Plex options
--plex-refresh--plex-url <PLEX_URL>--plex-token <PLEX_TOKEN>
Full generated help
For the exact, version-specific clap output:
direct_play_nice --help