HOME
  Security
   Software
    Hardware
  
FPGA
  CPU
   Android
    Raspberry Pi
  
nLite
  Xcode
   etc.
    ALL
  
LINK
BACK
 

2022/04/29

Raspberry Piを RPiPlayを使って AirPlayサーバにして iPhoneや iPad、macの画面をミラーリングする方法 Raspberry Piを RPiPlayを使って AirPlayサーバにして iPhoneや iPad、macの画面をミラーリングする方法

(ラズパイで RPiPlayを動かして macのセカンド ディスプレイとして使用する方法)

Tags: [Raspberry Pi], [電子工作], [セキュリティ]




● Raspberry Piを RPiPlayを使って AirPlayサーバにして iPhoneや iPad、macの画面をミラーリングする方法

 何となくミラーリングをしたかったのでラズパイで AirPlayサーバを動かします。

 macの場合はセカンド ディスプレイとしても使用できます。

RPiPlay

● RPiPlayの動作環境
 Raspberry Pi 4 8GB版(gpu_mem 64MB)
 Raspberry Pi OS bullseye 32bit April 4th 2022

● RPiPlayのインストール方法

$ uname -a
Linux raspberrypi 5.15.32-v7l+ #1538 SMP Thu Mar 31 19:39:41 BST 2022 armv7l GNU/Linux

sudo apt-get update

sudo apt-get install -y cmake
sudo apt-get install -y libavahi-compat-libdnssd-dev
sudo apt-get install -y libplist-dev
sudo apt-get install -y libssl-dev
# for gstreamer
# $ rpiplay -vr gstreamer
# Error: Unable to locate audio renderer "gstreamer".
# Error: Unable to locate video renderer "gstreamer".
sudo apt-get install -y libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev

cd
git clone https://github.com/FD-/RPiPlay.git
cd RPiPlay

mkdir build
cd build
cmake ..
make -j

sudo make install
# Installing: /usr/local/bin/rpiplay

● RPiPlayの起動方法

 rpiplayを実行する。
rpiplay -a hdmi -vr gstreamer -ar gstreamer

 -b autoを指定すると AirPlayの接続が無い時はラズパイのデスクトップを表示する様ですが、効かない感じです。

 -l を指定すると低遅延モードになります。

$ rpiplay -h
RPiPlay 1.2: An open-source AirPlay mirroring server for Raspberry Pi
Usage: rpiplay [-n name] [-b (on|auto|off)] [-r (90|180|270)] [-l] [-a (hdmi|analog|off)] [-vr renderer] [-ar renderer]
Options:
-n name               Specify the network name of the AirPlay server
-b (on|auto|off)      Show black background always, only during active connection, or never
-r (90|180|270)       Specify image rotation in multiples of 90 degrees
-f (horiz|vert|both)  Specify image flipping (horiz = horizontal, vert = vertical, both = both)
-l                    Enable low-latency mode (disables render clock)
-a (hdmi|analog|off)  Set audio output device
-vr renderer          Set video renderer to use. Available renderers:
    dummy: Dummy renderer; does not actually display video [Default]
-ar renderer          Set audio renderer to use. Available renderers:
    dummy: Dummy renderer; does not actually play audio [Default]
-d                    Enable debug logging
-v/-h                 Displays this help and version information


●ラズパイで RPiPlayを動かして iPadの画面をミラーリングする方法

 ラズパイ側で rpiplayを実行して、iPad側で AirPlayで RPiPlayを選択して接続します。

 普通に使えました。

・ラズパイで RPiPlayを動かして iPadの画面をミラーリングする方法
ラズパイで RPiPlayを動かして iPadの画面をミラーリングする方法


ラズパイで RPiPlayを動かして iPadの画面をミラーリングする方法




●ラズパイで RPiPlayを動かして macのセカンド ディスプレイとして使用する方法

 ラズパイ側で rpiplayを実行して、mac側で AirPlayで RPiPlayを選択して接続します。

 macOS 11 Big Surで正常に使用でき、ラズパイ側の HDMIから音声も出力しました。

 macOS 11 Big Surでサブモニタ化計画の実験。動画再生も行なえます。

RPiPlay test macOS Big Sur AirPlay Second Display Raspberry Pi 4B 8GB


ラズパイで RPiPlayを動かして macのセカンド ディスプレイとして使用する方法


ラズパイで RPiPlayを動かして macのセカンド ディスプレイとして使用する方法



●ラズパイ側の HDMIから音声を出力する場合はラズパイのオーディオ設定を「HDMI」にします

