当前位置: 首页 > news >正文

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

最方便的方式,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: zltoolkitCMake Error at 3rdpart/CMakeLists.txt:91 (add_library):No SOURCES given to target: mpegCMake Error at 3rdpart/CMakeLists.txt:68 (add_library):No SOURCES given to target: flvCMake Error at 3rdpart/CMakeLists.txt:55 (add_library):No SOURCES given to target: movCMake Error at 3rdpart/CMakeLists.txt:32 (add_library):No SOURCES given to target: jsoncppCMake 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

http://www.lryc.cn/news/508717.html

相关文章:

  • vue中的css深度选择器v-deep 配合!important
  • Python读写JSON文件
  • 重温设计模式--外观模式
  • 云原生服务网格Istio实战
  • linux蓝牙模块和手机配对
  • dockerfile文档编写(1):基础命令
  • 在 Go 中利用 ffmpeg 进行视频和音频处理
  • 【机器学习】探索机器学习与人工智能:驱动未来创新的关键技术
  • React Refs 完整使用指南
  • 程控电阻箱应用中需要注意哪些安全事项?
  • C/C++基础知识复习(43)
  • 苍穹外卖-day05redis 缓存的学习
  • VSCode搭建Java开发环境 2024保姆级安装教程(Java环境搭建+VSCode安装+运行测试+背景图设置)
  • PHP MySQL 插入多条数据
  • Oracle安装报错:将配置数据上载到资料档案库时出错
  • JavaScript 中通过Array.sort() 实现多字段排序、排序稳定性、随机排序洗牌算法、优化排序性能,JS中排序算法的使用详解(附实际应用代码)
  • Deformable DETR:Deformable Transformers for End-to-End Object Detection论文学习
  • 机器学习-43-可解释性机器学习库LIME
  • 【Unity功能集】TextureShop纹理工坊(五)选区
  • Spring Cloud OpenFeign快速入门demo
  • 研发效能DevOps: Vite 使用 Element Plus
  • sfnt-pingpong -测试网络性能和延迟的工具
  • Kubernetes、Docker 和 Docker Registry 关系是是什么?
  • docker部署微信小程序自动构建发布和更新
  • 模仿elementui的Table,实现思路
  • Unity中使用环形缓冲区平滑抖动值
  • 【Yonghong 企业日常问题 06】上传的文件不在白名单,修改allow.jar.digest属性添加允许上传的文件SH256值?
  • SpringBoot使用 AOP 实现自定义日志记录并保存在Mysql
  • 谷歌开源最强天气预报AI模型 GenCast
  • C++打造局域网聊天室第十课: 客户端编程及数据发送