ZLMediaKit流媒体服务器

article/2025/10/19 14:44:13

一 搭建

公司搭建云导播台系统,0-1。本人先后调研了几个webrtc流媒体服务器框架:

mediasoup:nodejs和c++开发各占一半

janus:c开发插件,用docker镜像安装运行成功,自编译运行坑太多。

ZLMediaKit:c++开发。信令部分需要单独开发,可以团队合作。编译运行一次成功,易用性好。

win10+vscode+ remote ssh连接虚拟机192.168.2.205,截图下边4个箭头从左到右依次点击,根据提示选择选项。编译、调试程序非常方便。无需生成launch.json,tasks.json等配置文件

源码下载地址

https://github.com/ZLMediaKit/ZLMediaKit

编译参考

https://github.com/ZLMediaKit/ZLMediaKit/wiki/%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B

编译成功后,在ZLMediaKit/release/linux/Debug目录下生成MediaServer

须注意,webrtc编译和MediaServer编译有一点点差异,看下文

zlm启用webrtc编译指南 · ZLMediaKit/ZLMediaKit Wiki · GitHub

 虚拟机实测,调试运行会提示80,443,554端口被占用或权限问题。手动改端口1080,443,554

ffmpeg循环推流://注意看,此处推的是rtmp,webrtc服务器也能接收到流

ffmpeg -re -stream_loop -1 -i 1.mp4 -vcodec h264 -acodec aac -f flv rtmp://192.168.2.205/live/test1

obs推流:

 浏览器播放:

http://192.168.2.205:1080/webrtc         

//踩坑记录:因为http默认端口80改成了1080,所以此处要对应改,被坑半天排查问题

 url完整显示如下:

http://192.168.2.205:1080/index/api/webrtc?app=live&stream=test1&type=play

二 源码分析

单进程多线程,epoll模型:

ZLMediaKit启动时根据cpu核心数自动创建若干epoll实例(非linux平台为select);每个epoll实例都有一个线程运行epoll_wait函数来等待事件的触发。

服务器收到accept事件后,会创建一个TcpSession对象并绑定到该epoll实例(同时把与之对应的peer fd加入到相关epoll监听)。Tcp连接:TcpSession对象 1:1,在之后客户端与服务器的数据交互中,该TcpSession对象处理一切与之相关的业务数据,并且该对象之后生命周期内的一切事件都会由该epoll线程触发,这样服务器的每个epoll线程都能均匀的分派到合理的客户端数量
 

rtsp mediasource最重要的两个元素

sdp

rtp

根据track生成sdp,三个部分,title,video,audio

rtmp mediasource最重要的两个元素

metadata(元数据,分辨率,codecid,samples等)

config,frame(sps,pps,aac adts头)

rtmp packet(h264/aac等)


http://chatgpt.dhexx.cn/article/bUEUDlHd.shtml

相关文章

开源流媒体解决方案,流媒体服务器,推拉流,直播平台,SRS,WebRTC,移动端流媒体,网络会议,优秀博客资源等分享

开源流媒体解决方案,流媒体服务器,推拉流,直播平台,SRS,WebRTC,移动端流媒体,网络会议,优秀博客资源等分享 一、优秀的流媒体博客资源1.1 EasyNVR:专注于安防视频互联网化…

流媒体服务器

WebRTC ICE概述 一、概述 ICE全称Interactive Connectivity Establishment:交互式连通建立方式。 ICE参照RFC5245建议实现,是一组基于offer/answer模式解决NAT穿越的协议集合。 它综合利用现有的STUN,TURN等协议,以更有效的方式…

常见的流媒体协议

一,基本概念 流媒体(streaming media)是指将一连串的媒体数据压缩后,经过网上分段发送数据,在网上即时传输影音以供观赏的一种技术与过程,此技术使得数据包得以像流水一样发送;如果不使用此技术…

流媒体技术基础-流媒体编码与协议

一、流媒体传输协议 1.实时传输协议RTP 针对多媒体数据流的一种传输协议,建立在UDP协议上,属于传输层协议。 定义互联网上传递音频和视频的标准数据包格式。RTP协议常用于流媒体系统(配合RTCP协议)、视频会议和视频电话系统&…

最新海康摄像机、NVR、流媒体服务器、回放取流RTSP地址规则说明

本文档主要介绍海康威视设备直播预览RTSP、录像回放RTSP、流媒体取流的RTSP URL和IE直接预览、回放的HTTP URL。 RTSP为取流协议,取到码流后需要解码显示,可以通过VLC播放器或者EasyPlayer播放器进行测试,IE等浏览器网页不支持RTSP协议直接取…

流媒体服务器ZLMediaKit

