31 lines
1.2 KiB
Bash
31 lines
1.2 KiB
Bash
#!/usr/bin/env bash
|
||
# 从本机 SRS 拉 SRT 流并用 ffplay 全屏输出到 HDMI(需已登录图形会话:X11 或 Wayland 下 XWayland)
|
||
# 注意:下方端口为 SRS 的 SRT 端口(常见 10080),与 Web 控制台端口(见 config/runtime.env)无关。
|
||
set -euo pipefail
|
||
|
||
# SRS SRT 播放地址(与 srs 里 app/stream 名一致时可只改此项)
|
||
: "${SRS_SRT_URL:=srt://127.0.0.1:10080?streamid=#!::r=live/livestream,m=request&latency=10}"
|
||
|
||
# X11:常见为 :0(开发板/工控机本地桌面)
|
||
if [[ -z "${DISPLAY:-}" ]]; then
|
||
export DISPLAY="${DISPLAY:-:0}"
|
||
fi
|
||
|
||
# 部分 ARM 板卡仅支持 OpenGL ES,可尝试:export FFPLAY_SDL_DRIVER=opengles2
|
||
if [[ -n "${FFPLAY_SDL_DRIVER:-}" ]]; then
|
||
export SDL_VIDEODRIVER="${FFPLAY_SDL_DRIVER}"
|
||
fi
|
||
|
||
# 纯 DRM/KMS 无 X 时不能用本脚本;请改用 ffmpeg 直送 drm 或 kmsgrab(见 README 说明)
|
||
if ! command -v ffplay >/dev/null 2>&1; then
|
||
echo "ffplay 未找到,请安装 ffmpeg(含 ffplay)。" >&2
|
||
exit 1
|
||
fi
|
||
|
||
# 需要额外参数时可在本行自行追加,例如:-window_title hdmi
|
||
exec ffplay -nostats -hide_banner \
|
||
-fflags nobuffer -flags low_delay -framedrop \
|
||
-probesize 32 -analyzeduration 0 -sync ext -infbuf \
|
||
-vf "setpts=PTS-STARTPTS" \
|
||
"$SRS_SRT_URL"
|