・ラズパイ側の HDMIから音声を出力する場合はラズパイのオーディオ設定を「HDMI」にします
ラズパイ側の HDMIから音声を出力する場合はラズパイのオーディオ設定を「HDMI」にします


ラズパイ側の HDMIから音声を出力する場合はラズパイのオーディオ設定を「HDMI」にします



 なお、私の環境では macOS 12 Monterey(Hackintosh環境)は raop_ntp receive timeoutで接続できませんでした。
 gpu_memを 64MBから gpu_mem=256に変更しても駄目でした。

Can't connect from MacBook Pro 13-inch, 2016 macOS Monterey 12.2.1 (21D62) #332
raop_ntp receive timeout

・RPiPlay error macOS 12 Monterey raop_ntp receive timeout
RPiPlay error macOS 12 Monterey raop_ntp receive timeout




● OpenMAX libraries not found

 OpenMAX is deprecated in Raspberry Pi OS Bullseye(Debian 11)

Solution 1: Use Raspberry Pi OS (Legacy) Buster(Debian 10)
Solution 2: Ignored for Raspberry Pi OS Bullseye

 Bullseyeでは OpenMAXが無くなったので無視するか、Raspberry Pi OS (Legacy) の Busterを使います。
 Bullseyeは動画関係、カメラ関係のメディア周りの互換性が大幅に無くなっています。

omxplayer not working: error while loading shared libraries: libbrcmEGL.so
 OpenMAX IL and MMAL are deprecated in Bullseye.

Raspberry Pi OS (Legacy)


● Error: Unable to locate video renderer "gstreamer".

$ cmake ..
-- OpenMAX libraries not found, skipping compilation of Raspberry Pi renderer
-- Checking for modules 'gstreamer-1.0>=1.4;gstreamer-sdp-1.0>=1.4;gstreamer-video-1.0>=1.4;gstreamer-app-1.0>=1.4'
--   No package 'gstreamer-1.0' found
--   No package 'gstreamer-sdp-1.0' found
--   No package 'gstreamer-video-1.0' found
--   No package 'gstreamer-app-1.0' found
-- GStreamer not found, skipping compilation of GStreamer renderer
-- Configuring done
-- Generating done
-- Build files have been written to: /home/pi/RPiPlay/build

$ rpiplay -vr gstreamer
Error: Unable to locate video renderer "gstreamer".

https://github.com/FD-/RPiPlay/issues/294

https://github.com/FD-/RPiPlay/issues/176

Solution:
sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev

---
$ cmake ..
-- OpenMAX libraries not found, skipping compilation of Raspberry Pi renderer
-- Checking for modules 'gstreamer-1.0>=1.4;gstreamer-sdp-1.0>=1.4;gstreamer-video-1.0>=1.4;gstreamer-app-1.0>=1.4'
--   Found gstreamer-1.0, version 1.18.4
--   Found gstreamer-sdp-1.0, version 1.18.4
--   Found gstreamer-video-1.0, version 1.18.4
--   Found gstreamer-app-1.0, version 1.18.4
-- Configuring done
-- Generating done
-- Build files have been written to: /home/pi/RPiPlay/build


●ラズパイが起動した時に RPiPlayが自動的に実行される様にする

 下記の全ての自動起動の方法で上手く動きませんでした。
 RPiPlayは実行していて AirPlayで接続もできるが画面表示が行なわれない。

●下記の方法は上手く動かなかった。

Starting RPiPlay at system start

nano .bashrc
# within an SSH-session, ${SSH_TTY} will be set
if [ "x${SSH_TTY}" = "x" ]; then
  /usr/local/bin/rpiplay -b auto
fi

●下記の方法は上手く動かなかった。

Autostart RPiPlay #77

/etc/systemd/system/rpiplay.service
[Unit]
Description=RPiPlay
After=network.target
StartLimitIntervalSec=30

[Service]
Type=simple
Restart=always
RestartSec=10
User=pi
ExecStart=/usr/local/bin/rpiplay -b auto
StandardOutput=inherit
StandardError=journal

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable rpiplay
sudo systemctl start rpiplay
sudo systemctl stop rpiplay
sudo systemctl disable rpiplay
sudo rm /etc/systemd/system/rpiplay.service

●下記の方法は上手く動かなかった。

Add instructions to create systemd service #276

[Unit]
Description=RPi Play Service
After=network.target
StartLimitIntervalSec=0