ZLMediaKit 获取代码 git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit cd ZLMediaKit git submodule update --init安装GCC4.8 sudo yum -y install gcc sudo yum -y install gcc-c安装cmake3.9 卸载旧版本的cmake(慎用!它会删除所有包含cmake的目录…

LiveQing流媒体RTMP推流服务-如何获直播流地址 HLS/HTTP-FLV/WS-FLV/WebRTC/RTMP视频流地址

LiveQing流媒体RTMP推流服务-如何获直播流地址 HLS/HTTP-FLV/WS-FLV/WebRTC/RTMP视频流地址 1、服务说明2、如何一步一步搭建视频直播3、配置鉴权直播间3.1 直播间创建3.2 获取RTMP推流地址3.3 播放流地址 4、视频集成方式5、分享页面集成6、视频流地址集成6.1、直播流地址&…

什么是流媒体???

流媒体又叫做流式媒体,它是指商家用一个视频传送服务器把节目当成数据包发出,传送到网络上。用户通过解压设备对这些数据进行解压后,节目就会像发送前那先显示出来。 这个过程的一系列相关的包称为“流”。流媒体实际指的是一种新的媒体传送方…

Windows基于Nginx搭建RTMP流媒体服务器(附带所有组件下载地址及验证方法)

RTMP服务时常用于直播时提供拉流推流传输数据的一种服务。前段时间由于朋友想搭建一套直播时提供稳定数据传输的服务器,所以就研究了一下如何搭建及使用。 1、下载nginx 首先我们要知道一般nginx不能直接配置rtmp服务,在Windows系统上需要特殊nginx版本…

流媒体服务器(17)—— 流媒体开源服务 MediaSoup 初识

目录 前言 正文 一、简单介绍 二、关键特色 1. 超强 SFU 功能 2. Node.js 模块 3. 客户端 SDK 三、架构组成 1. 关键实例 2. 重要模块 四、发展现状 https://liuzhen.blog.csdn.net/article/details/115603863https://liuzhen.blog.csdn.net/article/details/1156038…

最新有效的rtsp流媒体测试地址

以下发布的地址经测试有效地址 发布时间 2022年8月15日10:26:24 提示:地址如果失效请大家提醒会及时更新 rtsp地址:rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mp4 2023-6-30 测试已失效 rtmp地址:rtmp://ns8.indexforce…

流媒体服务器EasyNVR怎样获取视频流的播放地址?

很多用户要求在视频直播的过程中,直播画面或者链接是可以进行分享的,以便更多的人能够看到,这一项要求被运用在很多监管平台当中。 在我们的流媒体服务器EasyNVR中可以通过多种方式获得播放地址,本文就为大家介绍三种获取播放地址…

VS2010安装

使用的电脑为Win10 64位,这是使用的VS2010: 链接:https://pan.baidu.com/s/1JV3zpoahAPTezE06dB2gEw 提取码:gty8 1、下载后点击【setup.exe】,安装VS2010; 2、点击【安装VS2010】 ; 3、这里…

Visual Studio 2010 下载及安装方法(图文解说)

Visual Studio 2010 下载及安装方法(图文解说) 2012-02-22 11:16:38| 分类: VC程序设计 | 标签: |字号大中小 订阅 http://blog.sina.com.cn/s/blog_5feacbdf0100iiu4.html 在2010年的4月21日,微软官方发布了一…

Win10环境下VS2003安装教程

1、将下图红色框里的两个文件里的内容拷贝到一个新的文件夹中,遇到相同文件直接替换即可; 双击下图红色框中文件后关闭(为后面步骤使用) 2、打开拷贝后的文件夹,找到setup.exe双击打开; 3、VS.NET第一部…

Visual Studio2015专业版安装教程

Win7系统下安装: 参考链接:https://blog.csdn.net/j879159541/article/details/93461358 不需要VS2015的全部组件,只需要与C/C相关的组件,这里只选择了“Visual C”。 等待安装完成即可。

VS2010详细安装步骤

VS2010安装步骤 为了满足不同需求的用户,VS2010 又被细分成了五个版本,分别是专业版(Professional)、高级版(Premium)、旗舰版(Ultimate)、学习版(Express)和测试版(Test) 其中: 学习版是免费的,功能也相对简单,主要供…

VS 2017安装教程

1、首先下载安装包,地址是:https://www.microsoft.com/zh-cn/download/,进入首页后选择开发人员工具,进入开发人员工具后即可下载VS,VS有三个版本,分别是社区版、专业版、企业版。我选择的是社区版。点击下…

VS2015安装

计算机配置: i7 win7 sp1 vs2010; VS2015安装过程中,首先在安装.net的时候很慢,全部安装完成2小时左右; 如果安装过程顺利就安装完成了,但是我安装后提示一些组件安装错误,重新安装依然错误…

Visual studio 2015(VS2015)的下载和安装,以及安装VS2015中的C++

主要内容如下: 1. VS2015下载 2. VS2015安装 3. VS2015安装C的内容 作者:大曲曲 邮箱:xiaoxia.qufoxmail.com 本文最终目标:要实现VS2015QT5OpenCV3开发环境搭建 1. VS2015下载 Visual studio官方网站:https://www.vi…