UXPLAY(1) User Commands UXPLAY(1)
uxplay - start AirPlay server
uxplay [-n name] [-s wxh] [-p [n]] [more OPTIONS ...]
UxPlay 1.73: An open-source AirPlay mirroring (+ audio streaming)
server:
-n name Specify the network name of the AirPlay server
(UTF-8/ascii)
-nh Do NOT append "@hostname" at end of AirPlay server name
-h265 Support h265 (4K) video (with h265 versions of h264
plugins)
-mp4 [fn] Record (non-HLS)audio/video to mp4 file
"fn.[n].[format].mp4"
n=1,2,.. format = H264/5, ALAC/AAC. Default fn="recording"
-hls [v] Support HTTP Live Streaming (HLS), YouTube app video only:
v = 2 or 3 (default 3) 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 during activity 2=always
on.
-pin[xxxx]Use a 4-digit pin code to control client access (default:
no)
without option, pin is random: optionally use fixed pin
xxxx.
-reg [fn] Keep a register in $HOME/.uxplay.register to 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.)
-vsync[x] Mirror mode: sync audio to video using timestamps (default)
x is 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 to l dB (decibels,
negative);
optional: set maximum to h dB (+ or -); default -30.0:0.0
-taper Use a "tapered" AirPlay volume-control profile.
-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] (or 3840x2160[@60] with -h265
option).
-o Set display "overscanned" mode on (not usually needed)
-fs Full-screen (only with X11, Wayland, VAAPI, D3D11, kms)
-p Use legacy ports UDP 6000:6001:7011 TCP 7000:7001:7100
-p n Use TCP and UDP ports n,n+1,n+2. range 1024-65535
use "-p n1,n2,n3" to set each port, "n1,n2" for n3 = n2+1
"-p tcp n" or "-p udp n" sets TCP or UDP ports separately.
-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, ...
-vc cnv Choose GStreamer videoconverter; default "videoconvert"
another choice when using v4l2h264dec: v4l2convert.
-vs sink Choose the GStreamer videosink; default "autovideosink"
choices: ximagesink,xvimagesink,vaapisink,glimagesink,
gtksink,waylandsink,kmssink,fbdevsink,osxvideosink,
d3d11videosink,d3d12videosink ...
-vs 0 Streamed audio only, with no video display window.
-vrtp pl Use rtph26[4,5]pay to send decoded video elsewhere: "pl"
is the remaining pipeline, starting with rtph26*pay
options:
e.g. "config-interval=1 ! udpsink host=127.0.0.1 port=5000"
-artp pl Use rtpL16pay to send decoded audio elsewhere: "pl"
is the remaining pipeline, starting with rtpL16pay options:
e.g. "pt=96 ! udpsink host=127.0.0.1 port=5002"
-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,..
-as 0 (or -a) Turn audio off, streamed video only.
-al x Audio latency in seconds (default 0.25) reported to client.
-ca Display cover-art in AirPlay Audio (ALAC) mode.
-ca fn In Airplay Audio (ALAC) mode, write cover-art to file fn.
-md fn In Airplay Audio (ALAC) mode, write metadata text to file
fn.
-reset n Reset after n seconds client silence (default n=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 -nc option (DO close video window).
-nohold Drop current connection when new client connects.
-restrict Restrict clients to those specified by "-allow deviceID".
Uxplay displays deviceID when a client attempts to connect.
Use "-restrict no" for no client restrictions (default).
-allow id Permit deviceID = id to connect if restrictions are
imposed.
-block id Always block connections from deviceID = id.
-FPSdata Show video-streaming performance reports sent by client.
-fps n Set maximum allowed streaming framerate, default 30
-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:xx is not given, a random MAC is
used.
-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, file fn.x.h264
x=1,2,.. opens whenever a new SPS/PPS NAL arrives, and <=n
NAL 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".
x increases when audio format changes. If n is given, <= n
audio 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)
-d [n] Enable debug logging; optional: n=1 to skip normal packet
data.
-v Displays version information
-h Displays help information
-rc fn Read startup options from file "fn" instead of ~/.uxplayrc,
etc
Options in one of $UXPLAYRC, or ~/.uxplayrc, or ~/.config/uxplayrc
are applied first (command-line options may modify them). Format:
one option per line, no initial "-"; lines beginning with "#"
ignored.
Various, see website or distribution.
Various, see website or distribution. License: GPL v3+:
GNU GPL version 3 or later. (some parts LGPL v.2.1+ or MIT).
Website: <https://github.com/FDH2/UxPlay>
UxPlay 1.73 2025-11-10 UXPLAY(1)
NAME
uxplay - start AirPlay server
SYNOPSIS
uxplay [-n name] [-s wxh] [-p [n]] [more OPTIONS ...]
DESCRIPTION
UxPlay 1.73: An open-source AirPlay mirroring (+ audio streaming)
server:
OPTIONS
-n name Specify the network name of the AirPlay server
(UTF-8/ascii)
-nh Do NOT append "@hostname" at end of AirPlay server name
-h265 Support h265 (4K) video (with h265 versions of h264
plugins)
-mp4 [fn] Record (non-HLS)audio/video to mp4 file
"fn.[n].[format].mp4"
n=1,2,.. format = H264/5, ALAC/AAC. Default fn="recording"
-hls [v] Support HTTP Live Streaming (HLS), YouTube app video only:
v = 2 or 3 (default 3) 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 during activity 2=always
on.
-pin[xxxx]Use a 4-digit pin code to control client access (default:
no)
without option, pin is random: optionally use fixed pin
xxxx.
-reg [fn] Keep a register in $HOME/.uxplay.register to 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.)
-vsync[x] Mirror mode: sync audio to video using timestamps (default)
x is 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 to l dB (decibels,
negative);
optional: set maximum to h dB (+ or -); default -30.0:0.0
-taper Use a "tapered" AirPlay volume-control profile.
-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] (or 3840x2160[@60] with -h265
option).
-o Set display "overscanned" mode on (not usually needed)
-fs Full-screen (only with X11, Wayland, VAAPI, D3D11, kms)
-p Use legacy ports UDP 6000:6001:7011 TCP 7000:7001:7100
-p n Use TCP and UDP ports n,n+1,n+2. range 1024-65535
use "-p n1,n2,n3" to set each port, "n1,n2" for n3 = n2+1
"-p tcp n" or "-p udp n" sets TCP or UDP ports separately.
-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, ...
-vc cnv Choose GStreamer videoconverter; default "videoconvert"
another choice when using v4l2h264dec: v4l2convert.
-vs sink Choose the GStreamer videosink; default "autovideosink"
choices: ximagesink,xvimagesink,vaapisink,glimagesink,
gtksink,waylandsink,kmssink,fbdevsink,osxvideosink,
d3d11videosink,d3d12videosink ...
-vs 0 Streamed audio only, with no video display window.
-vrtp pl Use rtph26[4,5]pay to send decoded video elsewhere: "pl"
is the remaining pipeline, starting with rtph26*pay
options:
e.g. "config-interval=1 ! udpsink host=127.0.0.1 port=5000"
-artp pl Use rtpL16pay to send decoded audio elsewhere: "pl"
is the remaining pipeline, starting with rtpL16pay options:
e.g. "pt=96 ! udpsink host=127.0.0.1 port=5002"
-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,..
-as 0 (or -a) Turn audio off, streamed video only.
-al x Audio latency in seconds (default 0.25) reported to client.
-ca Display cover-art in AirPlay Audio (ALAC) mode.
-ca fn In Airplay Audio (ALAC) mode, write cover-art to file fn.
-md fn In Airplay Audio (ALAC) mode, write metadata text to file
fn.
-reset n Reset after n seconds client silence (default n=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 -nc option (DO close video window).
-nohold Drop current connection when new client connects.
-restrict Restrict clients to those specified by "-allow deviceID".
Uxplay displays deviceID when a client attempts to connect.
Use "-restrict no" for no client restrictions (default).
-allow id Permit deviceID = id to connect if restrictions are
imposed.
-block id Always block connections from deviceID = id.
-FPSdata Show video-streaming performance reports sent by client.
-fps n Set maximum allowed streaming framerate, default 30
-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:xx is not given, a random MAC is
used.
-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, file fn.x.h264
x=1,2,.. opens whenever a new SPS/PPS NAL arrives, and <=n
NAL 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".
x increases when audio format changes. If n is given, <= n
audio 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)
-d [n] Enable debug logging; optional: n=1 to 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:
one option per line, no initial "-"; lines beginning with "#"
ignored.
AUTHORS
Various, see website or distribution.
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>
UxPlay 1.73 2025-11-10 UXPLAY(1)