跳到主要内容

RTSP 安装与使用

需求

  1. 兼容的摄像头
  2. 如果使用有Hdmi-in的RK开发板,也可以使用 HDMI RX 作为视频源

服务端配置

提示

使用 HDMI RX 时,目前 gst-mppenc 暂不支持 NV24(YCbCr444) 与 RGB 输入,需要 HDMI 输入端切换颜色格式为 NV12(YCbCr420) 或 NV16(YCbCr422) ,或者使用Fmpeg 进行推流。

安装依赖

sudo add-apt-repository -r ppa:george-coolpi/multimedia
sudo apt-get update
sudo apt-get install gstreamer1.0-rtsp
apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5 gstreamer1.0-pulseaudio

查看支持的编码器

gst-inspect-1.0 | grep mpp

运行 mediamtx 和 Gstreamer

信息

此处我们假定 /dev/video41 是你想要使用的视频源。如果你的摄像头被分配到了其他的名称下,请替换以下命令行中对应的设备名。

wget https://github.com/bluenviron/mediamtx/releases/download/v1.9.0/mediamtx_v1.9.0_linux_arm64v8.tar.gz
tar -xzvf mediamtx_v1.9.0_linux_arm64v8.tar.gz
nohup ./mediamtx &

# 可用的编码器有 mpph264enc、mpph265enc、mppjpegenc、mppvp8enc,修改编码器需要修改 pipeline 后的 rtp*pay 或 *parse
gst-launch-1.0 v4l2src device=/dev/video41 ! \
videoconvert ! \
video/x-raw,format=NV12 ! \
mpph264enc bps=2000000 ! \
h264parse ! \
rtspclientsink location=rtsp://localhost:8554/test

客户端配置

使用 VLC 播放器

以下以 Windows 下运行 VLC 为例,介绍如何收看 RTSP 视频推流。

  1. 下载并安装 VLC VLC

  2. 点击 媒体 - 打开网络串流 来输入 RTSP 推流地址

rtsp-vlc1 rtsp-vlc2

提示

需替换为服务端命令行中指定的 URL 与 IP 地址。

  1. 点击播放后即可查看 RTSP 远程推流内容

rtsp-vlc

在开发板上使用 ffplay 播放器

也可直接使用上面提到的 FFmpeg 的 ffplay 工具进行播放

提示

需替换为服务端命令行中指定的 URL 与 IP 地址。
-vcodec 选项为指定的解码器,请根据 RTSP 流的编码进行调整,目前 ffmpeg-rockchip 支持的硬件解码器有 av1_rkmpph263_rkmpph264_rkmpphevc_rkmppmpeg1_rkmppmpeg2_rkmppmpeg4_rkmppvp8_rkmppvp9_rkmpp

ffmpeg-rockchip/ffplay -vcodec h264_rkmpp rtsp://192.168.1.123:8554/test

参考链接