UXPLAY(1)
π UXPLAY(1) β like, the manual page, bestie π
User Commands Β· UxPlay 1.73.7 Β· AirPlay mirroring, but make it open source π¦
β¨ NAME β¨
uxplay β start the AirPlay server. That's it, that's the whole name section, short and iconic π
πΈ SYNOPSIS πΈ
uxplay [-n name] [-s wxh] [-p [n]] [more OPTIONS ...]
π DESCRIPTION π
So bestie. UxPlay 1.73.7 is an open-source AirPlay mirroring (+ audio streaming) server. Like, it turns your computer into the thing your iPhone wants to talk to. Obsessed. π«Ά
π OPTIONS π
Okay this is the long part. Deep breath. Every single one is here, no cap. π
-n nameβ Set the network name of the AirPlay server (UTF-8/ascii). Name it whatever you want, main character energy only.-nhβ Do NOT append"@hostname"at the end of the AirPlay server name. Rude, honestly, but fine.-h265β Support h265 (4K) video (with h265 versions of h264 plugins). 4K girlies rise. π₯-mp4 [fn]β Record (non-HLS) audio/video to mp4 file"fn.[n].[format].mp4".n=1,2,..andformat = H264/5, ALAC/AAC. Defaultfn="recording".
-hls [v]β Support HTTP Live Streaming (HLS), YouTube app video only:v = 2or3(default3) optionally selects video player version.
-lang xxβ HLS language preferences ("fr:es:..", overrides$LANGUAGE).-lang(or-lang 0) β play undubbed HLS version (overrides$LANGUAGE).-scrsv nβ Screensaver override,n:0=off,1=on while displaying video,2=always on.-pin[xxxx]β Use a 4-digit pin code to control client access (default: no).- without the option, pin is random: optionally use fixed pin
xxxx.
- without the option, pin is random: optionally use fixed pin
-reg [fn]β Keep a register in$HOME/.uxplay.registerto verify returning client pin-registration; (option: use file"fn"for this).-pw [pwd]β Require use of password"pwd"to control client access.- (with no
pwd, pin entry is required at each connection.) - (option
"-pw"after"-pin"overrides it, and vice versa.)
- (with no
-vsync[x]β Mirror mode: sync audio to video using timestamps (default).xis optional audio delay: millisecs, decimal, can be neg.
-vsync noβ Switch off audio/(server)video timestamp synchronization.-async[x]β Audio-Only mode: sync audio to client video (default: no).-async noβ Switch off audio/(client)video timestamp synchronization.-db l[:h]β Set minumum volume attenuation toldB (decibels, negative);- optional: set maximum to
hdB (+ or -); default-30.0:0.0.
- optional: set maximum to
-taperβ Use a"tapered"AirPlay volume-control profile. Fancy curve behavior β¨-vol vβ Set initial audio-streaming volume: range[mute=0.0:1.0=full].-s wxh[@r]β Request to client for video display resolution[refresh_rate].- default
1920x1080[@60](or3840x2160[@60]with-h265option).
- default
-oβ Set display"overscanned"mode on (not usually needed).-fsβ Full-screen (only with X11, Wayland, VAAPI, D3D11, kms).-pβ Use legacy ports UDP6000:6001:7011TCP7000:7001:7100.-p nβ Use TCP and UDP portsn,n+1,n+2. range1024-65535.- use
"-p n1,n2,n3"to set each port,"n1,n2"forn3 = n2+1. "-p tcp n"or"-p udp n"sets TCP or UDP ports separately.
- use
-avdecβ Force software h264 video decoding with libav decoder.-vp prsβ Choose GStreamer h264 parser; default"h264parse".-vd decβ Choose GStreamer h264 decoder; default"decodebin".- choices: (software)
avdec_h264; (hardware)v4l2h264dec,nvdec,nvh264dec,vaapih264dec,vtdec, ...
- choices: (software)
-vc cnvβ Choose GStreamer videoconverter; default"videoconvert".- another choice when using
v4l2h264dec:v4l2convert.
- another choice when using
-vs sinkβ Choose the GStreamer videosink; default"autovideosink".- choices:
ximagesink,xvimagesink,vaapisink,glimagesink,gtksink,waylandsink,kmssink,fbdevsink,osxvideosink,d3d11videosink,d3d12videosink...
- choices:
-vs 0β Streamed audio only, with no video display window.-vrtp plβ Usertph26[4,5]payto send decoded video elsewhere:"pl"is the remaining pipeline, starting withrtph26*payoptions:- e.g.
"config-interval=1 ! udpsink host=127.0.0.1 port=5000"
- e.g.
-artp plβ UsertpL16payto send decoded audio elsewhere:"pl"is the remaining pipeline, starting withrtpL16payoptions:- e.g.
"pt=96 ! udpsink host=127.0.0.1 port=5002"
- e.g.
-v4l2β Use Video4Linux2 for GPU hardware h264 video decoding.-bt709β Sometimes needed for Raspberry Pi models using Video4Linux2.-srgbβ Display"Full range"[0-255]color, not"Limited Range"[16-235].- This is a workaround for a GStreamer problem, until it is fixed.
-srgb noβ Disable srgb option (use when enabled by default: Linux, *BSD).-as sinkβ Choose the GStreamer audiosink; default"autoaudiosink".- choices:
pulsesink,alsasink,pipewiresink,osssink,oss4sink,jackaudiosink,osxaudiosink,wasapisink,directsoundsink,..
- choices:
-as 0β (or-a) Turn audio off, streamed video only. Silence era π-al xβ Audio latency in seconds (default0.25) reported to client.-caβ Display cover-art in AirPlay Audio (ALAC) mode.-ca fnβ In Airplay Audio (ALAC) mode, write cover-art to filefn.-md fnβ In Airplay Audio (ALAC) mode, write metadata text to filefn.-reset nβ Reset afternseconds client silence (defaultn=15,0=never).-nofreezeβ Do NOT leave frozen screen in place after reset.-ncβ Do NOT close video window when client stops mirroring.-nc noβ Cancel the-ncoption (DO close video window).-noholdβ Drop current connection when new client connects. Brutal but necessary π-restrictβ Restrict clients to those specified by"-allow deviceID".- Uxplay displays
deviceIDwhen a client attempts to connect. - Use
"-restrict no"for no client restrictions (default).
- Uxplay displays
-allow idβ PermitdeviceID = idto connect if restrictions are imposed.-block idβ Always block connections fromdeviceID = id. Not on the list, bestie π«-FPSdataβ Show video-streaming performance reports sent by client.-fps nβ Set maximum allowed streaming framerate, default30.-f {H|V|I}β Horizontal|Vertical flip, or both=Inversion=rotate 180 deg.-r {R|L}β Rotate 90 degrees Right (cw) or Left (ccw).-m [mac]β Set MAC address (also Device ID); use for concurrent UxPlays.- if mac
xx:xx:xx:xx:xx:xxis not given, a random MAC is used.
- if mac
-key [fn]β Store private key in$HOME/.uxplay.pem(or in file"fn").-dacp [fn]β Export client DACP information to file$HOME/.uxplay.dacp(option to use file"fn"instead); used for client remote.-vdmp [n]β Dump h264 video output to"fn.h264";fn="videodump", change with"-vdmp [n] filename". If[n]is given, filefn.x.h264x=1,2,..opens whenever a new SPS/PPS NAL arrives, and<=nNAL units are dumped.-admp [n]β Dump audio output to"fn.x.fmt",fmt ={aac, alac, aud},x=1,2,..;fn="audiodump"; change with"-admp [n] filename".xincreases when audio format changes. Ifnis given,<= naudio packets are dumped."aud"= unknown format.-ble [fn]β For BluetoothLE beacon: write data to default file~/.uxplay.ble.- optional: write to file
"fn"("fn"="off"to cancel).
- optional: write to file
-d [n]β Enable debug logging; optional:n=1to skip normal packet data.-vβ Displays version information.-hβ Displays help information.-rc fnβ Read startup options from file"fn"instead of~/.uxplayrc, etc.
π¦ FILES π¦
Options in one of $UXPLAYRC, or ~/.uxplayrc, or ~/.config/uxplayrc are applied first (command-line options may modify them). π
Format, and this part matters:
- one option per line, no initial
"-"; - lines beginning with
"#"ignored.
π AUTHORS π
Various, see website or distribution. (Yes, that's really all it says. Mysterious queen behavior π)
π COPYRIGHT π
Various, see website or distribution. License: GPL v3+:
GNU GPL version 3 or later. (some parts LGPL v.2.1+ or MIT).
β SEE ALSO β
Website: <https://github.com/FDH2/UxPlay>
okay that's the whole page, you ate it, go mirror something β¨
UxPlay 1.73.7 Β· 2026-09-04 Β· bye bestie, stream responsibly πππ¦
π¦ where this page comes from
- fedora 43: uxplay 1.73.7-1.fc43 Β· GPL-3.0-or-later AND LGPL-2.1-or-later
- fedora 44: uxplay 1.73.7-1.fc44 Β· GPL-3.0-or-later AND LGPL-2.1-or-later
- nixpkgs unstable: uxplay 1.73.7
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms