ubuntu使用ffmpeg+ZLMediaKit搭建rtsp推流环境

发布于:2025-02-11 ⋅ 阅读:(115) ⋅ 点赞:(0)

最方便的方式,ubuntu上安装vlc播放器,通过vlc来推流,在网上有很多教程。这里采用ffmpeg+ZLMediaKit

必备条件:

1、安装ffmpeg

2、安装ZLMediaKit

一、安装ffmpeg

sudo apt update
sudo apt install ffmpeg

二、安装ZLMediaKit

ZLMediaKit采用源码安装的方式

安装源码编译环境
sudo apt update
sudo apt install git cmake make g++ -y

下载源码,编译

git clone https://github.com/ZLMediaKit/ZLMediaKit.git
cd ZLMediaKit
cmake .

报错提示:

CMake Error at 3rdpart/CMakeLists.txt:201 (add_library):
  No SOURCES given to target: zltoolkit


CMake Error at 3rdpart/CMakeLists.txt:91 (add_library):
  No SOURCES given to target: mpeg


CMake Error at 3rdpart/CMakeLists.txt:68 (add_library):
  No SOURCES given to target: flv


CMake Error at 3rdpart/CMakeLists.txt:55 (add_library):
  No SOURCES given to target: mov


CMake Error at 3rdpart/CMakeLists.txt:32 (add_library):
  No SOURCES given to target: jsoncpp


CMake Generate step failed.  Build files cannot be regenerated correctly.

这个问题通常是因为 ZLMediaKit 的子模块未正确下载导致的。ZLMediaKit 的项目中依赖多个子模块(如 ZLToolKitjsoncpp 等),这些子模块需要通过 git submodule 命令下载。

git submodule update --init --recursive

重新 cmake , 报错

CMake Warning at webrtc/CMakeLists.txt:28 (message): srtp 未找到, WebRTC 相关功能打开失败

这个警告表明 ZLMediaKit 中的 WebRTC 功能需要依赖 SRTP 库,而你的系统中没有安装该库或 CMake 未能找到它。

解决方法

安装 SRTP 库

ZLMediaKit 的 WebRTC 功能依赖 libsrtp,需要在系统中安装该库。

对于 Ubuntu 或 Debian 系统

执行以下命令安装 libsrtp

sudo apt update
sudo apt install libsrtp2-dev -y

重新cmake,没有报错提示,然后make。

开始推流

一、启动启动 ZLMediaKit

编译完成之后,

cd release/linux/Debug/

./MediaServer

sudo netstat -tuln | grep 554

可以看到默认启动端口是554。

如果要修改成其它端口,可以修改目录下的config.ini。

二 启动 ffmpeg推流

使用 FFmpeg20.mp4 推送到 rtsp://127.0.0.1:8554/left

ffmpeg -re -i 20.mp4 -c:v libx264 -preset ultrafast -tune zerolatency -f rtsp rtsp://127.0.0.1:8554/left

运行报错,观察MediaServer的日志:

2024-12-23 10:15:13.008 W [MediaServer] [14284-event poller 3] RtspSession.cpp:62 onError | 1-47(127.0.0.1:35922) RTSP播放器(__defaultVhost__/left/)断开:rtsp推流url非法,最少确保两级rtsp url:rtsp://127.0.0.1:8554/left,耗时(s):0
可见是url地址非法,至少要有两级

修改为:

ffmpeg -re -i 20.mp4 -c:v libx264 -preset ultrafast -tune zerolatency -f rtsp rtsp://127.0.0.1:8554/live/left

三 验证

使用ffplay拉流显示

ffplay rtsp://127.0.0.1:8554/live/left


网站公告

今日签到

点亮在社区的每一天
去签到