Files
gitlab-instance-0a899031_do…/obs.sh
2026-03-28 08:39:12 -05:00

54 lines
1.3 KiB
Bash

#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "$0")" && pwd)"
[ -f "$ROOT_DIR/config/system-stack.env" ] && set -a && . "$ROOT_DIR/config/system-stack.env" && set +a
[ -f "$ROOT_DIR/config/hardware.env" ] && set -a && . "$ROOT_DIR/config/hardware.env" && set +a
: "${SRS_SRT_URL:=srt://127.0.0.1:10080?streamid=#!::r=live/livestream,m=request&latency=10}"
try_mpv_drm() {
command -v mpv >/dev/null 2>&1 || return 1
[[ -e /dev/dri/card0 ]] || return 1
exec mpv \
--no-config \
--profile=low-latency \
--fullscreen \
--osc=no \
--osd-level=0 \
--no-audio \
--untimed \
--cache=no \
--vo=gpu \
--gpu-context=drm \
--hwdec=auto-safe \
"$SRS_SRT_URL"
}
try_ffplay_gui() {
command -v ffplay >/dev/null 2>&1 || return 1
export DISPLAY="${DISPLAY:-:0}"
if [[ -n "${FFPLAY_SDL_DRIVER:-}" ]]; then
export SDL_VIDEODRIVER="${FFPLAY_SDL_DRIVER}"
fi
exec ffplay -fs -nostats -hide_banner \
-fflags nobuffer -flags low_delay -framedrop \
-probesize 32 -analyzeduration 0 -sync ext -infbuf \
-vf "setpts=PTS-STARTPTS" \
"$SRS_SRT_URL"
}
case "${LIVE_HDMI_PLAYER:-auto}" in
mpv-drm)
try_mpv_drm
;;
ffplay-x11)
try_ffplay_gui
;;
esac
try_mpv_drm || try_ffplay_gui
echo "No compatible HDMI playback stack found. Install mpv for DRM/KMS or ffplay + X11." >&2
exit 1