참고: AirPlay2 멀티룸 오디오 스트리밍은 지원되지 않습니다. 이를 위해서는 shairport-sync를 사용하세요.
.
" sudo apt install uxplay
"를 사용하여 Debian 기반 Linux 시스템에 uxplay를 설치합니다. FreeBSD에서는 " sudo pkg install uxplay
"를 사용합니다. AUR을 통해 Arch 기반 시스템에서도 사용할 수 있습니다. v. 1.66부터 uxplay는 이제 Fedora 38(" sudo dnf install uxplay
")에 의해 RPM 형식으로도 패키징됩니다.
아직 UxPlay를 패키징하지 않은 다른 RPM 기반 배포판의 경우 RPM "specfile" uxplay.spec 이 이제 최신 릴리스("자산" 참조)와 함께 제공되며 UxPlay 소스 최상위 디렉토리에서도 찾을 수 있습니다. 설치 가능한 RPM 패키지를 구축하려면 이 사양 파일을 사용하는 방법에 대한 섹션을 참조하세요.
설치 후:
(Linux 및 *BSD): UxPlay를 호스팅하는 서버에서 방화벽이 활성화된 경우 mDNS/DNS-SD 쿼리에 대한 기본 네트워크 포트(UDP 5353)가 열려 있는지 확인하세요(자세한 내용은 아래 문제 해결 참조). 또한 Uxplay용 UDP 포트 3개와 TCP 포트 3개를 열고 "uxplay -p " 옵션을 사용하십시오(" man uxplay
" 또는 " uxplay -h
" 참조).
배포판의 사전 컴파일된 uxplay 바이너리 패키지를 설치하더라도 배포판의 어떤 GStreamer 플러그인 패키지 도 설치해야 하는지 확인하려면 UxPlay 실행에 대한 아래 지침을 읽어야 할 수도 있습니다.
오디오 전용 모드(Apple Music 등)의 경우 "uxplay -async" 옵션을 사용하면 최상의 품질을 얻을 수 있지만 iOS에서는 2초의 대기 시간이 발생합니다.
기본값으로 사용하려는 UxPlay 옵션을 시작 파일 ~/.uxplayrc
에 추가합니다(형식 및 기타 가능한 위치는 " man uxplay
" 또는 " uxplay -h
" 참조). 특히 시스템이 PipeWire 오디오 또는 Wayland 비디오 시스템을 사용하는 경우 파일에 기본값으로 "aspipewiresink" 또는 "vs waylandsink"를 추가할 수 있습니다. (Linux/BSD 시스템에서 사용하는 경우 터미널 명령 "ps waux | grep pulse" 또는 "pactl info"의 출력에 "pipewire"가 포함됩니다).
Raspberry Pi: Ubuntu 22.10 이하를 사용하는 경우 Broadcom GPU에 의한 하드웨어 비디오 디코딩을 사용하려면 GStreamer를 패치해야 합니다(Raspberry Pi OS(Bullseye)의 경우 권장되지만 선택 사항: 사용하지 않는 경우 " uxplay -bt709
" 옵션 사용) 패치).
소스에서 최신 UxPlay를 (쉽게) 컴파일하려면 UxPlay 얻기 섹션을 참조하세요.
이 프로젝트는 Linux, macOS 및 *BSD용 GPLv3 오픈 소스 unix AirPlay2 미러 서버입니다. 처음에는 AirplayServer, shairplay 및 playfair에서 파생된 OpenMAX 기반 RPiPlay의 코드를 사용하여 antimof에 의해 개발되었습니다. (antimof 사이트는 더 이상 개발에 참여하지 않지만 정기적으로 새로운 기본 UxPlay 사이트에서 가져온 업데이트를 게시합니다.)
UxPlay는 Debian(10 "Buster", 11 "Bullseye", 12 "Bookworm"), Ubuntu(20.04 LTS, 22.04 LTS, 23.04(Ubuntu 파생 Linux Mint, Pop! _OS), Red Hat 및 클론(Fedora 38, Rocky Linux 9.2), openSUSE Leap 15.5, Mageia 9, OpenMandriva "ROME", PCLinuxOS, Arch Linux, Manjaro는 모든 Linux 시스템에서 실행되어야 하며 macOS Catalina 및 Ventura(Intel) 및 Sonoma(M2), FreeBSD 14.0, Windows 10 및 11(64)에서도 테스트되었습니다. 조금).
Raspberry Pi 4 모델 B에서는 Raspberry Pi OS(Bullseye 및 Bookworm)(32비트 및 64비트), Ubuntu 22.04 LTS 및 23.04, Manjaro RPi4 23.02 및 openSUSE 15.5(하드웨어 비디오 디코딩 없음)에서 테스트되었습니다. 또한 Raspberry Pi Zero 2W, 3 모델 B+ 및 현재 5에서도 테스트되었습니다.
주요 용도는 Linux, macOS 또는 기타 Unix를 실행하는 호스트의 서버 디스플레이에서 iOS/iPadOS/macOS 클라이언트(iPhone, iPod Touch, iPad, Mac 컴퓨터)의 화면 미러링(오디오 포함)을 위해 AppleTV처럼 작동하는 것입니다. (이제 Microsoft Windows도 마찬가지입니다). UxPlay는 "Legacy Protocol"을 사용하여 Apple의 AirPlay2 프로토콜을 지원하지만 일부 기능이 누락되어 있습니다. (Apple의 AirPlay 2 프로토콜에 대해 공개적으로 알려진 자세한 내용은 여기, 여기 및 여기에서 확인할 수 있습니다. 최신 프로토콜을 추가하기 위한 리소스가 될 수 있는 pyatv도 참조하세요.) 향후 iOS 릴리스가 "레거시 프로토콜"을 계속 지원할 것이라는 보장은 없습니다. ", iOS 17은 계속 지원됩니다.
UxPlay 서버와 해당 클라이언트는 Bonjour/Zeroconf mDNS/DNS-SD 서버 도 실행 중인 동일한 LAN에 있어야 합니다(DNS-SD "서비스 검색" 서비스만 엄격히 필요하며, 로컬 네트워크도 ".local" mDNS 기반 유형이어야 합니다. Linux 및 BSD Unix 서버에서 이는 일반적으로 Avahi에서 avahi-daemon 서비스를 통해 제공되며 대부분의 Linux 배포판에 포함되어 있습니다(이 서비스는 macOS, iOS 또는 Windows 서버에서도 제공될 수 있음).
iOS/MacOS 클라이언트에 의한 UxPlay 서버 연결은 AirPlay 미러 모드(클라이언트 화면을 미러링하는 동안 손실 압축된 AAC 오디오를 스트리밍) 또는 화면 미러링 없이 ALAC(Apple Lossless) 오디오를 스트리밍하는 대체 AirPlay 오디오 모드에서 시작할 수 있습니다. 오디오 모드에서는 메타데이터가 uxplay 터미널에 표시됩니다. UxPlay 옵션 -ca <name>
을 사용하면 함께 제공되는 표지 아트도 주기적으로 업데이트되는 <name>
파일로 출력됩니다. 선택한 (다시 로드하는) 그래픽 뷰어로 볼 수 있습니다. 활성 연결 중에 미러 모드 와 오디오 모드 간 전환이 가능합니다. 미러 모드에서는 미러링을 중지하고(또는 미러 창을 닫고) 오디오 모드 연결을 시작하고, 다시 시작하여 전환합니다. 미러 모드 연결 , 오디오 모드 에서 나가거나 다시 들어갈 때 커버 아트 디스플레이가 중지/다시 시작됩니다 .
Apple 비디오-DRM(클라이언트의 "Apple TV 앱" 콘텐츠에 있음)은 UxPlay로 해독할 수 없으며 Apple TV 앱은 UxPlay의 AirPlay 미러 모드를 사용하여 시청할 수 없습니다(보호되지 않은 오디오만 AAC로 스트리밍됩니다). 형식), 그러나 "YouTube 앱"과 같은 DRM 프리 앱의 비디오 및 오디오 콘텐츠는 UxPlay를 통해 미러 모드로 스트리밍됩니다.
UxPlay는 현재 미러가 아닌 AirPlay 비디오 스트리밍(클라이언트가 HLS 콘텐츠를 디코딩하고 다시 인코딩하는 것을 방지하기 위해 HLS 콘텐츠를 직접 수신하는 AirPlay 서버의 웹 서버를 제어함)을 지원하지 않으므로 AirPlay 비디오에 대한 아이콘을 사용하여 YouTube 앱과 같은 앱은 함께 제공되는 비디오 없이 오디오(무손실 ALAC 형식)만 전송합니다(향후 UxPlay 릴리스에서 HLS 비디오를 지원할 계획이 있습니다).
UxPlay는 오디오 및 비디오 렌더링을 위해 GStreamer "플러그인"을 사용합니다. 이는 선택한 플러그인을 사용하여 비디오와 오디오가 "즉시" 지원된다는 의미입니다. AirPlay는 h264 형식으로 비디오를 스트리밍합니다. gstreamer 디코딩은 플러그인에 구애받지 않으며 가능한 경우 가속 GPU 하드웨어 h264 디코더를 사용합니다. 그렇지 않은 경우 소프트웨어 디코딩이 사용됩니다.
Intel 및 AMD 통합 그래픽용 VAAPI, "Nouveau" 오픈 소스 드라이버가 포함된 NVIDIA
Intel 또는 AMD GPU의 경우 오픈 소스 VAAPI gstreamer 플러그인을 사용한 하드웨어 디코딩이 바람직합니다. NVIDIA 그래픽용 오픈 소스 "Nouveau" 드라이버도 원칙적으로 지원됩니다. 여기를 참조하세요. 하지만 이를 위해서는 독점 NVIDIA 드라이버에서 추출한 펌웨어로 VAAPI를 보완해야 합니다.
독점 드라이버를 갖춘 NVIDIA
nvh264dec
플러그인(GStreamer-1.18.0부터 gstreamer1.0-plugins-bad에 포함됨)은 NVIDIA의 CUDA 드라이버 libcuda.so
가 설치된 후 NVIDIA GPU에서 비디오 디코딩을 가속화하는 데 사용할 수 있습니다. GStreamer-1.16.3 이하의 경우 플러그인은 nvdec
라고 하며 사용자가 빌드해야 합니다.
Raspberry Pi(Pi 4B 및 이전 버전)에서 h264 하드웨어 디코딩을 위한 Video4Linux2 지원
Raspberry Pi(RPi) 컴퓨터(Pi 4 모델 B에서 테스트됨)는 이제 소프트웨어 비디오 디코딩을 사용하여 UxPlay를 실행할 수 있지만 Pi의 Broadcom 2835 GPU의 펌웨어에 의한 하드웨어 가속 h264/h265 디코딩이 선호됩니다. UxPlay는 GStreamer-1.22 Video4Linux2(v4l2) 플러그인을 사용하여 이에 액세스합니다. 지금까지 Raspberry Pi OS에만 포함된 Raspberry Pi에서 관리하는 메인라인 외부 Linux 커널 모듈 bcm2835-codec과 Raspberry Pi Imager에서 사용할 수 있는 다른 두 배포판(Ubuntu, Manjaro)을 사용합니다. (GStreamer < 1.22의 경우 UxPlay Wiki를 참조하세요.)
(신규): Raspberry Pi(Pi 4 모델 B 및 Pi 5)에서 h265(HEVC) 하드웨어 디코딩 지원
지원이 이루어지고 있지만 아직까지 만족스러운 결과를 얻지 못했습니다. Pi 모델 5는 h265 비디오에 대해 하드웨어 가속(GPU) 디코딩만 제공하지만 H264는 제공하지 않습니다. CPU는 만족스러운 소프트웨어 H264 디코딩을 수행할 만큼 강력하기 때문입니다.
UxPlay의 GPLv3 라이선스에는 v. 3.0.0 이전의 OpenSSL 버전에 연결될 때 컴파일된 형식으로 배포할 수 있도록 명시적으로 허용하는 추가된 "GPL 예외"가 없습니다(OpenSSL의 이전 버전에는 OpenSSL이 가능하지 않은 한 GPL과 호환되지 않는 라이선스 조항이 있습니다). *BSD에 있는 "시스템 라이브러리"로 간주됩니다. 많은 Linux 배포판은 OpenSSL을 "시스템 라이브러리"로 취급하지만 일부(예: Debian)는 그렇지 않습니다. 이 경우 OpenSSL-3.0.0 이상과 연결하면 문제가 해결됩니다.
UxPlay-master.zip을 다운로드하여 압축을 풀거나 (git이 설치된 경우) "git clone https://github.com/FDH2/UxPlay"를 실행하세요. 릴리스에 나열된 최신 또는 이전 버전을 다운로드할 수도 있습니다.
(Debian 기반이 아닌 Linux 또는 *BSD의 경우 이 지침을 적용하세요. macOS의 경우 아래의 특정 지침을 참조하세요.) 문제가 있는 경우 아래 문제 해결을 참조하세요.
표준 개발 라이브러리가 설치된 C/C++ 컴파일러(예: g++)가 필요합니다. 데비안 기반 시스템은 소프트웨어 컴파일에 사용하기 위한 "빌드 필수" 패키지를 제공합니다. pkg-config도 필요합니다. " which pkg-config
"에서 찾을 수 없으면 pkg-config 또는 유사한 대체 pkgconf를 설치하십시오. 또한 cmake>=3.5가 설치되어 있는지 확인하세요. " sudo apt install cmake
" (필요한 경우 여기에 build-essential
및 pkg-config
(또는 pkgconf
)를 추가하세요).
배포판이 OpenSSL 1.1.1 이상과 libplist 2.0 이상을 제공하는지 확인하세요. (이는 Debian 10 "Buster" 기반 시스템(예: Ubuntu 18.04) 이상을 의미합니다. Debian 10 시스템에서는 "libplist"가 이전 버전이므로 "libplist3"이 필요합니다.) 그렇지 않은 경우 빌드하고 설치해야 할 수도 있습니다. 이는 소스에서 가져온 것입니다(이 README 끝에 있는 지침 참조).
비표준 OpenSSL 설치가 있는 경우 환경 변수 OPENSSL_ROOT_DIR을 설정해야 할 수도 있습니다( 예 : 설치된 위치에 " export OPENSSL_ROOT_DIR=/usr/local/lib64
"). 마찬가지로, 비표준(또는 다중) GStreamer 설치의 경우 환경 변수 GSTREAMER_ROOT_DIR을 UxPlay가 사용해야 하는 gstreamer 설치의 ".../gstreamer-1.0/" 디렉터리가 포함된 디렉터리로 설정합니다( 예 : "~ /my_gstreamer/lib/gstreamer-1.0/", " export GSTREAMER_ROOT_DIR=$HOME/my_gstreamer/lib
로 이 위치를 설정합니다. ").
터미널 창에서 다운로드한 소스 코드의 소스 디렉터리("UxPlay-*", "*" = "master" 또는 zip 파일 다운로드의 경우 릴리스 태그, "git clone" 다운로드의 경우 "UxPlay")로 디렉터리를 변경한 다음 아래 지침을 따르십시오.
참고: 기본적으로 UxPlay는 그것이 구축된 컴퓨터에 대한 최적화를 통해 구축됩니다. 배포용으로 패키징할 때처럼 그렇지 않은 경우 cmake 옵션 -DNO_MARCH_NATIVE=ON
사용하세요.
Linux 또는 *BSD에서 X11 Windows를 사용하고 키 누르기(F11 또는 Alt_L+Enter)를 사용하여 전체 화면 모드를 전환하거나 전환하려면 UxPlay는 X11에 의존하여 구축되어야 합니다. UxPlay-1.59부터 X11 개발 라이브러리가 설치되고 감지 되면 기본적으로 이 작업이 수행됩니다. " sudo apt install libx11-dev
"를 사용하여 설치하세요. GStreamer < 1.20이 감지되면 화면 공유 앱( 예 : Zoom)에 필요한 수정 사항도 적용됩니다.
-DNO_X11_DEPS=ON
을 사용하세요.sudo apt install libssl-dev libplist-dev
". ( 소스에서 OpenSSL 및 libplist를 빌드해야 하는 경우는 제외 )sudo apt install libavahi-compat-libdnssd-dev
sudo apt install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
. (* 소스에서 Gstreamer를 빌드한 경우 건너뛰기 )cmake .
( 소스를 수정하는 경우 유용한 보다 깔끔한 빌드를 위해 이를 " mkdir build; cd build; cmake ..
"로 바꾸십시오. 그런 다음 필요한 경우 소스에 영향을 주지 않고 build
디렉터리의 내용을 삭제할 수 있습니다. ) 또한 필요에 따라 여기에 cmake " -D
" 옵션을 추가합니다(예: -DNO_X11_DEPS=ON
또는 -DNO_MARCH_NATIVE=ON
).make
sudo make install
(나중에 이것이 실행된 동일한 디렉터리에서 sudo make uninstall
사용하여 제거할 수 있음) 이렇게 하면 실행 파일 " uxplay
"가 /usr/local/bin
에 설치되고 맨페이지는 /usr/local/share/man/man1
과 같은 표준 위치에 설치되고 README 파일은 /usr/local/share/doc/uxplay
같은 위치에 설치됩니다. /usr/local/share/doc/uxplay
). ("man uxplay"가 실패하면 $MANPATH가 설정되어 있는지 확인하십시오. 그렇다면 맨페이지 경로(보통 /usr/local/share/man/)를 $MANPATH 에 추가해야 합니다.) uxplay 실행 파일은 다음과 같이 할 수도 있습니다. 설치하기 전에 테스트하려는 경우 빌드 프로세스 후 빌드 디렉토리에 있습니다(이 경우 GStreamer 플러그인을 먼저 설치해야 합니다).
**RPM 기반 배포판의 경우 RPM 사양 파일 uxplay.spec도 사용할 수 있습니다. 설치 가능한 rpm 패키지 빌드를 참조하세요.
Red Hat 또는 CentOS와 같은 클론(현재는 Rocky Linux 또는 Alma Linux로 계속됨): (sudo dnf install 또는 sudo yum install) openssl-devel libplist-devel avahi-compat-libdns_sd-devel gstreamer1-devel gstreamer1-plugins-base- devel (전체 화면 X11의 경우 +libX11-devel) (이 중 일부는 "CodeReady"에 있을 수 있음) 복제본에 의해 "PowerTools"라고 불리는 추가 기능 저장소)
Mageia, PCLinuxOS, OpenMandriva: 이름 변경을 제외하고 Red Hat과 동일: (Mageia) "gstreamer1.0-devel", "gstreamer-plugins-base1.0-devel"; (OpenMandriva) "libopenssl-devel", "gstreamer-devel", "libgst-plugins-base1.0-devel". PCLinuxOS: Mageia와 동일하지만 패키지 관리자로 시냅틱(또는 apt)을 사용합니다.
openSUSE: (sudo zypper 설치) libopenssl-3-devel (이전 libopenssl-devel) libplist-2_0-devel (이전 libplist-devel) avahi-compat-mDNSResponder-devel gstreamer-devel gstreamer-plugins-base-devel (+ libX11- 전체 화면 X11용 개발).
Arch Linux ( AUR의 패키지로도 사용 가능 ): (sudo pacman -Syu) openssl libplist avahi gst-plugins-base.
FreeBSD: (sudo pkg 설치) libplist gstreamer1. dns_sd 라이브러리를 제공하려면 avahi-libdns 또는 mDNSResponder도 설치해야 합니다. OpenSSL은 이미 시스템 라이브러리로 설치되어 있습니다.
처음으로 RPM을 빌더는 먼저 rpm-build 및 rpmdevtools 패키지를 설치한 다음 " rpmdev-setuptree
"를 사용하여 rpmbuild 트리를 만들어야 합니다. 그런 다음 uxplay.spec을 다운로드하여 ~/rpmbuild/SPECS
에 복사합니다. 해당 디렉터리에서 " rpmdev-spectool -g -R uxplay.spec
"을 실행하여 해당 소스 파일 uxplay-*.tar.gz
~/rpmbuild/SOURCES
에 다운로드합니다("rpmdev-spectool"은 "spectool"이라고도 함). ); 그런 다음 " rpmbuild -ba uxplay.spec
"을 실행합니다(이 보고서에 나오는 필수 종속성을 설치해야 합니다). ~/rpmbuild/RPMS
하위 디렉터리에 uxplay RPM 패키지가 생성되어야 합니다. ( uxplay.spec은 Fedora 38, Rocky Linux 9.2, openSUSE Leap 15.5, Mageia 9, OpenMandriva, PCLinuxOS에서 테스트되었습니다. 다른 RPM 기반 배포판에 대한 종속성 목록을 포함하도록 쉽게 수정할 수 있습니다.)
다음으로 sudo apt install gstreamer1.0-<plugin>
에 필요한 GStreamer 플러그인을 설치합니다. 필요한 <plugin>
값은 다음과 같습니다.
Debian 기반 배포판은 일부 플러그인 패키지를 더 작은 조각으로 나눕니다. 필요할 수도 있는 일부 패키지에는 OpenGL 지원을 위한 " gl "이 포함됩니다(이것은 "-vs glimagesink" 비디오 싱크를 제공하며 이는 Raspberry Pi를 포함하여 많은 시스템에서 매우 유용할 수 있습니다) ), NVIDIA GPU에 의한 h264/h265 디코딩을 사용할 때 항상 사용해야 함), " gtk3 "("-vs gtksink" 비디오 싱크 제공) 및 X11 지원을 위한 " x " 이미 설치되어 있을 수도 있습니다. " vaapi "는 Intel 또는 AMD 그래픽의 하드웨어 가속 h264 비디오 디코딩에 필요합니다(단, 독점 드라이버를 사용하는 NVIDIA에서는 사용하지 않음). 사운드가 작동하지 않으면 오디오 설정 방법에 따라 " alsa "", " pulseaudio " 또는 " pipewire " 플러그인을 설치해야 할 수도 있습니다.
어떤 경우에는 특허 문제로 인해 미러 모드에서 AAC 오디오를 디코딩하는 데 필요한 libav 플러그인 기능 avdec_aac 가 공식 배포판에 제공되지 않습니다. 해당 배포판에 대한 커뮤니티 저장소에서 가져오십시오.
Red Hat 또는 CentOS와 같은 클론(현재는 Rocky Linux 또는 Alma Linux로 계속됨): gstreamer1-libav gstreamer1-plugins-bad-free(Intel/AMD 그래픽의 경우 + gstreamer1-vaapi)를 설치합니다. 최근 Fedora에서는 gstreamer1-libav의 이름이 gstreamer1-plugin-libav로 변경되었습니다. avdec_aac를 얻으려면 rpmfusion.org에서 패키지를 설치하십시오 . (rpmfusion에서 ffmpeg-libs를 얻으십시오. RHEL 또는 클론에서는 최근 Fedora가 아닌 경우 gstreamer1-libav도 거기에서 얻으십시오).
Mageia, PCLinuxOS, OpenMandriva: gstreamer1.0-libav gstreamer1.0-plugins-bad(Intel/AMD 그래픽의 경우 + gstreamer1.0-vaapi)를 설치합니다. Mageia에서 avdec_aac를 얻으려면 "tainted" 저장소에서 ffmpeg를 설치하십시오 (더 완전한 gstreamer1.0-plugins-bad도 제공함).
openSUSE: gstreamer-plugins-libav gstreamer-plugins-bad(Intel/AMD 그래픽의 경우 + gstreamer-plugins-vaapi)를 설치합니다. avdec_aac를 얻으려면 Packman "Essentials"에서 openSUSE용 libav* 패키지를 설치하십시오 . 권장 사항: Packman 저장소를 추가한 후 YaST 소프트웨어 관리의 옵션을 사용하여 멀티미디어용 모든 시스템 패키지를 Packman으로 전환하세요.
Arch Linux gst-plugins-good gst-plugins-bad gst-libav(Intel/AMD 그래픽의 경우 + gstreamer-vaapi)를 설치합니다.
FreeBSD: gstreamer1-libav, gstreamer1-plugins, gstreamer1-plugins-* (* = core, good, bad, x, gtk, gl, vulkan, pulse, v4l2, ...), (+ Intel의 경우 gstreamer1-vaapi/ AMD 그래픽).
UxPlay-1.64부터 UxPlay는 구성 파일에서 읽은 옵션으로 시작할 수 있습니다. 이 파일은 (1) 환경 변수 $UXPLAYRC
에 의해 지정된 경로가 있는 파일, (2) 사용자 홈의 ~/.uxplayrc
중 가장 먼저 발견됩니다. 디렉토리 ("~"), (3) ~/.config/uxplayrc
. 형식은 한 줄에 하나의 옵션이며 명령줄 옵션의 첫 번째 "-"
를 생략합니다. "#"
으로 시작하는 구성 파일의 행은 주석으로 처리되어 무시됩니다.
터미널 창에서 uxplay를 실행하세요 . 일부 시스템에서는 -fs
옵션을 사용하여 전체 화면 모드를 지정하거나 F11 또는 (왼쪽 Alt를 누른 채)+Enter 키를 사용하여 전체 화면 모드로 전환하거나 전환할 수 있습니다. 완료되면 Ctrl-C를 사용하거나 창을 닫아 종료하세요. iOS 클라이언트의 드롭다운 "화면 미러링" 패널에 UxPlay 서버가 표시되지 않으면 DNS-SD 서버(일반적으로 avahi-daemon)가 실행 중인지 확인하세요. 터미널 창에서 systemctl status avahi-daemon
으로 이 작업을 수행하세요. avahi-daemon이 실행 중이 아닌 것으로 표시되면 sudo systemctl [start,stop,enable,disable] avahi-daemon
사용하여 제어합니다(*BSD와 같은 시스템이 아닌 시스템에서는 sudo service avahi-daemon [status, start, stop, restart, ...]
사용). sudo service avahi-daemon [status, start, stop, restart, ...]
). UxPlay가 표시되지만 클라이언트가 선택되었을 때 연결에 실패하는 경우 일부 네트워크 포트가 열려 있지 않으면 UxPlay가 클라이언트 연결 요청을 수신하지 못하도록 막는 서버에 방화벽이 있을 수 있습니다. 방화벽이 활성화된 경우 UDP 포트 5353도 엽니다. (mDNS 쿼리의 경우) Avahi에 필요합니다 . 이 문제나 기타 문제에 대한 도움말은 아래 문제 해결을 참조하세요.
Apple TV와 달리 UxPlay 서버는 기본적으로 클라이언트가 서버에 표시된 핀 코드를 사용하여 처음에 서버와 "페어링"하도록 요구하지 않습니다(이후 클라이언트는 서버를 "신뢰"하므로 이를 반복할 필요가 없습니다). v1.67부터 Uxplay는 "pin-authentication"을 옵션으로 제공합니다. 사용하려는 경우 자세한 내용은 사용법의 " -pin
" 및 " -reg
"를 참조하세요. MDM(모바일 장치 관리, 종종 고용주 소유 장치에 존재)을 사용하는 일부 클라이언트는 핀 인증을 사용해야 합니다. UxPlay는 핀 옵션 없이 실행되는 경우에도 이를 제공합니다.
기본적으로 UxPlay는 해당 클라이언트가 연결을 끊을 때까지 현재 클라이언트에 잠겨 있습니다. UxPlay-1.58부터 -nohold
옵션은 새 클라이언트가 연결을 요청할 때 현재 클라이언트를 제거하고 이어받도록 이 동작을 수정합니다. UxPlay 1.66에는 "deviceID"(Apple 장치에서는 변경할 수 없는 것으로 나타남)를 사용하여 연결이 허용되는 클라이언트를 제어하는 메커니즘( -restrict
, -allow <id>
, -block <id>
)이 도입되었습니다.
미러 모드에서 GStreamer는 오디오와 함께 비디오를 재생하는 두 가지 방법을 선택할 수 있습니다. UxPlay-1.64 이전에는 비디오 및 오디오 스트림이 도착한 후 가능한 한 빨리 재생되었습니다(GStreamer " sync=false " 방법). , 동기화를 유지하는 데 사용되는 GStreamer 내부 시계를 사용합니다. UxPlay-1.64부터 클라이언트가 보낸 오디오 및 비디오 스트림의 타임스탬프를 사용하는 다른 방법(GStreamer의 " sync=true " 모드)이 새로운 기본값입니다 . 디코딩 성능이 낮은 UxPlay 호스트(예: Raspberry Pi Zero W 또는 3 B+ 모델)에서는 오디오와 함께 재생할 시간에 맞춰 디코딩할 수 없는 비디오 프레임이 삭제되어 비디오가 불안정해지지만 여전히 동기화됩니다.
늦은 비디오 프레임을 삭제하지 않는 이전 방법은 더 강력한 시스템에서 잘 작동했으며 UxPlay 옵션 " -vsync no
"와 함께 계속 사용할 수 있습니다. 이 방법은 "라이브 스트리밍"에 적용되며 UxPlay를 Mac 컴퓨터의 두 번째 모니터로 사용할 때 더 좋을 수 있습니다. 반면 새로운 기본 타임스탬프 기반 방법은 비디오를 시청하고 입술 움직임과 음성을 유지하는 데 가장 적합합니다. 동기화되었습니다. (타임스탬프를 사용하지 않으면 비디오가 충분히 빠르게 디코딩되지 않으면 결국 오디오보다 뒤처지게 됩니다. 이전에는 타임스탬프를 사용하지 않았을 때 하드웨어 가속 비디오 디코딩을 통해 이를 방지할 수 있었습니다.)
-async
timestamp-를 사용하세요. 기반 옵션. (예를 들어 UxPlay 서버에서 우수한 사운드를 들으면서 클라이언트에서 Apple Music 가사를 따르려는 경우가 있을 수 있습니다.) 이로 인해 클라이언트의 비디오가 서버의 오디오와 일치하도록 지연되므로 클라이언트에서 시작된 일시 중지 또는 트랙 변경이 서버에서 재생되는 오디오에 적용되기 전에 약간의 지연이 발생합니다. AirPlay 볼륨 제어는 볼륨(게인)을 최대 -30dB까지 감쇠합니다. 데시벨 범위 -30:0은 -db
("-db Low " 또는 "-db 옵션을 사용하여 Low :0 또는 Low : High 에서 다시 조정할 수 있습니다. 낮음 : 높음 "), 낮음은 음수여야 합니다. 크기 조정은 데시벨 단위로 선형입니다. GStreamer의 오디오 형식은 +20db 이상의 오디오 게인을 "클립"하므로 High를 해당 레벨 아래로 유지하십시오. -taper
옵션은 일부 사용자가 선호할 수 있는 "테이퍼형" AirPlay 볼륨 제어 프로필을 제공합니다.
-vsync 및 -async 옵션을 사용하면 미세 조정을 위해 밀리초 단위 로 선택적 포지티브(또는 네거티브) 오디오 지연 조정이 가능합니다. -vsync 20.5
비디오에 비해 오디오를 0.0205초 지연시킵니다. 음수 값을 사용하면 앞당겨집니다.)
일부 비디오를 초당 60프레임으로 재생할 수 있도록 -fps 60 설정을 통해 비디오 성능이 향상되었음을 알 수 있습니다. (-vs fpsdisplaysink 및/또는 -FPSdata를 사용하여 실제로 스트리밍되는 프레임 속도를 확인할 수 있습니다.) 이를 사용할 때는 기본 타임스탬프 기반 동기화 옵션인 -vsync
사용해야 합니다.
UxPlay-1.54부터 ALAC(오디오 전용) 모드에서 Apple Music과 같은 소스의 "커버 아트"를 표시할 수 있습니다. 백그라운드에서 " uxplay -ca <name> &
"를 실행한 다음 자동 다시 로드로 이미지 뷰어를 실행하세요. 기능: 예는 "feh"입니다. 전경에서 " feh -R 1 <name>
"을 실행합니다. feh를 종료한 다음 " ctrl-C fg ctrl-C
"를 사용하여 Uxplay를 종료합니다.
기본적으로 GStreamer는 알고리즘을 사용하여 사용하기에 가장 적합한 "비디오 싱크"(이미지를 표시하는 그래픽 드라이버에 대한 GStreamer의 용어)를 검색합니다. uxplay 옵션 -vs <videosink>
로 이를 무시할 수 있습니다. 사용할 수 있는 비디오 싱크는 운영 체제 및 그래픽 하드웨어에 따라 다릅니다. " gst-inspect-1.0 | grep sink | grep -e video -e Video -e image
"를 사용하여 사용 가능한 비디오 싱크를 확인하세요. Linux/*BSD에서 가능한 몇 가지 사항은 다음과 같습니다:
glimagesink (OpenGL), 웨이랜드싱크
xvimagesink , ximagesink (X11)
kmssink , fbdevsink (X11이 없는 콘솔 그래픽)
vaapisink (Intel/AMD 하드웨어 가속 그래픽용); NVIDIA 하드웨어 그래픽(CUDA 포함)의 경우 " -vd nvh264dec
"(또는 GStreamer-1.24에서 "nvh264dec"가 될 새로운 변형인 "nvh264sldec")와 결합된 glimagesink를 사용하십시오.
서버가 "헤드리스"(연결된 모니터가 없고 오디오만 렌더링)인 경우 -vs 0
사용하세요.
GStreamer는 또한 최고의 "오디오싱크"를 검색합니다. -as <audiosink>
로 선택을 재정의합니다. Linux에서는 pulsesink, alsasink, Pipewiresink, oss4sink를 선택할 수 있습니다. gst-inspect-1.0 | grep sink | grep -e audio -e Audio
.
일반적인 문제 중 하나는 GStreamer가 잘못 구성되었거나 가속화된 하드웨어 h264 비디오 디코딩(예: VAAPI)을 사용하려고 시도하는 것과 관련이 있습니다. 소프트웨어 비디오 디코딩을 강제하려면 " uxplay -avdec
"를 시도하십시오. 이것이 작동하면 필요한 경우 가속 하드웨어 비디오 디코딩을 수정하거나 GStreamer vaapi 플러그인을 제거할 수 있습니다.
더 많은 런타임 옵션을 보려면 사용법을 참조하세요.
프레임 버퍼 비디오(Raspberry Pi OS "Lite" 및 기타 비X11 배포용)의 경우 KMS 비디오 싱크 "-vs kmssink"를 사용합니다(DirectFB 프레임 버퍼 비디오 싱크 "dfbvideosink"는 Pi에서 손상되고 segfaults). 이 경우 "-vs kmssink" 옵션을 명시적으로 사용해야 합니다. 이 옵션이 없으면 autovideosink가 올바른 비디오 싱크를 찾지 못합니다.
Raspberry Pi 5는 하드웨어 H264 디코딩을 제공하지 않으며 필요하지도 않습니다.
Pi Zero 2W, 3 Model B+ 및 4 Model B는 Broadcom GPU에 의한 하드웨어 H264 디코딩을 사용해야 하지만 Raspberry Pi 커널 트리에서 유지 관리되는 주류 커널 모듈 bcm2835_codec이 필요합니다. 이를 제공하는 것으로 알려진 배포판에는 Raspberry Pi OS, Ubuntu 및 Manjaro-RPi4가 포함됩니다. 이 모듈을 사용할 수 없는 경우 소프트웨어 디코딩(옵션 -avdec)을 사용하십시오.
Uxplay는 하드웨어 H264 디코딩이 사용되는 경우 GStreamer-1.22 이상의 Video4Linux2(v4l2) 플러그인을 사용하여 GPU에 액세스합니다. 이 작업은 자동으로 수행되어야 합니다. -v4l2 옵션을 사용할 수 있지만 일반적으로 GStreamer가 스스로 최상의 비디오 파이프라인을 찾도록 하는 것이 가장 좋습니다.
이전 배포판(GStreamer < 1.22)에서는 v4l2 플러그인에 패치가 필요합니다. UxPlay Wiki를 참조하세요. 레거시 Raspberry Pi OS(Bullseye)에는 uxplay 옵션 -bt709가 필요한(그리고 -v4l2를 사용하지 않는) 부분적으로 패치된 GStreamer-1.18.4가 있습니다. 이 경우에는 UxPlay Wiki에서 전체 패치를 적용하는 것이 더 좋습니다.
"이중 레거시" Raspberry Pi OS(Buster)의 경우 GStreamer-1.14용 패치가 없습니다. 대신, UxPlay를 빌드하기 전에 먼저 이 지침을 사용하여 소스에서 완전히 새로운 GStreamer-1.18.6을 빌드하세요.
32비트 OS를 실행하는 Raspberry Pi 3 모델 B+는 GStreamer OMX 플러그인(" -vd omxh264dec
" 옵션 사용)을 사용하여 GPU에 액세스할 수도 있지만 Pi 4 모델 B 펌웨어에서는 이 문제가 발생합니다. OMX 지원은 Raspberry Pi OS(Bullseye)에서 제거되었지만 Buster에는 있습니다.
H265(4K) 비디오는 Raspberry Pi 5 모델과 Raspberry Pi 4 모델 B의 Broadcom GPU에 의한 하드웨어 디코딩으로 지원됩니다. GStreamer는 이 하드웨어 디코딩을 활용하는 것으로 보이지만 UxPlay에서 만족스러운 4K 비디오 렌더링 속도를 제공합니다. 이 Raspberry Pi 모델은 아직 달성되지 않았습니다. h265 지원을 활성화하려면 "-h265" 옵션이 필요합니다. 이 모드에서는 유선 이더넷 연결이 선호됩니다(클라이언트에서 필요할 수도 있음).
GPU 비디오 디코딩을 사용하더라도 타임스탬프를 사용하여 오디오와 비디오의 동기화를 유지하기 위해 저전력 모델에서는 일부 프레임이 삭제될 수 있습니다. 레거시 Raspberry Pi OS(Bullseye)에서는 raspi-config "성능 옵션"을 사용하여 GPU에 할당할 메모리 양을 지정할 수 있지만 Bookworm에는 이 설정이 없는 것으로 보입니다(그러나 한 줄을 추가하여 여전히 128MB로 설정할 수 있습니다). /boot/config.txt의 "gpu_mem=128"). Pi Zero 2 W(512MB 메모리 포함)는 GPU에 128MB가 할당된(기본값은 64MB인 것으로 보임) 32비트 Bullseye 또는 Bookworm Lite에서 테스트했을 때 잘 작동했습니다.
R Pi의 기본 uxplay 옵션은 uxplay [-vs <videosink>]
입니다. <videosink>
= glimagesink
선택이 때때로 유용합니다. Wayland 비디오 합성기에서는 <videosink>
= waylandsink
사용하세요. 프레임 버퍼 비디오의 경우 <videosink>
= kmssink
사용하세요.
ssh user@remote_host
export DISPLAY=:0
nohup uxplay [options] > FILE &
원격 호스트에서 사운드와 비디오가 재생됩니다. "nohup"은 SSH 세션이 닫혀도 uxplay를 계속 실행합니다. 터미널 출력은 FILE에 저장됩니다(삭제하려면 /dev/null일 수 있음).
참고 : 기본 AirPlay 서버 기능은 MacOS 12 Monterey에 포함되어 있지만 최근 하드웨어로 제한됩니다. UXplay는 몬트레이를 실행할 수 없거나 몬트레이를 실행할 수는 있지만 AirPlay를 실행할 수없는 구형 MACOS 시스템에서 실행할 수 있습니다.
MACOS에 대한 이러한 지침은 Xcode 명령 줄 개발자 도구가 설치되었다고 가정합니다 (Xcode가 설치된 경우 터미널을 열고 "sudo xcode-select-Install"을 입력하고 조건을 수락).
CMake> = 3.13이 설치된 것으로 가정합니다. 패키지 관리자 Macports ( sudo port install cmake
), 홈 브루 ( brew install cmake
) 또는 https://cmake.org/download/에서 다운로드 할 수 있습니다. 또한 Uxplay를 가져 오는 데 사용하는 경우 git
설치하십시오.
다음으로 LibPlist 및 OpenSSL-3.X를 설치하십시오. 이러한 라이브러리의 정적 버전은 MACOS 빌드에 사용되므로 원하는 경우 UXPlay를 구축 한 후에는 제거 할 수 있습니다.
Homebrew를 사용하는 경우 : brew install libplist openssl@3
Macports를 사용하는 경우 : sudo port install libplist-devel openssl3
그렇지 않으면, 소스에서 libplist 및 elessl을 구축하십시오.이 readme의 끝 근처의 지침을 참조하십시오. 개발 도구 (Autoconf, Automake, Libtool 등 )를 설치해야합니다.
다음으로 GSTREAMER-1.0의 최신 MACOS 릴리스를 받으십시오.
"공식"gstreamer (Macports 및 Homebrew 사용자 모두 권장) : https://gstreamer.freedesktop.org/download/에서 MacOS 용 GStreamer 릴리스를 설치하십시오. (이 릴리스에는 자체 PKG-Config가 포함되어 있으므로 설치할 필요가 없습니다.) GSTREAMER-1.0 및 GSTREAMER-1.0-DEVEL 패키지를 모두 설치하십시오. 다운로드 후 Shift-Click을 클릭하여 설치하십시오 (/library/frameworks/gstreamer.framework에 설치). Homebrew 또는 MacPorts 사용자는 "공식"릴리스를 사용하는 경우 패키지 관리자가 제공 한 GSTREAMER를 설치하거나 제거해서는 안됩니다 .
Homebrew의 gstreamer 사용 : PKG-Config가 필요합니다. ( "Brew 설치 PKG-Config Gstreamer"). 이로 인해 많은 수의 추가 패키지가 Homebrew가 종속성으로 설치하게됩니다. Homebrew Gstreamer 설치는 최근 gstreamer
라는 단일 "공식"으로 재 작업되었으며, 이제 GST_PLUGIN_PATH가 환경에서 설정할 필요없이 작동합니다. Homebrew는 GStreamer를 (HOMEBREW)/lib/gstreamer-1.0
에 설치합니다. 여기서 (HOMEBREW)/*
는 Apple Silicon Mac에서 /opt/homebrew/*
및 /usr/local/*
; 가정 브루 플러그인을 추가하지 말고 대신 GST_PLUGIN_PATH를 해당 위치를 가리 키도록 설정하지 마십시오 (홈 브루는 완전한 GSTREAMER를 제공하지 않지만 UXPlay에 필요한 모든 것이있는 것 같습니다).
Macports에서 설치 한 GStreamer 사용 : 현재 Macports Gstreamer가 오래되었고 (v1.16.2), 인재되지 않은 상태이며 X11 : 사용하도록 제작되었으므로 권장 하지 않습니다 .
(Macports gstreamer-1.16.2를 사용하려면 pkgconf ( "sudo port install pkgconf")를 설치 한 다음 "Sudo 포트 설치 gstreamer1-gst-plugins-base gstreamer1-gst-plugins-pood gstreamer1-gst-plugins -Bad Gstreamer1-GST-Libav ". MACOS에서 X11 지원을 위해 특별한 CMAKE 옵션을 사용하여 UXPlay를 컴파일하십시오. -DUSE_X11=ON
, Xquartz 터미널에서 -vs ximagesink에서 실행 uxplay -s 800x600
GSTREAMER를 설치 한 후 UXPLAY 빌드 및 설치 : 터미널을 열고 UXPlay 소스 디렉토리 (ZipFile 다운로드 용 "UXPlay-Master", "git clone"다운로드)로 변경하고 "CMAKE.; MAKE; MAKE; Sudo는 설치 "(Linux와 동일).
uxplay 실행 gstreamer 경고 (runnng uxplay 전에 "export gst_debug = 2"로 수행)는 기본값 (uxplay 1.64 이후) 비디오 동기화에 타임 스탬프를 사용하면 많은 비디오 프레임이 삭제되고 있음을 보여줍니다. 아마도 GSTREAMER 경고에 나타나는 또 다른 오류 (Videometa에 대한)로 인해 발생할 수 있습니다. 권장 사항 : 새 UXplay "No Timestamp"옵션 " -vsync no
" (uxplayrc 구성 파일에 "vsync no"를 추가 할 수 있음).
GSTREAMER를 설치 한 MACOS에서 사용 가능한 유일한 비디오 싱크는 GlimageSink (AutovideOsink에서 기본 선택) 및 OsxVideOsink로 보입니다. 창 제목에는 AirPlay 서버 이름이 표시되지 않지만 창은 화면 공유 앱 (예 : Zoom)으로 보입니다. 사용 가능한 유일한 오디오 싱크는 Osxaudiosink 인 것 같습니다.
옵션 -NC는 선택 여부에 관계없이 항상 사용됩니다. 이것은 MacOS에서 GSTREAMER VideoSinks의 문제에 대한 해결 방법입니다. 거울 창이 여전히 열려있는 동안 GSTREAMER 파이프 라인이 파괴되면 SEGFAULT가 발생합니다.
GlimageSink의 경우 해상도 설정 "-S WXH"는 (작은) 초기 OpenGL 미러 창 크기에 영향을 미치지 않지만 마우스 또는 트랙 패드를 사용하여 창을 확장 할 수 있습니다. 대조적으로, "-vs osxvideosink"로 생성 된 창이 처음에는 크지 만 종횡비가 잘못되었습니다 (스트레칭 이미지). 이 경우, 측면을 드래그하여 창 너비가 변경 될 때 종횡비가 변경됩니다. 옵션 -vs "osxvideosink force-aspect-ratio=true"
옵션을 사용하여 창에 처음 열릴 때 올바른 종횡비를 갖도록 할 수 있습니다.
Windows v3.0 용 Bonjour SDK를 다운로드하여 설치하십시오. SoftPedia.com에 등록하지 않고 SDK를 다운로드하거나 공식 Apple 사이트 https://developer.apple.com/download에서 얻을 수 있습니다 (Apple은 개발자로 등록하여 해당 사이트에서 액세스 할 수 있습니다). Bonjour SDK를 C:Program FilesBonjour SDK
로 설치해야합니다.
(이것은 64 비트 창을위한 것입니다. 32 비트 창을위한 빌드는 가능하지만 테스트되지는 않습니다.) UNIX와 같은 MSYS2 빌드 환경이 사용됩니다 : 공식 사이트에서 MSYS2를 다운로드하여 설치합니다. https : // www .msys2.org/. 기본 설치 위치 C:mysys64
수락하십시오.
MSYS2 패키지는 Arch Linux에서 사용하는 "Pacman"패키지 관리자의 변형으로 설치됩니다. Windows 시작 메뉴의 MSYS2 탭에서 "MSYS2 MINGW64"터미널을 열고 "Pacman -Syu"로 새로운 MSYS2 설치를 업데이트하십시오. 그런 다음 Mingw-64 컴파일러 및 Cmake를 설치하십시오
pacman -S mingw-w64-x86_64-cmake mingw-w64-x86_64-gcc
모든 필요한 종속성이있는 컴파일러는 기본 경로 C:/msys64/mingw64
와 함께 MSYS64 디렉토리에 설치됩니다. 여기서 우리는 단순히 MSYS2 환경의 명령 줄에서 uxplay를 구축 할 것입니다 (이는 빌드 시스템을 위해 " make
"대신 " ninja
"를 사용합니다).
GitHub에서 최신 UXPlay를 다운로드하고 ( git
사용하려면 pacman -S git
으로 설치 한 다음 " git clone https://github.com/FDH2/UxPlay
")를 설치 한 다음 UXPlay 종속성을 설치하십시오 (OpenSSL은 이미 MSYS2로 설치되었습니다).
pacman -S mingw-w64-x86_64-libplist mingw-w64-x86_64-gstreamer mingw-w64-x86_64-gst-plugins-base
다른 Windows 빌드 시스템을 시도하는 경우 Windows 용 GSTREAMER의 MSVC 버전은 공식 GSTREAMER 사이트에서 사용할 수 있지만 MSYS2의 MINGW 64 비트 빌드 만 테스트되었습니다.
Uxplay 소스 디렉토리의 CD, " mkdir build
"및 " cd build
". 빌드 프로세스는 Bonjour SDK C:Program FilesBonjour SDK
에 설치되어 있다고 가정합니다. 다른 곳이라면 Enviroment 변수 Bonjour_sdk_home을 설정하여 해당 위치를 가리 키십시오. 그런 다음 Uxplay를 구축하십시오
cmake ..
ninja
이 중 하나에 오류가 없다고 가정하면 현재 ( "빌드") 디렉토리에 uxplay 실행 가능 UXPlay.exe를 구축하게됩니다. "sudo make install"및 "sudo make un enclall"기능은 다른 빌드에서 제공되는 기능을 Windows에서 사용할 수 없습니다. 대신, MSYS2 환경에는 /mingw64/...
이용 가능하며 Uxplay.exe 실행 파일을 C:/msys64/mingw64/bin
( C:/msys64/mingw64/share/...
) 와 함께
cmake --install . --prefix /mingw64
맨 페이지를 볼 수 있으려면 " pacman -S man
"을 사용하여 Manpage Viewer를 설치해야합니다.
uxplay.exe를 <plugin>
하려면 pacman -S mingw-w64-x86_64-gst-<plugin>
과 함께 GSTREAMER 플러그인 패키지를 설치해야합니다.
사용할 다른 MSYS2 GSTREAMER 플러그인 패키지는 MSYS2 패키지에 나열되어 있습니다.
또한 Windows 방화벽을 통해 데이터에 액세스하려면 UXPlay 실행 가능 UXPlay.exe에 권한을 부여해야합니다. UXPlay를 처음 실행할 때이를 수행 할 수있는 선택이 자동으로 제공 될 수 있거나 Windows 설정-> 업데이트 및 보안-> Windows 보안-> 방화벽 및 네트워크 보호를 사용하여 수행해야 할 수도 있습니다.> 방화벽을 통해 앱을 허용합니다 . 바이러스 보호가 uxplay.exe를 "의심스러운"(그러나 진정한 맬웨어 서명이 없으면)로 표시하는 경우 예외를 제시해야 할 수도 있습니다.
이제 " uxplay
"(MSYS2 터미널 창에서)를 실행하여 테스트하십시오. AudioSink를 지정 해야하는 경우 Windows에는 두 가지 주요 선택 사항이 있습니다. 이전 DirectSound 플러그인 " -as directsoundsink
"및보다 최신 Windows Audio Session API (WASAPI) 플러그인 " -as wasapisink
"가 있습니다.
uxplay -as 'wasapisink device="<guid>"'
여기서 <guid>
<guid>
gst-device-monitor-1.0 Audio
"를 사용하여 찾을 수있는 Guid에 의해 사용 가능한 오디오 장치를 지정합니다 {0.0.0.00000000}.{98e35b2b-8eba-412e-b840-fd2c2492cf44}
. " device
"가 지정되지 않은 경우 기본 오디오 장치가 사용됩니다.
-vs <videosink>
옵션을 사용하여 비디오 싱크를 지정하려면 <videosink>
에 대한 일부 선택은 d3d11videosink
, d3dvideosink
, glimagesink
, gtksink
입니다.
-vs "d3d11videosink fullscreen-toggle-mode=property fullscreen=true"
사용하여 전체 화면 모드에있을 수 있습니다. 옵션 -vs "d3d11videosink fullscreen-toggle-mode=alt-enter"
. 편의를 위해,이 옵션은 전체 화면 옵션이 있거나없는 -vs d3d11videosink
만 사용하면 추가됩니다. "-fs"가 사용됩니다. (Windows 사용자는 Uxplay Startup 옵션 파일에 " vs d3d11videosink
"(초기 " -
")를 추가 할 수 있습니다. "man uxplay"또는 "uxplay -h"참조).) 실행 파일 C:msys64mingw64binuxplay
는 Wind
옵션:
$UXPLAYRC
, 또는 ~/.uxplayrc
또는 ~/.config/uxplayrc
)에서 초기 " -
"문자없이 라인 당 하나의 옵션)도 작성할 수 있습니다. " #
"로 시작하는 선은 의견으로 취급되어 무시됩니다. 명령 줄 옵션은 시작 파일에서 옵션을 대체합니다.-n server_name (기본값 : uxplay); server_name@ hostname은 iPad, iPhone 등에 AirPlay 서비스를 제공하는 이름으로 호스트 이름 이 UXplay를 실행하는 서버의 이름입니다. 이것은 이제 미러 디스플레이 (x11) 창 위에 표시된 이름입니다.
-NH AirPlay 서버 이름의 끝에서 "@ hostname "을 추가하지 마십시오.
-h265 화면 미러 모드에서 H264 비디오 (1080p) 외에 H265 (4K/HEVC) 비디오를 수락하기위한 "ScreenmulticOdec"지원 (AirPlay "기능)을 활성화합니다. 이 옵션이 사용되면 두 개의 "비디오 파이프 라인"(하나는 H264, 하나는 H265 용)이 작성됩니다. 파이프 라인의 Gstreamer 플러그인이 H264 또는 H265에 특정한 경우 각 파이프 라인에 올바른 버전이 사용됩니다. 유선 클라이언트 서버 이더넷 연결은 4K 비디오의 경우 WiFi보다 선호되며 클라이언트가 필요할 수 있습니다. 최근 Apple 장치 (M1/M2 Mac 또는 iPad 및 일부 iPhone) 만 H> 1080을 사용한 Resolut "-S WXH"가 요청되면 H265 비디오를 보낼 수 있습니다. "-h265"옵션은 기본 해상도 ( "-s"옵션)를 1920x1080에서 3840x2160으로 변경하고 기본 최대 프레임 속 ( "-fps"옵션)을 30fps로 남겨 둡니다.
-PIN [NNNN] : (v1.67 이후) 새 클라이언트가 처음 연결할 때 Apple 스타일 (일회성) "PIN"인증 사용 : 터미널에 4 자리 핀 코드가 표시되고 클라이언트에 표시됩니다. 화면은 로그인 프롬프트를 입력 할 프롬프트를 보여줍니다. "-pin"자체가 사용될 때, 각 인증에 대해 새로운 랜덤 핀 코드가 선택됩니다. "-pin nnnn"(예 : "-pin 3939")이 사용되면 변하지 않는 고정 코드가 설정됩니다. 인증은 서버를 클라이언트의 "신뢰할 수있는 서버"목록에 추가하며 클라이언트 및 서버 공개 키가 변경되지 않은 경우 클라이언트가 다시 인증 할 필요가 없습니다. (V1.68 이후 기본적으로 서버 공개 키는 MAC 주소에서 생성되며 -M 옵션으로 변경할 수 있으며 키 생성의 대체 메소드는 -key 옵션을 참조하십시오). UXPlay Server가 PIN 인증 프로토콜을 사용하려는 경우 UXPlay Startup 파일에 "PIN"을 추가하십시오).
-reg [ filename ] : (v1.68 이후). "-pin"을 사용하는 경우이 옵션은 $ home/.uxplay.register (또는 선택적으로 Filename )에 핀을 인증 된 "신뢰할 수있는 클라이언트"레지스터를 유지합니다. 이 옵션이 없으면 PIN 승인을 건너 뛰는 반환 클라이언트는 신뢰할 수 있으며 점검하지 않습니다. 이 옵션은 UXplay가보다 공개 환경에서 사용되어 클라이언트 세부 정보를 기록하는 경우 유용 할 수 있습니다. 레지스터는 클라이언트의 공개 키 (Base-64 형식), 장치 ID 및 장치 이름이있는 텍스트, 클라이언트 당 한 줄입니다. ( "#"와 함께) 또는 라인 데리저를 삭제하면 해당 클라이언트 (클라이언트 액세스를 제어 할 수있는 더 많은 방법을 위해 옵션 -재판매, -블록, -allow 참조). (이 기능을 사용하려면 시작 파일에 줄을 추가하십시오.)
-vsync [x] (미러 모드 :)이 옵션 ( 이제 기본값 )은 타임 스탬프를 사용하여 서버의 비디오와 오디오를 동기화하고 ( x = "20.5"는 0.0205 초 지연을 의미합니다. 1 초 미만의 양도 또는 음의 지연이 허용됩니다.) 하드웨어 비디오 디코딩이없는 Raspberry Pi와 같은 저전력 시스템에서는 필요합니다.
-Vsync No (미러 모드 :) 이것은 타임 스탬프 기반 오디오 비디오 동기화를 끄고 uxplay-1.64 이전의 기본 동작을 복원합니다. 표준 데스크톱 시스템은 타임 스탬프를 사용하지 않고 잘 작동하는 것 같습니다.이 모드는 MAC 컴퓨터의 두 번째 모니터로 UXPlay를 사용하거나 웹캠 모니터링과 같은 "라이브 스트리밍"에 적합합니다. 그것으로, 비디오 프레임은 삭제되지 않습니다.
-async [x] (ALAC (Audio-only) 모드 :)이 옵션은 타임 스탬프를 사용하여 클라이언트의 비디오와 함께 서버의 오디오를 동기화하고 ( x = "20.5"는 0.0205를 의미합니다. 초 지연 : 1 초 미만의 양수 또는 음수 지연이 허용됩니다.) 클라이언트가 대기 시간을 설명하기 위해 비디오 지연을 추가하기 때문에 -async 모드의 서버는 동등한 오디오 지연을 추가합니다. 일시 정지 또는 트랙 체인지가 즉시 적용되지 않습니다. 이는 원칙적으로 -al
오디오 대기 시간 설정을 사용하여 서버가 클라이언트에게보고하는 대기 시간 (기본 0.25 초)을 변경하여 완화 될 수 있지만 현재 변경하는 데 영향을 미치지 않는 것 같습니다 .
-async no . 이것은 오디오 전용 모드의 기본 동작이지만이 옵션은 "uxplayrc"구성 파일에서 설정된 -async
옵션을 끄는 명령 줄 옵션으로 유용 할 수 있습니다.
-DB LOW [: High ] 항공기 볼륨 관리 감쇠 (게인)를 -30dB : 0db에서 낮음 : 0dB 또는 낮음 : 높음 . 하한 최저는 음수 여야합니다 (감쇠). 상한 높이는 하나의 부호 일 수 있습니다. (GSTREAMER는 +20dB를 초과 할 수 없도록 볼륨 방출을 높게 제한합니다). 저조는 "평평"이므로 -db -50 : 10의 경우 -7db에 의한 방송 감쇠의 변화가 -7 x (60/30) = -14dB 감쇠 및 최대 볼륨 (AirPlay 0db)으로 변환됩니다. 10dB 증강이며 AirPlay -30dB는 -50dB가됩니다. 최소 비행 값 (정확히 -30dB)은 "음소거"로 변환됩니다.
-Taper는 "테이퍼링 된"AirPlay Volume-Control 프로파일 (Shairport-Sync에서 "DASL-TAPERING"이라고 불리는 것과 일치)을 제공합니다. 부피)는 50%감소하고, 인식 된 부피는 절반 (10dB 감쇠). (이것은 더 큰 경우 "표 페어"볼륨을 사용하기 위해 저 볼륨으로 수정됩니다.)
-S WXH EG -S 1920X1080 (= "1080p"), H264 비디오의 픽셀의 기본 너비 및 높이 해상도. (기본값은 -h265 옵션을 사용하는 경우 3840x2160 (= "4K")이됩니다.) 이것은 AirPlay 클라이언트에게 제기 된 요청 일 뿐이며 아마도 최종 해상도가 아닐 것입니다. w와 h는 4 자리 이하의 정수입니다. 높이 픽셀 크기는 스트리밍 형식을 결정하기 위해 클라이언트가 사용하는 제어입니다. 너비는 이미지의 모양으로 동적으로 조정됩니다 (예 : iPad의 유지 방법에 따라 세로 또는 조경 형식).
-S WXH@R 위와 같이 AirPlay 클라이언트에게 디스플레이의 화면 새로 고침 속도에 대해 알려줍니다. 기본값은 r = 60 (60Hz)입니다. R은 256보다 작은 정수 여야합니다.
-o는 디스플레이 창의 "과도한"옵션을 켭니다. 이렇게하면 옵션 -S WXH (또는 기본값 1920x1080)가 요청한 일부 픽셀을 사용하여 이미지 해상도가 줄어 듭니다. GSTREAMER에 의해 표시). 권장 사항 :이 옵션을 사용해야 할 특별한 이유가 없으면 이 옵션을 사용하지 마십시오 .
-fs는 전체 화면 모드를 사용하지만 X11, Wayland, Vaapi 및 D3d11 (Windows)에서만 작동합니다.
-P를 사용하면 UXPlay에서 사용하는 네트워크 포트를 선택할 수 있습니다 (서버가 방화벽 뒤에있는 경우 열어야합니다). -p는 "레거시"포트 TCP 7100, 7000, 7001, UDP 6000, 6001, 7011. -pn (예 : -P 35000)을 설정합니다. -p n1, n2, n3 (쉼표로 구분 된 값) 각 포트를 별도로 설정합니다. -P N1, N2는 포트 N1, N2, N2+1을 설정합니다. -P TCP N 또는 -P UDP N은 TCP 또는 UDP 포트 만 설정합니다. 포트는 범위 [1024-65535]에 있어야합니다.
-P 옵션을 사용하지 않으면 포트는 동적으로 (무작위로) 선택되며 방화벽이 작동하는 경우 작동하지 않습니다.
-AVDEC 힘 GSTREAMER 요소 AVDEC_H264 (LIBAV H264 디코더)를 사용하여 소프트웨어 H264 디코딩 사용. 이 옵션은 autovideoSink가 vaapisink와 같은 하드웨어에 따른 Videosink 플러그인을 선택하지 않아야합니다.
-VP Parser는 GStreamer 파이프 라인의 H264 Parser 요소를 선택하고 기본값은 H264Parse입니다. 인용문 "..."를 사용하면 옵션을 추가 할 수 있습니다.
-VD 디코더는 기본값 "DecodeBin"대신 GStreamer 파이프 라인의 H264 디코더 요소를 선택하여 선택합니다. 소프트웨어 디코딩은 AVDEC_H264에 의해 수행됩니다. 다양한 하드웨어 디코더에는 VAAPIH264DEC, NVDEC, NVH264DEC, V4L2H264DEC가 포함됩니다 (적절한 하드웨어를 사용할 수 있어야 함). 따옴표 "..."를 사용하면 일부 매개 변수가 디코더 이름에 포함될 수 있습니다.
-VC Converter는 기본값 "Videoconvert"대신 Gstreamer Pipeline의 Videoconverter 요소를 선택합니다. GPU에서 Video4Linux2 하드웨어 디코딩을 사용하는 경우 -vc v4l2convert
도 비디오 변환을 위해 GPU를 사용합니다. 인용문 "..."를 사용하면 일부 매개 변수가 변환기 이름에 포함될 수 있습니다.
-vs videosink는 기본값 "autovideosink"대신 GStreamer VideoSink를 선택하여 선택합니다. 일부 VideoSink 선택은 XimageInk, XvimagesInk, vaapisink (Intel Graphics), gtkesink, glimagesink, waylandsink, osxvideosink (macoS), kmssink (raspberry pi os lite와 같은 x11이없는 시스템의 경우) 또는 fpsdisplaysink입니다. FPS). 인용문 "..."를 사용하면 일부 매개 변수가 VideoSink 이름에 포함될 수 있습니다. 예를 들어, 전체 화면 모드는 vaapisink 플러그인에서 지원되며 -vs "vaapisink fullscreen=true"
사용하여 얻습니다. 이것은 또한 waylandsink
와도 작동합니다. 이러한 옵션의 구문은 주어진 플러그인 (GSTREAMER 문서 참조)에만 해당되며 일부 VideoSink의 선택은 시스템에서 작동하지 않을 수 있습니다.
-vs 0 스트리밍 된 비디오의 표시를 억제합니다. 미러 모드에서 클라이언트의 화면은 여전히 초당 1 프레임의 감소 속도로 미러링되지만 렌더링하거나 표시되지 않습니다. 이 옵션은 서버가 "헤드리스"(비디오 표시를 위해 첨부 된 화면이 없음) 인 경우 항상 사용해야하며, 오디오 렌더링에만 사용되며, 이는 AAC가없는 비디오와 우수한 품질의 ALAC에서 AAC 손실 제작 오디오가 될 것입니다. AirPlay 오디오 전용 모드의 Apple Lessless Audio.
video4linux2에 의한 GPU에서 하드웨어 H264 비디오 디코딩의 비디오 설정 -V4L2 비디오 설정. -vd v4l2h264dec -vc v4l2convert
에 해당합니다.
-BT709 디지털 TV의 BT709 색상 표준의 드문 (그러나 허용 된) "전체 범위 색상"변형을 Apple의 사용을 인식하기위한 이전 Video4Linux2 플러그인의 실패에 대한 해결 방법. 이는 더 이상 GSTREAMER-1.20.4와 백 포트에서 필요하지 않습니다.
-v4l2 "에 해당하는 RPI (Raspberry Pi Model 5에는 유효하지 않으며 Uxplay 1.67에서 제거됨)
-rpigl "-rpi -vs glimagesink"에 해당합니다. (uxplay 1.67 이후 제거)
-RPIFB "-rpi -vs kmssink"에 해당합니다 (uxplay 1.67 이후로 제거됨)
-rpiwl "-rpi -vs waylandsink"에 해당합니다. (uxplay 1.67 이후 제거)
-Audiosink는 autoaudiosink가 당신을 위해 그것을 선택하게하는 대신 gstreamer audiosink를 선택합니다. Pulsesink, Alsasink, Pipewiresink, Osssink, Oss4Sink, Jackaudiosink, Osxaudiosink (MacOS), Wasapisink, DirectSoundSink (Windows 용)의 일부 오디오 싱크 선택 사항입니다. 인용문 "..."를 사용하면 일부 선택적 매개 변수 (예 -as "alsasink device=..."
가 허용되지 않을 수 있습니다. 이러한 옵션의 구문은 주어진 플러그인 (GSTREAMER 문서 참조)에만 해당되며 Audiosink의 일부 선택은 시스템에서 작동하지 않을 수 있습니다.
-AS 0 (또는 단지 -a )은 스트리밍 된 오디오의 재생을 억제하지만 스트리밍 된 비디오를 표시합니다.
-Al x는 클라이언트에보고 된 오디오 전용 (ALAC)에서 오디오 대기 시간 X를 (10 진) 초로 지정합니다. 범위 [0.0, 10.0] 초의 값은 허용되며, 전체 수의 마이크로 초로 변환됩니다. 기본값은 0.25 초 (250000 USEC)입니다. (그러나 클라이언트는이보고 된 대기 시간을 무시하는 것으로 보이 므로이 옵션은 기능이없는 것 같습니다.)
-CA Filename은 오디오 전용 ALAC 모드에서 "Cover Art"(Apple Music 등 )의 출력에 사용되는 파일 ( 파일 이름이 전체 경로를 포함 할 수있는 파일)을 제공합니다. 이 파일은 최신 커버 아트가 도착하면서 덮어 씁니다. 이 옵션이 사용되지 않으면 커버 아트 (JPEG 형식)가 폐기됩니다. 이미지가 변경되거나 정기적으로 다시로드되는 이미지 뷰어와 함께 사용하십시오 ( 예 : 초당 한 번). 이를 달성하려면 " uxplay -ca [path/to/]filename &
"를 백그라운드에서 실행 한 다음 전경에서 이미지 뷰어를 실행하십시오. 예를 들어, feh
뷰어로 사용하십시오 : " feh -R 1 [path/to/]filename
"(UXPlay가 배경에 넣은 동일한 터미널 창에서). 종료하려면 ctrl-C fg ctrl-C
사용하여 이미지 뷰어를 종료하고