Selkies-GStreamer 项目介绍、快速启动、应用案例与最佳实践

Selkies-GStreamer 项目介绍、快速启动、应用案例与最佳实践

项目介绍

Selkies-GStreamer 是一个开源的低延迟、高性能 Linux 本地 GPU/CPU 加速的 WebRTC HTML5 远程桌面流平台,适用于自托管、容器、Kubernetes 或 Cloud/HPC 平台。该项目最初由 Google 工程师启动,后由学术研究人员扩展。Selkies-GStreamer 旨在为研究人员、高性能计算 (HPC) 系统管理员、Jupyter/Kubernetes/Docker®/Coder 基础设施管理员以及 Linux 云游戏爱好者提供服务。

项目快速启动

环境准备

  1. 操作系统:目前支持 Ubuntu 20.04 (Mint 20) 和 22.04 (Mint 21),但理论上其他操作系统也可以使用。
  2. 依赖安装:运行以下命令安装依赖项:
sudo apt-get update && sudo apt-get install --no-install-recommends -y python3-pip python3-dev python3-gi python3-setuptools python3-wheel udev wmctrl jq gdebi-core libgdk-pixbuf2.0-0 libgtk2.0-bin libgl-dev libgles-dev libglvnd-dev libgudev-1.0-0 xclip x11-utils xdotool x11-xserver-utils xserver-xorg-core wayland-protocols libwayland-dev libwayland-egl1 libx11-xcb1 libxkbcommon0 libxdamage1 libsoup2.4-1 libsoup-gnome2.4-1 libsrtp2-1 lame libopus0 libwebrtc-audio-processing1 pulseaudio libpulse0 libcairo-gobject2 libpangocairo-1.0-0 libgirepository-1.0-1 libopenjp2-7 libjpeg-dev libwebp-dev libvpx-dev zlib1g-dev x264
  1. 下载并安装组件
  • GStreamer 组件:运行以下命令下载并安装 GStreamer 组件:
cd /opt && curl -fsSL https://github.com/selkies-project/selkies-gstreamer/releases/download/v${SELKIES_VERSION}/selkies-gstreamer-v${SELKIES_VERSION}-ubuntu${UBUNTU_RELEASE}.tgz | sudo tar -zxf -
  • Python 组件:运行以下命令下载并安装 Python 组件:
cd /tmp && curl -O -fsSL https://github.com/selkies-project/selkies-gstreamer/releases/download/v${SELKIES_VERSION}/selkies_gstreamer-${SELKIES_VERSION}-py3-none-any.whl && sudo pip3 install selkies_gstreamer-${SELKIES_VERSION}-py3-none-any.whl && rm -f selkies_gstreamer-${SELKIES_VERSION}-py3-none-any.whl
  • HTML5 组件:运行以下命令下载并安装 HTML5 组件:
cd /opt && curl -fsSL https://github.com/selkies-project/selkies-gstreamer/releases/download/v${SELKIES_VERSION}/selkies-gstreamer-web-v${SELKIES_VERSION}.tgz | sudo tar -zxf -
  1. 运行 Selkies-GStreamer
export DISPLAY=:0
export GST_DEBUG=*:2
export GSTREAMER_PATH=/opt/gstreamer
source /opt/gstreamer/gst-env
Xvfb -screen :0 8192x4096x24 +extension RANDR +extension GLX +extension MIT-SHM -nolisten tcp -noreset -shmem 2>&1 >/tmp/Xvfb.log &

until [[ -S /tmp/X11-unix/X0 ]]; do
  sleep 1
done && echo 'X Server is ready'

export PULSE_SERVER=tcp:127.0.0.1:4713
sudo /usr/bin/pulseaudio -k >/dev/null 2>&1
sudo /usr/bin/pulseaudio --daemonize --system --verbose --log-target=file:/tmp/pulseaudio.log --realtime=true --disallow-exit -L 'module-native-protocol-tcp auth-ip-acl=127.0.0.1/8 port=4713 auth-anonymous=1'

[[ "$START_XFCE4:-true" == "true" ]] && rm -rf ~/config/xfce4 && xfce4-session &

export PWA_APP_NAME="Selkies WebRTC"
export PWA_APP_SHORT_NAME="selkies"
export PWA_START_URL="/index.html"
sudo sed -i \
-e "s|PWA_APP_NAME|${P

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值