- AirPlay audio + screen mirroring
- FairPlay decryption for mirrored streams
- Volume control
- YouTube HLS playback (AirPlay video from the YouTube app)
- Playbacks: GStreamer, FFmpeg (
ffplay) - Optional session dump (protocol + decrypted media) for debugging
git clone https://github.com/serezhka/java-airplay.git
cd java-airplay
./gradlew bootRunDownload the latest release, then:
java -jar java-airplay-server-{version}.jarOpen Screen Mirroring on the iPhone / iPad / Mac and pick the receiver name (default from config, e.g. srzhka).
Create application.properties in the working directory:
# airplay
airplay.serverName=srzhka
airplay.width=1280
airplay.height=720
airplay.fps=24
# player (gstreamer, ffmpeg)
player.implementation=gstreamer
player.tray.enabled=true
# dump (optional sidecar)
dump.enabled=false
dump.directory=dumps
dump.protocol=true
dump.video=true
dump.audio=true
dump.playlist=true
dump.artwork=true
dump.videoFps=60Pick a backend with player.implementation (gstreamer or ffmpeg). Install the matching native player first.
Best option for video and audio (including AAC-ELD mirroring audio).
Install: GStreamer documentation · Downloads
Uses ffplay on PATH. Video works; mirroring audio is unreliable on stock builds (AAC-ELD usually needs a custom ffmpeg with libfdk-aac). Prefer GStreamer when you need audio.
Install: FFmpeg download
Set dump.enabled=true to record beside the live player under dumps/<timestamp>_<sessionId>/:
protocol/— RTSP/HTTP capturesmedia/— decrypted.h264/ remuxed.mp4, audio.caf/.aacextras/— HLS playlists, artwork, DMAP metadata when present
This monorepo unites the former: