uxplayer/uxplay.1
2025-05-03 17:09:23 +08:00

186 lines
5.9 KiB
Groff

.TH UXPLAY "1" "December 2024" "1.71" "User Commands"
.SH NAME
uxplay \- start AirPlay server
.SH SYNOPSIS
.B uxplay
[\fI\,-n name\/\fR] [\fI\,-s wxh\/\fR] [\fI\,-p \/\fR[\fI\,n\/\fR]] [more \fI OPTIONS \/\fR ...]
.SH DESCRIPTION
UxPlay 1.71: An open\-source AirPlay mirroring (+ audio streaming) server:
.SH OPTIONS
.TP
.B
\fB\-n\fR name Specify the network name of the AirPlay server
.TP
\fB\-nh\fR Do \fBNOT\fR append "@\fIhostname\fR" at end of AirPlay server name
.TP
\fB\-h265\fR Support h265 (4K) video (with h265 versions of h264 plugins)
.TP
\fB\-hls\fR Support HTTP Live Streaming (currently YouTube video only)
.TP
\fB\-pin\fI[xxxx]\fRUse a 4-digit pin code to control client access (default: no)
.IP
without option, pin is random: optionally use fixed pin xxxx.
.TP
\fB\-reg\fI [fn]\fR Keep a register in $HOME/.uxplay.register to verify returning
.IP
client pin-registration; (option: use file "fn" for this)
.TP
\fB\-vsync\fI[x]\fR Mirror mode: sync audio to video using timestamps (default)
.IP
\fIx\fR is optional audio delay: millisecs, decimal, can be neg.
.TP
\fB\-vsync\fR no Switch off audio/(server)video timestamp synchronization.
.TP
\fB\-async\fR[\fIx\fR] Audio-Only mode: sync audio to client video (default: no).
.TP
\fB\-async\fR no Switch off audio/(client)video timestamp synchronization.
.TP
\fB\-db\fI l[:h]\fR Set minumum volume attenuation to l dB (decibels, negative);
.IP
optional: set maximum to h dB (+ or -); default -30.0:0.0
.PP
.TP
\fB\-taper\fR Use a "tapered" AirPlay volume-control profile.
.TP
\fB\-s\fR wxh[@r]Request to client for video display resolution [refresh_rate]
.IP
default 1920x1080[@60] (or 3840x2160[@60] with -h265 option).
.PP
.TP
\fB\-o\fR Set display "overscanned" mode on (not usually needed)
.TP
\fB-fs\fR Full-screen (only works with X11, Wayland, VAAPI, D3D11)
.TP
\fB\-p\fR Use legacy ports UDP 6000:6001:7011 TCP 7000:7001:7100
.TP
\fB\-p\fR n Use TCP and UDP ports n,n+1,n+2. range 1024\-65535
.IP
use "\-p n1,n2,n3" to set each port, "n1,n2" for n3 = n2+1
.IP
"\-p tcp n" or "\-p udp n" sets TCP or UDP ports separately.
.PP
.TP
\fB\-avdec\fR Force software h264 video decoding with libav decoder.
.TP
\fB\-vp\fI prs \fR Choose GStreamer h264 parser; default "h264parse"
.TP
\fB\-vd\fI dec \fR Choose GStreamer h264 decoder; default "decodebin"
.IP
choices: (software) avdec_h264; (hardware) v4l2h264dec,
.IP
nvdec, nvh264dec, vaapih264dec, vtdec, ...
.TP
\fB\-vc\fI cnv \fR Choose GStreamer videoconverter; default "videoconvert"
.IP
another choice when using v4l2h264dec: v4l2convert.
.TP
\fB\-vs\fI sink\fR Choose the GStreamer videosink; default "autovideosink"
.IP
choices: ximagesink,xvimagesink,vaapisink,glimagesink,
.IP
gtksink,waylandsink,osxvideosink,kmssink,d3d11videosink,...
.PP
.TP
\fB\-vs\fR 0 Streamed audio only, with no video display window.
.TP
\fB\-v4l2\fR Use Video4Linux2 for GPU hardware h264 video decoding.
.TP
\fB\-bt709\fR Sometimes needed for Raspberry Pi models using Video4Linux2.
.TP
\fB\-as\fI sink\fR Choose the GStreamer audiosink; default "autoaudiosink"
.IP
choices:pulsesink,alsasink,pipewiresink,osssink,oss4sink,
.IP
jackaudiosink,osxaudiosink,wasapisink,directsoundsink,..
.PP
.TP
\fB\-as\fR 0 (or \fB\-a\fR) Turn audio off, streamed video only.
.TP
\fB\-al\fR x Audio latency in seconds (default 0.25) reported to client.
.TP
\fB\-ca\fI fn \fR In Airplay Audio (ALAC) mode, write cover-art to file fn.
.TP
\fB\-reset\fR n Reset after 3n seconds client silence (default 5, 0=never).
.TP
\fB\-nofreeze\fR Do NOT leave frozen screen in place after reset.
.TP
\fB\-nc\fR Do NOT close video window when client stops mirroring
.TP
\fB\-nohold\fR Drop current connection when new client connects.
.TP
\fB\-restrict\fR Restrict clients to those specified by "-allow deviceID".
.IP
Uxplay displays deviceID when a client attempts to connect.
.IP
Use "-restrict no" for no client restrictions (default).
.PP
\fB\-allow\fR id Permit deviceID = id to connect if restrictions are imposed.
.TP
\fB\-block\fR id Always block connections from deviceID = id.
.TP
\fB\-FPSdata\fR Show video-streaming performance reports sent by client.
.TP
\fB\-fps\fR n Set maximum allowed streaming framerate, default 30
.TP
\fB\-f\fR {H|V|I}Horizontal|Vertical flip, or both=Inversion=rotate 180 deg
.TP
\fB\-r\fR {R|L} Rotate 90 degrees Right (cw) or Left (ccw)
.TP
\fB\-m\fI [mac]\fR Set MAC address (also Device ID); use for concurrent UxPlays
.IP
if mac xx:xx:xx:xx:xx:xx is not given, a random MAC is used.
.PP
.TP
\fB\-key\fI [fn]\fR Store private key in $HOME/.uxplay.pem (or in file "fn")
.PP
.TP
\fB\-dacp\fI [fn]\fRExport client DACP information to file $HOME/.uxplay.dacp
.IP
(option to use file "fn" instead); used for client remote.
.PP
.TP
\fB\-vdmp\fR [n] Dump h264 video output to "fn.h264"; fn="videodump", change
.IP
with "-vdmp [n] filename". If [n] is given, file fn.x.h264
.IP
x=1,2,.. opens whenever a new SPS/PPS NAL arrives, and <=n
.IP
NAL units are dumped.
.PP
.TP
\fB\-admp\fR [n] Dump audio output to "fn.x.fmt", fmt ={aac, alac, aud}, x
.IP
=1,2,..; fn="audiodump"; change with "-admp [n] filename".
.IP
x increases when audio format changes. If n is given, <= n
.IP
audio packets are dumped. "aud"= unknown format.
.PP
.TP
\fB\-d\fR Enable debug logging
.TP
\fB\-v\fR Displays version information
.TP
\fB\-h\fR Displays help information
.SH
FILES
Options in one of $UXPLAYRC, or ~/.uxplayrc, or ~/.config/uxplayrc
.TP
are applied first (command-line options may modify them). Format:
.TP
one option per line,\fI no\fR initial "-"; lines beginning with "#" ignored.
.SH
AUTHORS
.TP
Various, see website or distribution.
.SH
COPYRIGHT
.TP
Various, see website or distribution. License: GPL v3+:
.TP
GNU GPL version 3 or later. (some parts LGPL v.2.1+ or MIT).
.SH
SEE ALSO
.TP
Website: <https://github.com/FDH2/UxPlay>