From a255c09e3ca3dfb9d39f2a0dc45f11222b302c49 Mon Sep 17 00:00:00 2001
From: "F. Duncanh"
you may find video is improved by the setting -fps 60 that allows +some video to be played at 60 frames per second. (You can see what +framerate is actually streaming by using -vs fpsdisplaysink, and/or +-FPSdata.)
By default, UxPlay is locked to its current client until that
client drops the connection; the option -nohold modifies
this behavior so that when a new client requests a connection, it
@@ -818,14 +822,15 @@ data is updated by the client at 1 second intervals.
-fps n sets a maximum frame rate (in frames per second) for the AirPlay client to stream video; n must be a whole number less than 256. (The client may choose to serve video at any frame rate -lower than this; default is 60 fps.) A setting below 60 fps might be -useful to reduce latency if you are running more than one instance of -uxplay at the same time. This setting is only an advisory to the -client device, so setting a high value will not force a high -framerate. (You can test using “-vs fpsdisplaysink” to see what -framerate is being received, or use the option -FPSdata which displays -video-stream performance data continuously sent by the client during -video-streaming.)
+lower than this; default is 30 fps.) A setting of 60 fps may give you +improved video but is not recommended on Raspberry Pi. A setting below +30 fps might be useful to reduce latency if you are running more than +one instance of uxplay at the same time. This setting is only an +advisory to the client device, so setting a high value will not force a +high framerate. (You can test using “-vs fpsdisplaysink” to see +what framerate is being received, or use the option -FPSdata which +displays video-stream performance data continuously sent by the client +during video-streaming.)-f {H|V|I} implements “videoflip” image transforms:
H = horizontal flip (right-left flip, or mirror image); V = vertical
flip ; I = 180 degree rotation or inversion (which is the combination of
@@ -1098,8 +1103,8 @@ other settings are set in UxPlay/lib/dnssdint.h.
1.62 2023-01-18 Added Audio-only mode time offset -ao x to allow user synchronization of ALAC audio playing on the server with video, song lyrics, etc. playing on the client. x = 5.0 appears to be optimal in -many cases. Quality fixes: change default fps to 60, cleanup in volume -changes, timestamps, some bugfixes.
+many cases. Quality fixes: cleanup in volume changes, timestamps, some +bugfixes.1.61 2022-12-30 Removed -t option (workaround for an Avahi issue, correctly solved by opening network port UDP 5353 in firewall). Remove -g debug flag from CMAKE_CFLAGS. Postpend (instead of prepend) build diff --git a/README.md b/README.md index ce1a43e..dfd4f3c 100644 --- a/README.md +++ b/README.md @@ -324,6 +324,9 @@ are opened: if a firewall is active, also open UDP port 5353 (for mDNS queries) needed by Avahi. See [Troubleshooting](#troubleshooting) below for help with this or other problems. +* you may find video is improved by the setting -fps 60 that allows some video to be played at 60 frames +per second. (You can see what framerate is actually streaming by using -vs fpsdisplaysink, and/or -FPSdata.) + * By default, UxPlay is locked to its current client until that client drops the connection; the option `-nohold` modifies this behavior so that when a new client requests a connection, it removes the current client and takes over. @@ -692,7 +695,8 @@ which will not work if a firewall is running. **-fps n** sets a maximum frame rate (in frames per second) for the AirPlay client to stream video; n must be a whole number less than 256. (The client may choose to serve video at any frame rate lower - than this; default is 60 fps.) A setting below 60 fps might be useful to + than this; default is 30 fps.) A setting of 60 fps may give you improved video + but is not recommended on Raspberry Pi. A setting below 30 fps might be useful to reduce latency if you are running more than one instance of uxplay at the same time. _This setting is only an advisory to the client device, so setting a high value will not force a high framerate._ @@ -922,8 +926,8 @@ The "features" code and other settings are set in `UxPlay/lib/dnssdint.h`. # Changelog 1.62 2023-01-18 Added Audio-only mode time offset -ao x to allow user synchronization of ALAC audio playing on the server with video, song lyrics, etc. playing on the client. - x = 5.0 appears to be optimal in many cases. Quality fixes: change default fps to 60, - cleanup in volume changes, timestamps, some bugfixes. + x = 5.0 appears to be optimal in many cases. Quality fixes: cleanup in volume + changes, timestamps, some bugfixes. 1.61 2022-12-30 Removed -t option (workaround for an Avahi issue, correctly solved by opening network port UDP 5353 in firewall). Remove -g debug flag from CMAKE_CFLAGS. Postpend (instead diff --git a/README.txt b/README.txt index c3ad03b..b473590 100644 --- a/README.txt +++ b/README.txt @@ -384,6 +384,11 @@ opened: if a firewall is active, also open UDP port 5353 (for mDNS queries) needed by Avahi. See [Troubleshooting](#troubleshooting) below for help with this or other problems. +- you may find video is improved by the setting -fps 60 that allows + some video to be played at 60 frames per second. (You can see what + framerate is actually streaming by using -vs fpsdisplaysink, and/or + -FPSdata.) + - By default, UxPlay is locked to its current client until that client drops the connection; the option `-nohold` modifies this behavior so that when a new client requests a connection, it removes the current @@ -842,13 +847,15 @@ updated by the client at 1 second intervals. **-fps n** sets a maximum frame rate (in frames per second) for the AirPlay client to stream video; n must be a whole number less than 256. (The client may choose to serve video at any frame rate lower than this; -default is 60 fps.) A setting below 60 fps might be useful to reduce -latency if you are running more than one instance of uxplay at the same -time. *This setting is only an advisory to the client device, so setting -a high value will not force a high framerate.* (You can test using "-vs -fpsdisplaysink" to see what framerate is being received, or use the -option -FPSdata which displays video-stream performance data -continuously sent by the client during video-streaming.) +default is 30 fps.) A setting of 60 fps may give you improved video but +is not recommended on Raspberry Pi. A setting below 30 fps might be +useful to reduce latency if you are running more than one instance of +uxplay at the same time. *This setting is only an advisory to the client +device, so setting a high value will not force a high framerate.* (You +can test using "-vs fpsdisplaysink" to see what framerate is being +received, or use the option -FPSdata which displays video-stream +performance data continuously sent by the client during +video-streaming.) **-f {H\|V\|I}** implements "videoflip" image transforms: H = horizontal flip (right-left flip, or mirror image); V = vertical flip ; I = 180 @@ -1140,8 +1147,8 @@ other settings are set in `UxPlay/lib/dnssdint.h`. 1.62 2023-01-18 Added Audio-only mode time offset -ao x to allow user synchronization of ALAC audio playing on the server with video, song lyrics, etc. playing on the client. x = 5.0 appears to be optimal in -many cases. Quality fixes: change default fps to 60, cleanup in volume -changes, timestamps, some bugfixes. +many cases. Quality fixes: cleanup in volume changes, timestamps, some +bugfixes. 1.61 2022-12-30 Removed -t option (workaround for an Avahi issue, correctly solved by opening network port UDP 5353 in firewall). Remove diff --git a/lib/raop.c b/lib/raop.c index 319b0de..d7a8a26 100644 --- a/lib/raop.c +++ b/lib/raop.c @@ -454,7 +454,7 @@ raop_init(int max_clients, raop_callbacks_t *callbacks) { raop->width = 1920; raop->height = 1080; raop->refreshRate = 60; - raop->maxFPS = 60; + raop->maxFPS = 30; raop->overscanned = 0; /* initialize switch for display of client's streaming data records */ diff --git a/uxplay.1 b/uxplay.1 index 1d6e153..31be5dc 100644 --- a/uxplay.1 +++ b/uxplay.1 @@ -85,7 +85,7 @@ UxPlay 1.62: An open\-source AirPlay mirroring (+ audio streaming) server. .TP \fB\-FPSdata\fR Show video-streaming performance reports sent by client. .TP -\fB\-fps\fR n Set maximum allowed streaming framerate, default 60 +\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 diff --git a/uxplay.cpp b/uxplay.cpp index 88506c8..8863648 100644 --- a/uxplay.cpp +++ b/uxplay.cpp @@ -394,7 +394,7 @@ static void print_info (char *name) { printf("-nc do Not Close video window when client stops mirroring\n"); printf("-nohold Drop current connection when new client connects.\n"); printf("-FPSdata Show video-streaming performance reports sent by client.\n"); - printf("-fps n Set maximum allowed streaming framerate, default 60\n"); + printf("-fps n Set maximum allowed streaming framerate, default 30\n"); printf("-f {H|V|I}Horizontal|Vertical flip, or both=Inversion=rotate 180 deg\n"); printf("-r {R|L} Rotate 90 degrees Right (cw) or Left (ccw)\n"); printf("-m Use random MAC address (use for concurrent UxPlay's)\n");