mac下RTSP服务器搭建(ZLMediaKit)
mac下RTSP服务器搭建(ZLMediaKit)
目录
- 获取代码
- 编译器
- cmake
- 依赖库
- 构建和编译项目
- 运行
- 测试
注:参考wiki(包含其他系统安装方式):https://github.com/ZLMediaKit/ZLMediaKit/wiki
1. 获取代码
- 请不要使用github 下载zip包的方式下载源码,务必使用git克隆ZLMediaKit的代码,因为ZLMediaKit依赖于第三方代码,zip包不会下载第三方依赖源码,你可以这样操作:
#国内用户推荐从同步镜像网站gitee下载
git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit
cd ZLMediaKit
#千万不要忘记执行这句命令
git submodule update --init
2. 编译器
1. 编译器版本要求
- ZLMediaKit采用了C++11的语法和库,要求编译器支持完整的C++11标准,亦即:
- linux上要求gcc 版本 >= 4.8(4.7应该也能支持)
- macOS上clang >= ???(我也不知道,估计大部分不会遇到这个问题)
- windows 上visual stuido >= 2015(vs2013某些版本也能编译通过,如果怕麻烦建议直接vs2017)
2. 安装编译器
- 如果你是macOS用户,你直接安装xcode即可。
3. cmake
- 如果你是macOS用户,你可以这样安装cmake:
brew install cmake
4. 依赖库
1. 依赖库列表
- ZLMediaKit可选依赖一些第三方库,这些库都不是必选的;在构建ZLMediaKit时,cmake能查找系统路径中的这些库,并根据安装情况选择是否开启相关特性,你可以选择安装这些依赖并启用相关特性:
- openssl
- flash player在播放rtmp时,采用的是复杂握手模式,如果不安装该库,flash player将播放不了zlmediakit 提供的rtmp url.
- 同时ZLMediaKit的https/rtsps相关功能需要使用openssl才能开启。
- ffmpeg
- zlmediakit可以通过fork ffmpeg进程的方式实现多种协议的拉流,编译时不需要安装FFmpeg。
- sdl、avcodec、avutil
- 这3个库供ZLMediaKit的test_player测试程序使用,你通常不需要安装这3个库。
- openssl
2. 安装依赖库
macOS/centos下安装依赖库:下载并安装以上几个库即可
5. 构建和编译项目
- 在linux或macOS系统下,你应该这样操作:
cd ZLMediaKit
mkdir build
cd build
#macOS下可能需要这样指定openss路径:cmake .. -DOPENSSL_ROOT_DIR=/usr/local/Cellar/openssl/1.0.2j/
cmake ..
make -j4
6. 运行
ZLMediaKit工程主要生成3种二进制目标文件,他们的生成的路径在release目录下,这些目标文件主要分为:
- MediaServer进程
- 这是ZLMediaKit作为服务器的主进程,该进程可以在免去开发的情况下直接作为测试流媒体服务器使用,如果你需要更复杂的业务逻辑,可以通过Web HOOK和RESTful API实现,同时你可以通过配置文件控制其参数。
- 在macos下启动:
cd ZLMediaKit/release/mac/Debug #通过-h可以了解启动参数 ./MediaServer -h #以守护进程模式启动 ./MediaServer -d &
7. 测试
- 参考wiki:ZLMediaKit推流测试
1. 推流测试
- ZLMediaKit支持rtsp/rtmp/rtp推流,一般通常使用obs/ffmpeg推流测试,其中FFmpeg推流命令支持以下:
- 使用rtsp方式推流
# h264推流
ffmpeg -re -i "/path/to/test.mp4" -vcodec h264 -acodec aac -f rtsp -rtsp_transport tcp rtsp://127.0.0.1/live/test
# h265推流
ffmpeg -re -i "/path/to/test.mp4" -vcodec h265 -acodec aac -f rtsp -rtsp_transport tcp rtsp://127.0.0.1/live/test
- 使用rtmp方式推流
#如果未安装FFmpeg,你也可以用obs推流
ffmpeg -re -i "/path/to/test.mp4" -vcodec h264 -acodec aac -f flv rtmp://127.0.0.1/live/test
# RTMP标准不支持H265,但是国内有自行扩展的,如果你想让FFmpeg支持RTMP-H265,请按照此文章编译:https://github.com/ksvc/FFmpeg/wiki/hevcpush
- 使用rtp方式推流
# h264推流
ffmpeg -re -i "/path/to/test.mp4" -vcodec h264 -acodec aac -f rtp_mpegts rtp://127.0.0.1:10000
# h265推流
ffmpeg -re -i "/path/to/test.mp4" -vcodec h265 -acodec aac -f rtp_mpegts rtp://127.0.0.1:10000
2. 观察日志
- 我测试的是rtsp方式,推流命令需要修改播放文件和ip,如:
推流命令:
ffmpeg -re -i "believe.mp4" -vcodec h264 -acodec aac -f rtsp -rtsp_transport tcp rtsp://127.0.0.1/live/test拉流命令:
ffplay -rtsp_transport tcp rtsp://127.0.0.1/live/test
3. 日志中相关字符串分别代表:
2020-04-10 12:51:52.331 I | regist rtsp __defaultVhost__ rtp 206442D7^ ^ ^ ^schema vhost app stream_id
mac下RTSP服务器搭建(ZLMediaKit)相关推荐
- Mac下暗黑服务器搭建(完全攻略,一个菜鸟的搭建之路)
1.我选择了首先安装数据库,mysql数据库的安装与配置,参照(请原谅,由于本人身份卑微,无权发布链接) 大鸡蛋补充:http://www.cnblogs.com/macro-cheng/archiv ...
- rtsp 服务器搭建
rtsp 服务器搭建: 今天我们搭建这个 rtsp 服务器的名称叫做:ZLMediaKit,它是一个基于 C++11 的高性能运营级流媒体服务框架,类似我之前给大家搭建的 rtmp 服务器(srs 流 ...
- virtualbox php mac,详解mac下通过docker搭建LEMP环境
在mac下通过docker搭建LEMP环境境 1.安装virtualbox.由于docker是在lxc环境的容器 2.安装boot2docker,用于与docker客户端通讯 > brew up ...
- mac 本地php环境搭建,mac下php环境搭建的方法
mac下php环境搭建的方法是:首先切换到root用户:然后查看80端口是否被占用:接着开启apache,并在"httpd.conf"中开启php模块:最后编写php代码进行测试即 ...
- Linux下FTP服务器搭建
Linux下FTP服务器搭建 一.FTP介绍 二.环境介绍 三.FTP服务端搭建步骤 1.安装相关软件包 2.启动FTP并检查状态 3.检查服务端口运行状态 4.修改FTP配置文件 5.关闭selin ...
- Linux centos7 下 svn 服务器搭建
摘自:https://www.cnblogs.com/mymelon/p/5483215.html 鉴于在搭建时,参考网上很多资料,网上资料在有用的同时,也坑了很多人 本文的目的,也就是想让后继之人在 ...
- 简单易行的用windows系统虚拟苹果mac操作系统 mac下android环境搭建笔记(android studio)
作者:韩梦飞沙 QQ:313134555 ios模拟器电脑版中文版(iPadian)下载 - 『精品软件区』 - 吾爱破解论坛 - LCG - LSG |安卓破解|病毒分析|破解软件|www.52po ...
- suse ftp文件服务器搭建,SUSE下FTP服务器搭建
FTP(File Transfer Protocol),是TCP/IP网络上两台计算机传送文件的协议,是在TCP/IP网络和Internet上最早使用的协议之一,属于网络协议组的应 用层.FTP客户机 ...
- linux下svn服务器搭建及使用
文章目录 1. 安装svn客户端 2. 安装svn服务器 3. 在svn目录下创建版本库 4. 修改版本库配置文件 4.1 修改 authz 文件 4.2 设置密码 passwd 4.3 修改 svn ...
最新文章
- java流实例_java流汇总以及使用实例
- MTK 平台上如何给 camera 添加一种 preview size
- hdu 1404/zoj 2725 Digital Deletions 博弈论
- 逻辑数据库读取bseg
- 5-3如何设置文件的缓冲
- kuka机器人外部轴异步_(技术)机器人维保10个常见问题解答
- 德国超级计算机中心,德国:强化人工智能能力建设 加大高性能计算网络投资...
- Android TabHost中实现标签的滚动以及一些TabHost开发的奇怪问题
- 探索Office 2010新特性
- 苹果正式推送iPadOS 13.1、iOS 13.1,修复大量Bug,速升!
- 如何使用Arrays工具类操作数组
- Teamcenter 开发利器组合介绍。 Eclipse + Visual Studio
- Telnet发邮件过程
- Caffe傻瓜系列(6):solver及其配置
- html 手机端原型,Axure教程:移动端原型如何适配不同分辨率的手机?
- 微信小程序-image(图片)
- 如何管理计算机的字体,请同事吃了顿饭才要来的字体管理神器,电脑里的几百个字体有救了!...
- web简单静态页面设计【HTML+CSS】
- vue如何打开pdf文件
- 基于STC89C52单片机的LED显示电子钟的制作
热门文章
- 使用注解实现ssh整合
- jquery中Live方法不可用,Jquery中Live方法失效
- (原)数据结构——线索二叉树
- lua cocos 动画回调
- CodeForces - 1559D2 Mocha and Diana (Hard Version)(思维)
- 2019ICPC(沈阳) (回文自动机+Palindrome Series优化dp)
- CodeForces - 1312D Count the Arrays(组合数学)
- POJ - 2083 Fractal(dfs,递归画图)
- 程序员初试和复试_程序员因肌肉发达面试被质疑能力,网友:这做程序员有啥关系呢?...
- TransCenter解读