[Service]
Type=simple
Restart=always
RestartSec=1
User=pi
ExecStart=/usr/local/bin/rpiplay -b auto

[Install]
WantedBy=multi-user.target
sudo systemctl enable rpiplay
sudo reboot

$ sudo systemctl start rpiplay
Warning: The unit file, source configuration file or drop-ins of rpiplay.service changed on disk. Run 'systemctl daemon-reload' to reload units.

sudo systemctl daemon-reload

●下記の方法は上手く動かなかった。

bash -c "echo /usr/local/bin/rpiplay -b auto > rpiplay.sh"
chmod +x rpiplay.sh

IAM=`whoami`
echo $IAM
CRONCMD=`echo "@reboot /home/$IAM/rpiplay.sh > /dev/null 2>&1"`
echo $CRONCMD
(crontab -l; echo "$CRONCMD") | crontab -
crontab -l


●ラズパイを操作しなくても画面が消えない様にする方法

 raspi-configで設定する方法
$ sudo raspi-config
2 Display Options
D4 Screen Blanking
Would you like to enable screen blanking? <No>
Screen blanking is disabled <Ok>
Raspberry Pi Software Configuration Tool (raspi-config) <Finish>
Would you like to reboot now? <Yes>

 コマンドラインで設定する方法
# enable screen blanking
sudo raspi-config nonint do_blanking 0

# disable screen blanking
sudo raspi-config nonint do_blanking 1

 コマンドラインで確認する方法
# enable screen blanking
raspi-config nonint get_blanking
0

# disable screen blanking
raspi-config nonint get_blanking
1



Tags: [Raspberry Pi], [電子工作], [セキュリティ]

●関連するコンテンツ(この記事を読んだ人は、次の記事も読んでいます)

【メモリ8GB】Raspberry Pi 4 Model B 8GBを KSYで最安値で購入。ベンチマークレビュー
【メモリ8GB】Raspberry Pi 4 Model B 8GBを KSYで最安値で購入。ベンチマークレビュー

  【技適取得】ラズパイ4B 8GBモデルを入手。従来の Pi3、Pi3B+と速度比較

【Vulkan】Raspberry Pi 4 Model Bで Vulkanドライバをビルドして 3Dグラフィックのデモを動かす
【Vulkan】Raspberry Pi 4 Model Bで Vulkanドライバをビルドして 3Dグラフィックのデモを動かす

  【v3dv】ラズパイ4Bで Vulkan APIを動かす、VK_ICD_FILENAMES broadcom_icd.armv7l.json

Raspberry Pi 4 Model Bに標準搭載の Boot用 EEPROM、ファームウェアのアップデート手順
Raspberry Pi 4 Model Bに標準搭載の Boot用 EEPROM、ファームウェアのアップデート手順

  Raspberry Pi 4 Model Bから新規搭載の Boot用 EEPROMのファームを更新する方法、起動しない場合の復旧方法

NVIDIA Jetson Nano 開発者キットを買ってみた。メモリ容量 4GB LPDDR4 RAM
NVIDIA Jetson Nano 開発者キットを買ってみた。メモリ容量 4GB LPDDR4 RAM

  Jetson Nanoで TensorFlow PyTorch Caffe/Caffe2 Keras MXNet等を GPUパワーで超高速で動かす!

PIP機能付きの 4K対応の 4入力 1出力の HDMIセレクターを買ってみた、HDMI機器が複数有る場合に便利
PIP機能付きの 4K対応の 4入力 1出力の HDMIセレクターを買ってみた、HDMI機器が複数有る場合に便利

  ピクチャ イン ピクチャ機能付き 4K入力対応の 4入力 1出力 HDMI切り換え機 HDSFX0401P

EDID保持機能付きの 4K対応の 4入力 2出力の マトリックス切り替え HDMIセレクター、液晶画面 2台と使用で最強
EDID保持機能付きの 4K対応の 4入力 2出力の マトリックス切り替え HDMIセレクター、液晶画面 2台と使用で最強

  TESmart HMA0402A30 マトリックス切り替えで液晶画面 2台に接続できて更に EDID保持の便利機能付き HDMI切り換え機




[HOME] | [BACK]
リンクフリー(連絡不要、ただしトップページ以外は Web構成の変更で移動する場合があります)
Copyright (c) 2022 FREE WING,Y.Sakamoto
Powered by 猫屋敷工房 & HTML Generator

http://www.neko.ne.jp/~freewing/raspberry_pi/raspberry_pi_airplay_server_rpiplay/