java-airplay icon indicating copy to clipboard operation
java-airplay copied to clipboard

Java AirPlay Server

GitHub release build ViewCount License

This project unites the java-airplay-lib, java-airplay-server and java-airplay-server-examples into one. It makes development a lot easier when all parts of the code are put together.

😩 Due to lack of free time and other priorities, this project is not actively maintained. 😩

Demo

  • Raspberry pi 4 model B (1280 x 720 @ 24 fps)

RASPBERRY

  • Windows laptop (1920 x 1080 @ 30 fps)

RASPBERRY

How to Run

From sources

git clone https://github.com/serezhka/java-airplay
cd ./java-airplay
./gradlew bootRun

Pre-built app

Download the latest release

java -jar java-airplay-server-{version}.jar

Configuration

Create application.properties file in working dir

Available properties

# airplay
airplay.serverName=srzhka
airplay.width=1280
airplay.height=720
airplay.fps=24
# player (gstreamer, ffmpeg, vlc, h264-dump)
player.implementation=gstreamer
player.menu.enabled=true
player.gstreamer.swing=true

Players

Gstreamer

Supports both video and audio (alac + aac_eld) streams
Gstreamer installation is required (see https://github.com/gstreamer-java/gst1-java-core)

FFmpeg

Supports only video stream because playback of aac_eld audio requires ffmpeg compilation with --enable-libfdk-aac
FFmpeg installation is required, ffplay must be on PATH

VLC

Playback stops after few seconds
VLC installation is required

h264-dump

Saves video stream into dump.h264 file