当前位置: 首页 > 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

相关文章:

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

最方便的方式,ubuntu上安装vlc播放器,通过vlc来推流,在网上有很多教程。这里采用ffmpegZLMediaKit 必备条件: 1、安装ffmpeg 2、安装ZLMediaKit 一、安装ffmpeg sudo apt update sudo apt install ffmpeg 二、安装ZLMediaKit…...

vue中的css深度选择器v-deep 配合!important

当 <style> 标签有 scoped 属性时&#xff0c;它的 CSS 只作用于当前组件中的元素&#xff0c;父组件的样式将不会渗透到子组件。 如果你希望 scoped 样式中的一个选择器能够作用得“更深”&#xff0c;例如影响子组件&#xff0c;你可以使用深度选择器。 ::v-deep { } 举…...

Python读写JSON文件

import jsondef writeJSONFile(self):with open(g_updateFilePath, "w" encodingutf-8) as fiel:json.dump(dictData, fiel, indent4, ensure_asciiFalse)fiel.close()def readJsonToDict(file):with open(file, r, encodingutf-8) as f: # 确保文件以 UTF-8 编码打…...

重温设计模式--外观模式

文章目录 外观模式&#xff08;Facade Pattern&#xff09;概述定义 外观模式UML图作用 外观模式的结构C 代码示例1C代码示例2总结 外观模式&#xff08;Facade Pattern&#xff09;概述 定义 外观模式是一种结构型设计模式&#xff0c;它为子系统中的一组接口提供了一个统一…...

云原生服务网格Istio实战

基础介绍 1、Istio的定义 Istio 是一个开源服务网格&#xff0c;它透明地分层到现有的分布式应用程序上。 Istio 强大的特性提供了一种统一和更有效的方式来保护、连接和监视服务。 Istio 是实现负载平衡、服务到服务身份验证和监视的路径——只需要很少或不需要更改服务代码…...

linux蓝牙模块和手机配对

在 Linux 系统下&#xff0c;将蓝牙模块与手机配对和连接通常涉及以下几个步骤。以下是详细的步骤和命令&#xff0c;帮助你实现蓝牙模块与手机的配对和连接。 1. 确认蓝牙服务已启动 首先&#xff0c;确保蓝牙服务已在 Linux 系统上运行。 systemctl status bluetooth如果服…...

dockerfile文档编写(1):基础命令

目录 Modelscope-agentARGFROMWORKDIRCOPYRUNENVCMD run_loopy Modelscope-agent ARG BASE_IMAGEregistry.cn-beijing.aliyuncs.com/modelscope-repo/modelscope:ubuntu22.04-cuda12.1.0-py310-torch2.1.2-tf2.14.0-1.12.0FROM $BASE_IMAGEWORKDIR /home/workspaceCOPY . /hom…...

在 Go 中利用 ffmpeg 进行视频和音频处理

在 Go 中利用 ffmpeg 进行视频和音频处理 ffmpegutil 包概述主要功能介绍1. 视频格式转换2. 提取音频3. 获取视频信息4. 创建视频缩略图5. 提取随机帧无线程版本&#xff1a;多线程版本&#xff1a; 总结 ffmpeg 是一款功能强大的多媒体处理工具&#xff0c;支持视频和音频的编…...

【机器学习】探索机器学习与人工智能:驱动未来创新的关键技术

探索机器学习与人工智能&#xff1a;驱动未来创新的关键技术 前言&#xff1a;人工智能的核心技术深度学习&#xff1a;自然语言处理&#xff08;NLP&#xff09;&#xff1a;计算机视觉&#xff1a; 机器学习与人工智能的驱动创新医疗健康领域金融行业智能制造与工业互联网智慧…...

React Refs 完整使用指南

React Refs 完整使用指南 1. Refs 基础用法 1.1 创建和访问 Refs // 类组件中使用 createRef class MyComponent extends React.Component {constructor(props) {super(props);this.myRef React.createRef();}componentDidMount() {// 访问 DOM 节点console.log(this.myRef…...

程控电阻箱应用中需要注意哪些安全事项?

