注: AirPlay2 マルチルーム オーディオ ストリーミングはサポートされていません。そのためには shairport-sync を使用してください。
。
「 sudo apt install uxplay
」を使用して、Debian ベースの Linux システムに uxplay をインストールします。 FreeBSD では「 sudo pkg install uxplay
」を使用します。 AUR を通じて Arch ベースのシステムでも利用できます。 v. 1.66 以降、uxplay は Fedora 38 によって RPM 形式でもパッケージ化されるようになりました (「 sudo dnf install uxplay
」)。
UxPlay がまだパッケージ化されていない他の RPM ベースのディストリビューションについては、RPM の「specfile」 uxplay.specが最近のリリースで提供されており (「アセット」を参照)、UxPlay ソースのトップ ディレクトリにもあります。インストール可能な RPM パッケージを構築するためのこの仕様ファイルの使用に関するセクションを参照してください。
インストール後:
(Linux および *BSD の場合): UxPlay をホストしているサーバーでファイアウォールがアクティブになっている場合は、mDNS/DNS-SD クエリ用のデフォルトのネットワーク ポート (UDP 5353) が開いていることを確認してください (詳細については、以下のトラブルシューティングを参照してください)。また、Uxplay 用に 3 つの UDP ポートと 3 つの TCP ポートを開き、「uxplay -p」オプションを使用します (「 man uxplay
」または「 uxplay -h
」を参照)。
ディストリビューションのコンパイル済み uxplay バイナリ パッケージをインストールする場合でも、UxPlay を実行するための以下の手順を読んで、ディストリビューションのどのGStreamer プラグイン パッケージもインストールする必要があるかを確認する必要がある場合があります。
オーディオ専用モード (Apple Music など) の場合、「uxplay -async」オプションを使用すると最高の品質が得られますが、iOS によって 2 秒の遅延が発生します。
デフォルトとして使用したい UxPlay オプションをスタートアップ ファイル~/.uxplayrc
に追加します (形式およびその他の可能な場所については、「 man uxplay
」または「 uxplay -h
」を参照してください)。特に、システムが PipeWire オーディオ システムまたは Wayland ビデオ システムを使用している場合は、「as Pipewiresink」または「vs waylandsink」をデフォルトとしてファイルに追加することができます。 (Linux/BSD システムが使用している場合、ターミナル コマンド「ps waux | greppulse」または「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 ミラー サーバーです。これは当初、OpenMAX ベースの RPiPlay のコードを使用して antimof によって開発されました。RPiPlay は、AirplayServer、shairplay、および playfair から派生したものです。 (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、および 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 2 W、3 モデル B+ でもテストされ、現在は 5 です。
その主な用途は、Linux、macOS、またはその他の Unix を実行しているホストのサーバー ディスプレイ上で iOS/iPadOS/macOS クライアント (iPhone、iPod Touch、iPad、Mac コンピュータ) の画面を (オーディオ付きで) ミラーリングするために AppleTV のように動作することです。 (そして今では Microsoft Windows も)。 UxPlay は、「レガシー プロトコル」を使用して Apple の AirPlay2 プロトコルをサポートしていますが、一部の機能がありません。 (Apple の AirPlay 2 プロトコルについて一般に知られている内容の詳細については、ここ、ここ、およびここを参照してください。最新のプロトコルを追加するためのリソースとなる可能性がある pyatv も参照してください。) ただし、将来の iOS リリースが「レガシー プロトコル」をサポートし続けるという保証はありません。 」、iOS 17はサポートを継続します。
UxPlay サーバーとそのクライアントは、 Bonjour/Zeroconf mDNS/DNS-SD サーバーも実行されている同じローカル エリア ネットワーク上に存在する必要があります (厳密に必要なのは DNS-SD の「サービス ディスカバリ」サービスのみであり、ローカル ネットワークは「.local」mDNS ベースのタイプにすることもできます)。 Linux および BSD Unix サーバーでは、これは通常、avahi-daemon サービスを通じて Avahi によって提供され、ほとんどの Linux ディストリビューションに含まれています (このサービスは macOS、iOS、または Windows サーバーでも提供できます)。
iOS/MacOS クライアントによる UxPlay サーバーへの接続は、 AirPlay ミラーモード (クライアント画面をミラーリングしながら非可逆圧縮 AAC オーディオをストリーミングする) と、代替のAirPlay オーディオモード (画面ミラーリングなしで Apple Lossless (ALAC) オーディオをストリーミングする) の両方で開始できます。オーディオモードでは、メタデータが uxplay ターミナルに表示されます。UxPlay オプション-ca <name>
が使用されている場合、付随するカバーアートも定期的に更新されるファイル<name>
に出力されます。 、選択した (リロード中の) グラフィック ビューアで表示できます。アクティブな接続中にミラー モードとオーディオモードを切り替えることができます。ミラーモードでは、ミラーリングを停止し (またはミラー ウィンドウを閉じて)、オーディオモード接続を開始し、切り替えます。ミラーモード接続を開始すると元に戻ります。オーディオモードを終了または再度開始すると、カバーアートの表示が停止または再開されます。
Apple video-DRM (クライアント上の「Apple TV アプリ」コンテンツにある) は UxPlay では復号化できず、Apple TV アプリは UxPlay の AirPlay ミラー モードを使用して視聴できないことに注意してください (保護されていないオーディオのみが AAC でストリーミングされます)形式)ですが、「YouTube アプリ」などの DRM フリー アプリからのビデオとオーディオ コンテンツは両方とも、ミラー モードの UxPlay によってストリーミングされます。
UxPlay は現在、非ミラー AirPlay ビデオ ストリーミング (クライアントによるデコードと再エンコードを避けるために、HLS コンテンツを直接受信する AirPlay サーバー上の Web サーバーをクライアントが制御する) をサポートしていないため、AirPlay ビデオのアイコンを使用します。 YouTube アプリなどのアプリは、ビデオを伴わずに音声 (ロスレス ALAC 形式) のみを送信します (UxPlay の将来のリリースでは HLS ビデオをサポートする予定です)。
UxPlay は、オーディオとビデオのレンダリングに GStreamer の「プラグイン」を使用します。これは、プラグインを選択することで、ビデオとオーディオが「すぐに使用できる」ことを意味します。 AirPlay はビデオを h264 形式でストリーミングします。gstreamer デコードはプラグインに依存せず、利用可能な場合は高速化された GPU ハードウェア h264 デコーダを使用します。そうでない場合は、ソフトウェア デコードが使用されます。
Intel および AMD 統合グラフィックス用の VAAPI、NVIDIA と「Nouveau」オープンソース ドライバー
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 Model B でテスト済み) は、ソフトウェア ビデオ デコーディングを使用して UxPlay を実行できるようになりましたが、Pi の Broadcom 2835 GPU のファームウェアによるハードウェア アクセラレーションによる h264/h265 デコーディングが推奨されます。 UxPlay は、GStreamer-1.22 Video4Linux2 (v4l2) プラグインを使用してこれにアクセスします。 Raspberry Pi によって維持されているメインライン外の Linux カーネル モジュール bcm2835-codec を使用します。これは、これまでのところ、Raspberry Pi OS と、Raspberry Pi Imager で利用可能な他の 2 つのディストリビューション (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++ など) が必要です。 Debian ベースのシステムは、ソフトウェアのコンパイルに使用するパッケージ「build-essential」を提供します。 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
" で設定しますexport GSTREAMER_ROOT_DIR=$HOME/my_gstreamer/lib
")。
ターミナル ウィンドウで、ダウンロードしたソース コードのソース ディレクトリ (zip ファイル ダウンロードの場合は「UxPlay-*」、「*」 = "master"、またはリリース タグ、「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 と同じですが、パッケージ マネージャーとして synaptic (または apt) を使用します。
openSUSE: (sudo zypper install) 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 install) 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 」も含まれます (これは、多くのシステム (Raspberry Pi を含む) で非常に役立つ「-vs glimagesink」ビデオシンクを提供します) )、NVIDIA GPU による h264/h265 デコードを使用する場合は常に使用する必要があります)、「 gtk3 」(「-vs gtksink」ビデオシンクを提供します)、および「 x " X11 サポート用。ただし、これらはすでにインストールされている可能性があります。 「 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 を取得するには、「汚染された」リポジトリから 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、...)、(+ gstreamer1-vaapi for Intel/) をインストールします。 AMDグラフィックス)。
UxPlay-1.64 以降、UxPlay は設定ファイルから読み取られたオプションで開始できます。これは、(1) 環境変数$UXPLAYRC
で指定されたパスを持つファイル、(2) ユーザーのホームにある~/.uxplayrc
の中で最初に見つかります。ディレクトリ ("~")、(3) ~/.config/uxplayrc
。形式は 1 行に 1 つのオプションであり、コマンドライン オプションの最初の"-"
が省略されます。設定ファイル内の"#"
で始まる行はコメントとして扱われ、無視されます。
ターミナル ウィンドウで 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 などの非 systemd システムでは、 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 サーバーはデフォルトで、クライアントがサーバーによって表示される PIN コードを使用して最初にサーバーと「ペアリング」する必要はありません (その後、クライアントはサーバーを「信頼」するため、これを繰り返す必要はありません)。 v1.67 以降、Uxplay はそのような「pin 認証」をオプションとして提供しています。使用したい場合は、詳細については「使用法」の「 -pin
」と「 -reg
」を参照してください。 MDM (モバイル デバイス管理、雇用主所有のデバイスに存在することが多い) を使用する一部のクライアントは、PIN 認証を使用する必要があります。UxPlay は、PIN オプションなしで実行している場合でも、PIN 認証を提供します。
デフォルトでは、UxPlay は、クライアントが接続を切断するまで、現在のクライアントにロックされます。 UxPlay-1.58 以降、オプション-nohold
によってこの動作が変更され、新しいクライアントが接続を要求すると、現在のクライアントが削除されて引き継がれるようになりました。 UxPlay 1.66 では、「deviceID」 (Apple デバイスでは不変であるように見えます) を使用して、どのクライアントが接続を許可されるかを制御するメカニズム ( -restrict
、 -allow <id>
、 -block <id>
) が導入されています。
ミラー モードでは、GStreamer はオーディオを伴うビデオを再生するための2 つの方法から選択できます。UxPlay-1.64 より前では、ビデオ ストリームとオーディオ ストリームは両方とも到着後できるだけ早く再生されました (GStreamer の「 sync=false 」メソッド)。 、GStreamer の内部クロックを使用して同期を維持しようとします。 UxPlay-1.64 以降、クライアントによって送信されるオーディオおよびビデオ ストリームのタイムスタンプを使用する他の方法 (GStreamer の「 sync=true 」モード) が新しいデフォルトになりました。デコード能力の低い UxPlay ホスト (Raspberry Pi Zero W または 3 B+ モデルなど) では、オーディオとの再生に間に合うようにデコードできないビデオ フレームがドロップされ、ビデオがぎくしゃくしますが、それでも同期されます。
遅いビデオ フレームをドロップしない古い方法は、より強力なシステムでうまく機能し、UxPlay オプション " -vsync no
" で引き続き使用できます。この方法は「ライブ ストリーミング」に適応されており、たとえば、Mac コンピュータの 2 番目のモニターとして UxPlay を使用する場合に適しています。一方、新しいデフォルトのタイムスタンプ ベースの方法は、唇の動きや声を維持してビデオを視聴する場合に最適です。同期されました。 (タイムスタンプを使用しないと、十分な速度でデコードできない場合、ビデオは最終的にオーディオよりも遅れてしまいます。タイムスタンプが使用されていなかった以前は、ハードウェア アクセラレーションによるビデオ デコードがこの問題を防ぐのに役立ちました。)
-async
timestamp- を使用します。ベースのオプション。 (例としては、UxPlay サーバーで優れたサウンドを聴きながら、クライアントで Apple Music の歌詞をたどりたい場合などが考えられます)。これにより、サーバー上のオーディオに合わせてクライアント上のビデオが遅延するため、クライアントで開始された一時停止またはトラック変更がサーバーによって再生されるオーディオに反映されるまでにわずかな遅延が発生します。 AirPlay ボリューム コントロールは、ボリューム (ゲイン) を最大 -30dB 減衰します。デシベル範囲 -30:0 は、オプション-db
(「-db Low 」または「-db」を使用して、 Low :0 またはLow : Highから再スケールできます) Low : High ")、 Low は負の値でなければなりません。リスケーリングはデシベル単位で線形です。 GStreamer のオーディオ形式は +20db を超えるオーディオ ゲインを「クリップ」するため、 High をそのレベル以下に保つことに注意してください。オプション-taper
、一部のユーザーが好む「先細り」の AirPlay 音量制御プロファイルを提供します。
-vsync および -async オプションを使用すると、オプションでミリ秒単位の正 (または負) のオーディオ遅延調整を微調整することもできます。 -vsync 20.5
ビデオに対してオーディオを 0.0205 秒遅延させます。負の値を指定すると進みます)。
-fps 60 を設定すると、一部のビデオを 60 フレーム/秒で再生できるようになり、ビデオが改善される場合があります。 (-vs fpsdisplaysink や -FPSdata を使用すると、実際にストリーミングしているフレームレートを確認できます。) これを使用する場合は、デフォルトのタイムスタンプ ベースの同期オプション-vsync
を使用する必要があります。
UxPlay-1.54 以降、Apple Music などのソースから付属の「カバー アート」をオーディオのみ (ALAC) モードで表示できます。バックグラウンドで「 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)、 waylandsink
xvimagesink 、 ximagesink (X11)
kmssink 、 fbdevsink (X11 を使用しないコンソール グラフィックス)
vaapisink (Intel/AMD ハードウェア アクセラレーション グラフィックス用); NVIDIA ハードウェア グラフィックス (CUDA を使用) の場合は、 glimagesinkと " -vd nvh264dec
" (または "nvh264sldec"、GStreamer-1.24 では "nvh264dec" になる新しいバリアント) を組み合わせて使用します。
サーバーが「ヘッドレス」(モニターが接続されておらず、音声のみをレンダリングする) の場合は、 -vs 0
使用します。
GStreamer は最適な「オーディオシンク」も検索します。 -as <audiosink>
でその選択を上書きします。 Linux での選択肢には、pulsesink、alsasink、pipewiresink、oss4sink が含まれます。 gst-inspect-1.0 | grep sink | grep -e audio -e Audio
。
よくある問題の 1 つは、GStreamer が正しく構成されていない、またはアクセラレーションされたハードウェア h264 ビデオ デコード (VAAPI など) を使用しようとすることです。 「 uxplay -avdec
」を試して、ソフトウェアビデオデコードを強制します。これが機能する場合は、必要に応じてハードウェア ビデオ デコードの高速化を修正してみるか、GStreamer vaapi プラグインをアンインストールしてください。
その他の実行時オプションについては、「使用法」を参照してください。
フレームバッファ ビデオ (Raspberry Pi OS "Lite" およびその他の非 X11 ディストリビューションの場合) には、KMS ビデオシンク "-vs kmssink" を使用します (DirectFB フレームバッファ ビデオシンク "dfbvideosink" は Pi 上で壊れており、セグメンテーション違反になります)。この場合、「-vs kmssink」オプションを明示的に使用する必要があります。これを使用しないと、autovideosink は正しいビデオシンクを見つけられません。
Raspberry Pi 5 はハードウェア H264 デコードを提供しません (また、その必要もありません)。
Pi Zero 2 W、3 Model B+、および 4 Model B は、Broadcom GPU によるハードウェア H264 デコードを使用する必要がありますが、Raspberry Pi カーネル ツリーで維持されるメインストリーム外のカーネル モジュール bcm2835_codec が必要です。これを提供することが知られているディストリビューションには、Raspberry Pi OS、Ubuntu、Manjaro-RPi4 などがあります。このモジュールが利用できない場合は、ソフトウェア デコード (オプション -avdec) を使用してください。
ハードウェア H264 デコードが使用されている場合、Uxplay は GStreamer-1.22 以降の Video4Linux2 (v4l2) プラグインを使用して GPU にアクセスします。これは自動的に行われるはずです。オプション -v4l2 を使用することもできますが、通常は GStreamer に最適なビデオ パイプラインを単独で検索させるのが最善です。
古いディストリビューション (GStreamer < 1.22) では、v4l2 プラグインにパッチが必要です。UxPlay Wiki を参照してください。従来の Raspberry Pi OS (Bullseye) には、部分的にパッチが適用された GStreamer-1.18.4 があり、uxplay オプション -bt709 が必要です (-v4l2 は使用しないでください)。この場合は、UxPlay Wiki から完全なパッチを適用することをお勧めします。
「ダブルレガシー」Raspberry Pi OS (Buster) の場合、GStreamer-1.14 用のパッチはありません。代わりに、UxPlay をビルドする前に、まずこれらの手順を使用してソースから完全に新しい GStreamer-1.18.6 をビルドします。
32 ビット OS を実行している Raspberry Pi 3 Model B+ は、GStreamer OMX プラグイン (オプション「 -vd omxh264dec
」を使用) を使用して GPU にアクセスすることもできますが、これは Pi 4 Model 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 を割り当てた 32 ビット Bullseye または Bookworm Lite でテストした場合、うまく動作しました (デフォルトは 64MB のようです)。
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は、モントレーを実行できない古いMacOSシステムで実行するか、モントレーを実行できますが、AirPlayを実行できません。
MACOのこれらの指示は、Xcodeコマンドライン開発者ツールがインストールされていると想定しています(Xcodeがインストールされている場合、端子を開き、「sudo xcode-select - install」と入力し、条件を受け入れます)。
また、Cmake> = 3.13がインストールされていると想定されています。これは、パッケージマネージャーMacports( sudo port install cmake
)、HomeBrew( 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とOpenSSLを作成します。開発ツール(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パッケージの両方をインストールします。ダウンロードした後、それらをシフトクリックしてインストールします(/library/frameworks/gstreamer.frameworkにインストールします)。 HomeBrewまたはMacPortsユーザーは、「公式」リリースを使用している場合は、パッケージマネージャーが提供するGSTREAMERをインストール(またはアンインストールする)すべきではありません。
HomeBrewのGSTREAMERの使用:PKG-Configが必要です:( "Brew Install PKG-Config gstreamer"))。これにより、多数の追加パッケージが依存関係としてHomeBrewによってインストールされます。 HomeBrew GSTREAMERのインストールは最近、 gstreamer
という名前の単一の「フォーミュラ」に作り直されました。これは、GST_PLUGIN_PATHが環境で設定される必要なく機能します。 HomeBrewは、gstreamerを(HOMEBREW)/lib/gstreamer-1.0
にインストールします。ここで、 (HOMEBREW)/*
はApple Silicon Macで/opt/homebrew/*
、およびIntel Macに/usr/local/*
インストールします。余分な非ホメブリュープラグイン(自分で構築する)を入れないでください。代わりにGST_PLUGIN_PATHを設定してその場所を指します(HomeBrewは完全なGSTREAMERを提供しませんが、UXPlayに必要なものはすべて揃っているようです)。
MacPortsからインストールされたGSTREAMERの使用:MacPorts GSTREAMERは古い(v1.16.2)、維持されておらず、X11を使用するように構築されているため、これは推奨されません。
(MacPorts GSTREAMER-16.2を本当に使用したい場合は、PKGCONF( "SudoポートインストールPKGCONF")をインストールし、「SudoポートインストールGSTREAMER1-GST-PLUGINS-BASE GSTREAMER1-GST-PLUGINS-GOOD GSTREAMER1-GST-PLUGINS -bad gstreamer1-gst-libav "。マコーのX11サポートについては、特別なcmakeオプションを使用してuxplayをコンパイルします-DUSE_X11=ON
、x11: uxplay -s 800x600
を使用する場合、-vs ximagesinkを使用してxquartz端末から実行します。
GSTREAMERをインストールした後、UXPLAYをビルドしてインストールした後:端末を開き、UXPlayソースディレクトリ(Zipfileダウンロード用の "UXPlay-Master")、「git clone」ダウンロードの「uxplay」)、「cmake。; make。; make。 sudo make install "(Linuxと同じ)。
GSTREAMERの警告をチェックしながらUXPlayを実行します(runnng Uxplayの前に「gst_debug = 2」で「Export gst_debug = 2」でこれを行います)は、ビデオ同期のためにタイムスタンプをデフォルトで使用すると、多くのビデオフレームが(macosのみ)削除されていることを明らかにしています。おそらく、GSTREAMERの警告に表示される別のエラー(Videometaについて)のためです。推奨事項:新しいuxplay "no timestamp" option " -vsync no
"を使用します(uxplayrc構成ファイルに「vsync no」を追加できます)。
GSTREAMERのこのインストールを使用したMACOSでは、利用可能な唯一のビデオシンクはGlimagesInk(AutoVideosinkによって作成されたデフォルトの選択)とOsxVideosinkのようです。ウィンドウのタイトルにはAirPlay Server名が表示されませんが、ウィンドウは画面共有アプリ(Zoomなど)に表示されます。利用可能な唯一のAudiosinkは、osxaudiosinkのようです。
選択されているかどうかにかかわらず、オプション-NCが常に使用されます。これは、MACOSのGSTREAMER VideoSinksの問題の回避策です。GSTREAMERパイプラインが破壊されている場合、ミラーウィンドウがまだ開いている場合、SEGFAULTが発生します。
GlimagesInkの場合、解像度設定「-S WXH」は(小さな)初期OpenGLミラーウィンドウのサイズに影響しませんが、マウスまたはトラックパッドを使用してウィンドウを展開できます。対照的に、「-vs osxvideosink」で作成されたウィンドウは最初は大きくなりますが、間違ったアスペクト比(伸縮画像)があります。この場合、側面をドラッグすることでウィンドウの幅が変更されると、アスペクト比は変化します。 option -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をダウンロードしてインストールする.msys2.org/。デフォルトのインストール場所C:mysys64
を受け入れます。
MSYS2パッケージは、Arch Linuxが使用する「Pacman」パッケージマネージャーのバリアントでインストールされます。 Windowsスタートメニューの[MSYS2 MINGW64]端子を[MSYS2]タブから開き、「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
にインストールされていることを前提としています。他の場所の場合は、環境変数bonjour_sdk_homeを設定してその場所を指します。次に、uxplayを作成します
cmake ..
ninja
これらのいずれにもエラーがないと仮定すると、現在の(「ビルド」)ディレクトリにuxplay実行可能uxplay.exeを構築します。他のビルドで提供される「Sudo Make Install」と「Sudo Make Uninstall」機能は、Windowsでは使用できません。代わりに、MSYS2環境には/mingw64/...
が利用可能であり、 C:/msys64/mingw64/bin
にuxplay.exe実行可能ファイルをインストールできます(さらにC:/msys64/mingw64/share/...
) と
cmake --install . --prefix /mingw64
マンページを表示できるようにするには、「 pacman -S man
」でマンページビューアーをインストールする必要があります。
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には2つの主な選択肢があります。古いDirectSoundプラグイン「 -as directsoundsink
」と、より近代的なWindows Audio Session API(WASAPI)プラグイン「 -as wasapisink
」。
uxplay -as 'wasapisink device="<guid>"'
ここで、 <guid>
、「 gst-device-monitor-1.0 Audio
」を使用して見つけることができるGUID <guid>
利用可能なオーディオデバイスを指定します{0.0.0.00000000}.{98e35b2b-8eba-412e-b840-fd2c2492cf44}
。 「 device
」が指定されていない場合、デフォルトのオーディオデバイスが使用されます。
-vs <videosink>
オプションを使用してVideosinkを指定する場合、 <videosink>
の選択肢はd3d11videosink
、 d3dvideosink
、 glimagesink
、 gtksink
です。
-vs "d3d11videosink fullscreen-toggle-mode=property fullscreen=true"
使用して常にフルスクリーンモードにすることができます。 Option -vs "d3d11videosink fullscreen-toggle-mode=alt-enter"
。便利なため、フルスクリーンオプションの有無にかかわらず-vs d3d11videosink
"-FS"が使用されている場合、これらのオプションが追加されます。 (Windowsユーザーは、uxplayスタートアップオプションファイルに「 vs d3d11videosink
」(初期 " -
")を追加したい場合があります。「man uxplay」または「uxplay -h」を参照してください。)実行可能uxplay.exeはC:msys64mingw64binuxplay
を使用して、Windows端子でMSYS2環境なしで実行できます。
オプション:
$UXPLAYRC
、または~/.uxplayrc
または~/.config/uxplayrc
-
に記述することもできます。 「 #
」で始まる行はコメントとして扱われ、無視されます。コマンドラインオプションは、スタートアップファイルのオプションに優先します。-n server_name (default:uxplay); server_name@ hostnameは、 iPad、iPhoneなどにAirplayサービスを提供する名前の名前になります。ホスト名はUXPlayを実行しているサーバーの名前です。これは、ミラーディスプレイ(x11)ウィンドウの上に表示される名前にもなります。
-NH AirPlayサーバー名の最後に「@ hostname 」を追加しないでください。
-H265スクリーンミラーモードでH264ビデオ(1080p)に加えて、H265(4K/HEVC)ビデオを受け入れるために、「ScreenMulticodec」サポート(AirPlay "機能「ビット42)をアクティブ化します。このオプションを使用すると、2つの「ビデオパイプライン」(1つはH264、もう1つはH265用)が作成されます。パイプラインのGSTREAMERプラグインがH264またはH265に固有の場合、各パイプラインで正しいバージョンが使用されます。 4Kビデオでは、WiFiよりも有線クライアントサーバーイーサネット接続が推奨されており、クライアントが必要とする場合があります。最近のAppleデバイス(M1/M2 MACまたはiPads、および一部のiPhone)のみが、H> 1080のResolut "-s WXH"が要求された場合、H265ビデオを送信できます。 「-H265」オプションは、1920x1080から3840x2160にデフォルトの解像度(「-S」オプション)を変更し、デフォルトの最大フレームレート( "-fps"オプション)を30fpsに残します。
-pin [nnnn] :( v1.67以来)Appleスタイル(1回限りの)「ピン」認証を使用します。新しいクライアントが初めて接続したとき:ターミナルに4桁のピンコードが表示され、クライアントが表示されます画面には、これを入力するためのログインプロンプトが表示されます。 「-pin」を単独で使用すると、認証ごとに新しいランダムピンコードが選択されます。 "-pin nnnn"(eg、 "-pin 3939")が使用されている場合、これにより変更されていない固定コードが設定されます。認証は、クライアントの「信頼できるサーバー」のリストにサーバーを追加すると、クライアントとサーバーのパブリックキーが変更されていない場合、クライアントは再認証する必要はありません。 (デフォルトでは、v1.68以降、サーバーの公開キーはMacアドレスから生成されます。これは-mオプションで変更できます。キー生成の代替方法については、-Keyオプションを参照してください)。 (UXPlay Startupファイルに、UXPlay ServerがPIN認証プロトコルを使用することを希望する場合は、「PIN」を追加します)。
-reg [ filename ] :( v1.68以降)。 「-pin」が使用されている場合、このオプションは、$ home/.uxplay.register(またはoptional、 filename )のPin-authenticatedの「信頼クライアント」の登録を維持します。このオプションがなければ、PIN Authenticationをスキップするクライアントを返すことは信頼されており、チェックされていません。このオプションは、クライアントの詳細を記録するために、より公共環境でUXPlayが使用される場合に役立つ場合があります。レジスタはテキストで、クライアントごとに1行、クライアントの公開キー(ベース64形式)、デバイスID、およびデバイス名があります。コメント(「#」で)または行の削除対応するクライアント(オプション-RESTRICT、-BLOCK、-ALLOWを参照して、クライアントアクセスを制御する方法を参照)。 (この機能を使用する場合は、スタートアップファイルに「reg」を追加します。)
-vsync [x] (ミラーモードで:)このオプション(現在のデフォルト)は、タイムスタンプを使用してサーバー上のビデオと音声を同期させ、(小数)ミリ秒のオプションのオーディオ遅延( x = "20.5"は0.0205秒の遅延を意味します。正または負の遅延が1秒未満であることが許可されています。)ハードウェアビデオデコードなしのRaspberry Piなどの低電力システムでは必要です。
-vsync no (ミラーモード:)これにより、タイムスタンプベースのオーディオビデオ同期がオフになり、UXPlay-1.64より前にデフォルトの動作が復元されます。標準のデスクトップシステムは、タイムスタンプを使用せずにうまく機能しているようです。このモードは、Macコンピューターの2番目のモニターとしてUXPlayを使用したり、ウェブカメラを監視するなど、「ライブストリーミング」に適しています。それにより、ビデオフレームは削除されません。
-async [x] (オーディオのみ(ALAC)モード:)このオプションは、クライアント上のビデオとサーバーのオーディオを同期するためにタイムスタンプを使用し、(小数)ミリ秒のオプションのオーディオ遅延( x = "20.5"は0.0205を意味します。秒遅延:正または負の遅延が1秒未満で許可されます。)クライアントはレイテンシを考慮してビデオ遅延を追加するため、-Asyncモードでサーバーは同等のオーディオ遅延を追加します。一時停止やトラック変更などのオーディオの変更は、すぐには有効になりません。これは原則として、 -al
オーディオレイテンシ設定を使用して、サーバーがクライアントに報告するレイテンシ(デフォルト0.25秒)を変更することにより軽減される可能性がありますが、現在変更しても効果はないようです。
-async no 。これは、オーディオのみのモードのデフォルトの動作ですが、このオプションは、「UXPlayRC」構成ファイルに設定された-async
オプションをオフにするコマンドラインオプションとして役立つ場合があります。
-db low [: high ]エアプレイボリュームコントロール減衰(ゲイン)-30db:0dbからlow :0dbまたはlow : highを実行します。下限安値は負でなければなりません(減衰)。上限高さはどちらの符号にすることもできます。 (GSTREAMERは、 +20dBを超えることができないように、ボリュームの高度を高く制限します)。再スケーリングは「フラット」であるため、-db -50:10の場合、-7dBによる空中プレイの減衰の変化は-7 x(60/30)= -14db減衰に変換され、最大体積(エアプレイ0db)に変換されます。 10dBの増強であり、AirPlay -30dBは-50dBになります。最小エアプレイ値(-30dB正確に)は「ミュート」に翻訳されていることに注意してください。
-Taperは、「テーパー」エアプレイボリュームコントロールプロファイルを提供します(Shairport-Syncの「Dasl-Tapering」と呼ばれるものと一致します):ボリュームスライダーの長さ(またはMuteを超えるステップ数、16ステップ=フル体積)は50%減少し、知覚された体積は半分になります(10dB減衰)。 (これは低いボリュームで変更され、「不安定な」ボリュームが大きい場合は使用されます。)
-s WXH EG -S 1920x1080(= "1080p")、H264ビデオのピクセルのデフォルトの幅と高さ解像度。 (-H265オプションが使用されると、デフォルトは3840x2160(= "4K")になります。)これは、AirPlayクライアントに行われた要求であり、おそらく最終的な解決策ではないでしょう。 WとHは、4桁以下の整数です。高さのピクセルサイズは、クライアントがストリーミング形式を決定するために使用される制御のサイズであることに注意してください。幅は、たとえばiPadの保持方法に応じて、ポートレートまたはランドスケープ形式など)の形状に動的に調整されます。
-s wxh@r@rは上記ですが、ディスプレイの画面の更新率についてAirplayクライアントにも通知します。デフォルトはR = 60(60 Hz)です。 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)を設定します。TCPおよびUDPポートN、N+1、N+2を設定します。 -p n1、n2、n3(commaseparated値)は、各ポートを個別に設定します。 -p N1、N2はポートN1、N2、N2+1を設定します。 -p TCP Nまたは-P UDP Nは、TCPまたはUDPポートのみを設定します。ポートは範囲内にある必要があります[1024-65535]。
-pオプションが使用されていない場合、ポートは動的に(ランダムに)選択されます。これは、ファイアウォールが実行されている場合は機能しません。
-AVDECは、GSTREAMER ELEMENT AVDEC_H264(LIBAV H264デコーダー)を使用したソフトウェアH264デコードの使用です。このオプションは、autovideosinkがvaapisinkなどのハードウェアアクセラル化Videosinkプラグインを選択するのを防ぐ必要があります。
-VPパーサーは、GSTREAMER PIPELINEのH264パーサー要素を選択します。デフォルトはH264Parseです。引用符「...」を使用すると、オプションを追加できます。
-VDデコーダーは、それを選択するデフォルト値「デコードビン」の代わりに、GSTREAMER PIPELINEのH264デコーダー要素を選択します。ソフトウェアデコードはAVDEC_H264によって行われます。さまざまなハードウェアデコーダーには、VAAPIH264DEC、NVDEC、NVH264DEC、V4L2H264DECが含まれます(これらには、適切なハードウェアが利用可能であることが必要です)。引用符「...」を使用すると、いくつかのパラメーターをデコーダー名に含めることができます。
-VCコンバーターは、デフォルト値「VideoConvert」の代わりに、GSTREAMER PIPELINEのVideoConverter要素を選択します。 GPUによるVideo4linux2ハードウェアデコードを使用する場合、 -vc v4l2convert
GPUを使用してビデオ変換にも使用します。引用符「...」を使用すると、コンバーター名にいくつかのパラメーターを含めることができます。
-vs videosinkは、あなたのためにそれを選択するデフォルト値「autovideosink」の代わりに、gstreamer videosinkを選択します。いくつかのVideySinkの選択肢は、ximagesink、xvimagesink、vaapisink(intelグラフィックスの場合)、gtksink、glimagesink、waylandsink、osxvideosink(macosの場合)、kmssink(x11、raspberry pi os liteなどのシステム用)またはfpsdisplaysink(fpsdisplayink(流れの狂気を示す)を示しています。 fps)。 Quotes "..."を使用すると、VideoSink名にいくつかのパラメーターを含めることができます。たとえば、フルスクリーンモードはvaapisinkプラグインによってサポートされ、 -vs "vaapisink fullscreen=true"
を使用して取得されます。これはwaylandsink
でも機能します。このようなオプションの構文は、特定のプラグインに固有のものであり(GSTREAMERドキュメントを参照)、VideoSinkのいくつかの選択肢はシステムでは機能しない可能性があります。
-vs 0ストリーミングされたビデオの表示を抑制します。ミラーモードでは、クライアントの画面は、1秒あたり1フレームの割合の低いレートでミラーリングされていますが、レンダリングまたは表示されません。このオプションは、サーバーが「ヘッドレス」(ビデオを表示するための画面が添付されていない)であり、オーディオのレンダリングにのみ使用される場合は常に使用する必要があります。 AirPlayオーディオのみのモードでのApple Losslessオーディオ。
-V4L2ハードウェアのビデオ設定H264 Video4linux2によるGPUでのビデオデコード。 -vd v4l2h264dec -vc v4l2convert
に相当します。
-bt709古いvideo4linux2プラグインが、デジタルTVのBT709カラー標準の珍しい(しかし許可されている)「フルレンジ色」のバリアントをAppleが使用していることを認識できないことの回避策。これは、GSTREAMER-1.20.4およびBackportsでは不要になりました。
-RPI 「-V4L2」に相当します(Raspberry PIモデル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以降削除)
-OudioSinkがGSTREAMER AUDIOSINKを選択すると、AutoAudioSinkに選択させる代わりに選択します。一部のAudiosinkの選択肢は、Pulsesink、Alsasink、Pipewiresink、Osssink、Oss4sink、Jackaudiosink、Osxaudiosink(Macos)、Wasapisink、DirectSoundsink(Windows用)です。 Quotes "..."を使用すると、いくつかのオプションのパラメーターが許可される場合があります(例-as "alsasink device=..."
使用して、非デフォルト出力デバイスを指定します)。このようなオプションの構文は、特定のプラグインに固有のものであり(GSTREAMERドキュメントを参照)、AudioSinkのいくつかの選択肢はシステムでは機能しない可能性があります。
-as 0 (または-a )は、ストリーミングされたオーディオの再生を抑制しますが、ストリーミングされたビデオが表示されます。
-al xは、クライアントに報告されるオーディオのみ(ALAC)で(小数)秒単位の音声レイテンシxを指定します。範囲の値[0.0、10.0]秒が許可されており、マイクロ秒の全秒に変換されます。デフォルトは0.25秒(250000 USEC)です。 (ただし、クライアントはこの報告されたレイテンシを無視しているように見えるため、このオプションは機能していないようです。)
-CA Filenameは、 AudioのみのALACモードで「Cover Art」(Apple Musicなど)の出力に使用されるファイル( Filenameがフルパスを含めることができる)を提供します。このファイルは、到着する最新のカバーアートで上書きされます。このオプションが使用されない場合、カバーアート(JPEG形式)は破棄されます。画像が変更された場合、または定期的に(たとえば1秒あたり1回)をリロードする画像ビューアーで使用します。これを達成するには、「 uxplay -ca [path/to/]filename &
」を背景に実行し、前景で画像ビューアーを実行します。たとえば、 feh
視聴者として使用して:「 feh -R 1 [path/to/]filename
」を実行します(uxplayが背景に配置されたのと同じ端末ウィンドウで)。終了するには、 ctrl-C fg ctrl-C
を使用して画像ビューアを終了します。