mirror of
https://github.com/m1k1o/neko.git
synced 2026-11-03 00:11:48 -06:00
86 lines
2.9 KiB
YAML
86 lines
2.9 KiB
YAML
networks:
|
|
neko_net:
|
|
driver: bridge
|
|
|
|
services:
|
|
neko:
|
|
image: ghcr.io/m1k1o/neko/intel-firefox:latest
|
|
container_name: neko
|
|
restart: unless-stopped
|
|
shm_size: 4gb
|
|
cap_add:
|
|
- SYS_ADMIN
|
|
devices:
|
|
- /dev/dri:/dev/dri
|
|
networks:
|
|
- neko_net
|
|
ports:
|
|
- "80:8080" # Web interface
|
|
- "52000-52100:52000-52100/udp" # WebRTC
|
|
environment:
|
|
TZ: "Europe/Berlin"
|
|
NEKO_HWENC: "none"
|
|
NEKO_SERVER_PROXY: "true"
|
|
# ---- WebRTC ----
|
|
NEKO_WEBRTC_NAT1TO1: 10.220.1.238
|
|
NEKO_WEBRTC_EPR: "52000-52100"
|
|
NEKO_WEBRTC_ICELITE: "true"
|
|
# ---- Desktop ----
|
|
NEKO_DESKTOP_SCREEN: "1920x1080@30"
|
|
# ---- Auth ----
|
|
NEKO_MEMBER_MULTIUSER_USER_PASSWORD: "changeMe"
|
|
NEKO_MEMBER_MULTIUSER_ADMIN_PASSWORD: "changeMe"
|
|
NEKO_SESSION_CONTROL_PROTECTION: "true"
|
|
# ---- Capture pipelines ----
|
|
NEKO_CAPTURE_VIDEO_CODEC: "h264"
|
|
NEKO_CAPTURE_BROADCAST_URL: "placeholder" # No need to chance this line, it's handled by NEKO_CAPTURE_BROADCAST_PIPELINE. It's only needed to be filled so it's possible to start the Broadcast
|
|
NEKO_CAPTURE_BROADCAST_AUTOSTART: "false"
|
|
NEKO_CAPTURE_BROADCAST_PIPELINE: >
|
|
ximagesrc display-name={display} show-pointer=true use-damage=false !
|
|
queue !
|
|
videoconvert ! videorate ! videoscale !
|
|
video/x-raw,width=1920,height=1080,framerate=25/1 !
|
|
x264enc speed-preset=ultrafast tune=zerolatency !
|
|
h264parse !
|
|
queue !
|
|
mux.video
|
|
|
|
pulsesrc device=audio_output.monitor !
|
|
queue !
|
|
audioconvert ! audioresample !
|
|
audio/x-raw,channels=2 !
|
|
voaacenc bitrate=320000 !
|
|
aacparse !
|
|
queue !
|
|
mux.audio
|
|
|
|
hlssink2
|
|
name=mux
|
|
max-files=5
|
|
playlist-length=5
|
|
target-duration=1
|
|
location=/var/www/live/segment-%d.ts
|
|
playlist-location=/var/www/live/index.m3u8
|
|
|
|
mediamtx:
|
|
image: bluenviron/mediamtx:latest-ffmpeg
|
|
container_name: mediamtx
|
|
restart: unless-stopped
|
|
networks:
|
|
- neko_net
|
|
ports:
|
|
- "8554:8554" # RTSP output e.g. rtsp://server-ip:8555/live (RTSP playback doesn't work for Standalone Headsets, only for PC)
|
|
- "8888:8888" # HLS output e.g. http://server-ip:8889/live/index.m3u8, https://domain.tld/live/index.m3u8
|
|
environment:
|
|
MEDIAMTX_RTSPTRANSPORTS: "tcp"
|
|
# Audio encoder (force stereo)
|
|
MTX_PATHS_LIVE_HLS_AUDIO_ENCODER: "aac"
|
|
MTX_PATHS_LIVE_HLS_AUDIO_ENCODER_ARGS: "audio_bitrate=320k,channels=2"
|
|
# ---- Optimized STANDARD HLS (NOT LL-HLS) ----
|
|
MTX_HLSMODE: "muxer"
|
|
MTX_HLSVARIANT: "mpegts"
|
|
MTX_HLSALWAYSREMUX: "yes"
|
|
MTX_HLSSEGMENTDURATION: "1s" # 1 second segments
|
|
MTX_HLSSEGMENTCOUNT: "4" # ~4s real latency
|
|
# ---- Neko Broadcast Source ----
|
|
MTX_PATHS_LIVE_SOURCE: "udp://mediamtx:1234?pkt_size=1316" |