程控电阻箱是一种用于精确控制电路中电流和电压的电子元件&#xff0c;广泛应用于电子实验、测试设备以及精密测量仪器中。在应用程控电阻箱时&#xff0c;为确保安全和设备的正常运行&#xff0c;需要注意以下几个安全事项&#xff1a; 1. 正确连接&#xff1a;确保电阻箱与电…...

C/C++基础知识复习(43)

1) 什么是运算符重载&#xff1f;如何在 C 中进行运算符重载&#xff1f; 运算符重载是指在 C 中为现有的运算符定义新的行为&#xff0c;使得它们能够用于用户定义的数据类型&#xff08;如类或结构体&#xff09;。通过运算符重载&#xff0c;可以让自定义类型像内置数据类型…...

苍穹外卖-day05redis 缓存的学习

苍穹外卖-day05 课程内容 Redis入门Redis数据类型Redis常用命令在Java中操作Redis店铺营业状态设置 学习目标 了解Redis的作用和安装过程 掌握Redis常用的数据类型 掌握Redis常用命令的使用 能够使用Spring Data Redis相关API操作Redis 能够开发店铺营业状态功能代码 功能实…...

VSCode搭建Java开发环境 2024保姆级安装教程(Java环境搭建+VSCode安装+运行测试+背景图设置)

名人说&#xff1a;一点浩然气&#xff0c;千里快哉风。—— 苏轼《水调歌头》 创作者&#xff1a;Code_流苏(CSDN) 目录 一、Java开发环境搭建二、VScode下载及安装三、VSCode配置Java环境四、运行测试五、背景图设置 很高兴你打开了这篇博客&#xff0c;更多详细的安装教程&…...

PHP MySQL 插入多条数据

PHP MySQL 插入多条数据 在Web开发中&#xff0c;PHP和MySQL的组合是非常常见的。PHP是一种服务器端脚本语言&#xff0c;而MySQL是一种流行的数据库管理系统。在许多情况下&#xff0c;我们可能需要一次性向MySQL数据库插入多条数据。这可以通过几种不同的方法实现&#xff0…...

Oracle安装报错:将配置数据上载到资料档案库时出错

环境&#xff1a;联想服务器 windows2022安装Oracle11g 结论&#xff1a;禁用多余网卡先试试&#xff0c;谢谢。 以下是问题描述和处理过程&#xff1a; 网上处理方式: hosts文件添加如下&#xff1a; 关闭防火墙 暂时无法测试通过。 发现ping不是本地状态&#xff0c;而是…...

JavaScript 中通过Array.sort() 实现多字段排序、排序稳定性、随机排序洗牌算法、优化排序性能,JS中排序算法的使用详解(附实际应用代码)

目录 JavaScript 中通过Array.sort() 实现多字段排序、排序稳定性、随机排序洗牌算法、优化排序性能&#xff0c;JS中排序算法的使用详解&#xff08;附实际应用代码&#xff09; 一、为什么要使用Array.sort() 二、Array.sort() 的使用与技巧 1、基础语法 2、返回值 3、…...

Deformable DETR:Deformable Transformers for End-to-End Object Detection论文学习

1. 为什么提出了Deformable DETR&#xff1f; 因为DETR本身的计算量大&#xff0c;收敛速度慢。其次是小目标检测效果差。主要原因是Attention模块每次只关注一小部分采样点&#xff0c;导致需要很多轮数才能学习到真实需要关注的目标。 Deformable DETR注意力模块只关注一个…...

机器学习-43-可解释性机器学习库LIME

文章目录 1 LIME1.1 LIME的特点1.2 LIME的步骤2 应用LIME2.1 分类模型2.1.1 创建模型和解释器2.1.2 解释样本2.2 回归模型2.2.1 创建模型和解释器2.2.2 解释样本2.3 文本模型2.3.1 创建模型和解释器2.3.2 解释样本2.4 图像模型2.4.1 创建模型和解释器2.4.2 解释样本3 附录3.1 l…...

【Unity功能集】TextureShop纹理工坊(五)选区

项目源码&#xff1a;在终章发布 索引 选区PS选区选区功能点提炼 TextureShop选区方形区域中间镂空边框的流动虚线SelectedRegion类选择选区更新选区 选区 选区&#xff0c;也既是在当前选中图层中&#xff0c;已选择的编辑区域&#xff0c;我们后续的所有图像编辑操作&#x…...

