OpenEuler 使用ffmpeg x11grab捕获屏幕流,rtsp推流,并用vlc播放
环境准备
安装x11grab(用于捕获屏幕流)和libx264(用于编码)
# 基础开发环境&x11grab
sudo dnf install -y \
autoconf \
automake \
bzip2 \
bzip2-devel \
cmake \
freetype-devel \
gcc \
gcc-c++ \
git \
libtool \
make \
mercurial \
pkgconfig \
zlib-devel \
libX11-devel \
libXext-devel \
libxcb-devel \
xorg-x11-server-utils
# 安装x264
sudo dnf install -y x264-devel
pkg-config --cflags --libs x264
安装好ffmpeg(这里要用编译安装,因为要添加上–enable-x11grab这个选项只有高版本支持低版本的话是其他几个选项反正你用./configure --help 查看可用选项把带x11的都选上就行了
下载mediamtx,这是推流服务器
下载地址
下载完解压就能用了
安装vlc,我这里是在windows上安装的
命令
先运行推流服务器
./你的mediamtx所在的目录/mediamtx
使用ffmpeg捕获屏幕流并推送到服务器
ffmpeg -f x11grab -i :0.0 -vcodec libx264 -preset ultrafast -acodec aac -f rtsp rtsp://127.0.0.1:8554/desktop
vlc播放