RTSP 推流
需求
- 兼容的摄像头
- 如果使用 ROCK 5B,也可使用 HDMI RX 作为视频源
服务端配置
- 基于 FFmpeg
- 基于 Gstreamer
提示
使用 HDMI RX 时,低于 720P 分辨率的输入源可能会导致编码失败。
安装编译依赖
sudo apt update
sudo apt install librockchip-mpp-dev librockchip-vpu0 librga-dev libyuv-dev libdrm-dev pkg-config libx264-dev build-essential git cmake
编译并安装最新 MPP
git clone https://github.com/rockchip-linux/mpp
pushd mpp
cmake -DRKPLATFORM=ON -DHAVE_DRM=ON && make -j$(nproc)
sudo make install
sudo cp ./mpp/librockchip_mpp.so* /lib/aarch64-linux-gnu
sudo cp ./mpp/legacy/librockchip_vpu.so* /lib/aarch64-linux-gnu
popd
编译并安装 FFmpeg
git clone https://github.com/hbiyik/FFmpeg.git
pushd FFmpeg/
./configure --enable-rkmpp --enable-version3 --enable-libdrm --enable-libx264 --enable-gpl
make -j$(nproc)
sudo make install
popd
运行 mediamtx 与 FFmpeg
信息
此处我们假定 /dev/video0
是你想要使用的视频源。如果你的摄像头被分配到了其他的名称下,请替换以下命令行中对应的设备名。
wget https://github.com/bluenviron/mediamtx/releases/download/v1.0.0/mediamtx_v1.0.0_linux_arm64v8.tar.gz
tar -xzvf mediamtx_v1.0.0_linux_arm64v8.tar.gz
nohup ./mediamtx &
sudo ffmpeg -re -f v4l2 -i /dev/video0 -c:v hevc -rc_mode 0 -level 30 -f rtsp rtsp://0.0.0.0:8554/stream
提示
使用 HDMI RX 时,目前 gst-mppenc 暂不支持 NV24(YCbCr444) 与 RGB 输入,需要 HDMI 输入端切换颜色格式为 NV12(YCbCr420) 或 NV16(YCbCr422),或者使用 FFmpeg 进行推流。
安装编译依赖
sudo apt update
sudo apt install libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev build-essential meson libcgroup-dev gobject-introspection libgirepository1.0-dev
获取 gst-rtsp-server 源码
wget https://gstreamer.freedesktop.org/src/gst-rtsp-server/gst-rtsp-server-1.18.6.tar.xz
tar -xvf gst-rtsp-server-1.18.6.tar.xz
编译 gst-rtsp-server
cd gst-rtsp-server-1.18.6/
meson build
cd build
ninja
运行 gst-rtsp-server
信息
此处我们假定 /dev/video0
是你想要使用的视频源。如果你的摄像头被分配到了其他的名称下,请替换以下命令行中对应的设备名。
cd examples/
./test-launch --gst-debug-level=3 "( v4l2src device=/dev/video0 ! queue ! mpph265enc bps=51200000 rc-mode=vbr ! rtph265pay name=pay0 pt=97 )"
客户端配置
以下以 Windows 下运行 VLC 为例,介绍如何收看 RTSP 视频推流。
-
下载并安装 VLC
-
点击 媒体 - 打开网络串流 来输入 RTSP 推流地址
提示
需使用可通讯的 IP 地址。
- 点击播放后即可查看 RTSP 远程推流内容