Axure疑难杂症:全局变量典型应用及思考逻辑(玩转全局变量)

亲爱的小伙伴,在您浏览之前,烦请关注一下,在此深表感谢! Axure产品经理精品视频课已登录CSDN可点击学习https://edu.csdn.net/course/detail/40420 课程主题:全局变量典型应用 主要内容:全局变量赋值、自定义,全局变量与中继器、文本框等其他元件赋值交互 应用场景:…...

DeepSeek-OCR-2参数详解:--max_pages --batch_size --conf_threshold 高级调优指南

DeepSeek-OCR-2参数详解&#xff1a;--max_pages --batch_size --conf_threshold 高级调优指南 1. 引言&#xff1a;为什么需要调优参数&#xff1f; 如果你用过DeepSeek-OCR-2&#xff0c;可能已经体验过它强大的文档解析能力。但你是否遇到过这样的情况&#xff1a;处理多页…...

【神通数据库】从零到精通:安装配置、控制台操作与国产化适配全攻略

1. 神通数据库入门指南 第一次接触神通数据库的朋友可能会好奇&#xff0c;这到底是个什么样的数据库&#xff1f;简单来说&#xff0c;神通数据库是一款国产的企业级关系型数据库管理系统&#xff0c;由天津神舟通用数据技术有限公司研发。我在实际项目中使用过多个版本的数据…...

AI Agent Harness Engineering 监控与日志系统搭建

AI Agent Harness Engineering 监控与日志系统搭建 副标题:从0到1构建覆盖「决策-工具-对话-资源」全链路的企业级可观测性底座 第一部分:引言与基础 (Introduction & Foundation) 1.1 引人注目的标题 核心关键词 AI Agent Harness Engineering、AI Agent监控、Agent…...

手搓单片机

“手搓单片机”在电子爱好者的语境里&#xff0c;通常指绕开现成的开发板&#xff0c;自己从零搭建一个“最小系统”。这就像给芯片造一个能呼吸、能思考的“身体”。对于新手&#xff0c;最经典的入门路径是51单片机&#xff08;如 STC89C52&#xff09;。下面这份手搓指南分为…...

CSS如何实现卡片式布局_掌握盒模型阴影与间距设置

box-shadow 要清晰自然需控制偏移与模糊比例&#xff0c;避免与 border 冲突&#xff1b;文字不被遮挡需确保无误设 z-index 或 overflow: hidden&#xff1b;padding 管内距、margin 管外距&#xff1b;Flex 中用 flex: 1 0 300px 防缩窄&#xff1b;border-radius 与 shadow …...

如何快速掌握Node.js最佳实践:2024终极指南

如何快速掌握Node.js最佳实践&#xff1a;2024终极指南 【免费下载链接】nodebestpractices :white_check_mark: The Node.js best practices list (July 2024) 项目地址: https://gitcode.com/GitHub_Trending/no/nodebestpractices Node.js最佳实践项目是Node.js开发者…...

HarmonyOS PC 命令行工具构建框架

欢迎大家一起共建 HarmonyOS PC 生态&#xff01; &#x1f680; 欢迎加入开源鸿蒙PC社区&#xff1a;https://harmonypc.csdn.net/ 目录 概述环境准备 Windows 环境&#xff08;WSL&#xff09;Linux 环境&#xff08;Ubuntu 22.04&#xff09;macOS 环境 快速开始详细步骤…...

如何免费创建和管理多个指纹浏览器环境:VirtualBrowser 终极指南

如何免费创建和管理多个指纹浏览器环境&#xff1a;VirtualBrowser 终极指南 【免费下载链接】VirtualBrowser Free anti fingerprint browser, 指纹浏览器, 隐私浏览器, 防识别浏览器, 反识别浏览器, 防关联浏览器, 免费的web3空投专用指纹浏览器 https://virtualbrowser.cc/?…...

高效字符串截取:从基础到实战技巧

1. 字符串截取的基础入门 刚接触编程时&#xff0c;我最头疼的就是处理字符串。记得第一次做日志分析&#xff0c;需要从一堆杂乱的数据中提取关键信息&#xff0c;结果手忙脚乱折腾了半天。后来才发现&#xff0c;掌握字符串截取技巧就像拿到了一把瑞士军刀&#xff0c;能轻松…...