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播放