mac下RTSP服务器搭建(ZLMediaKit)


目录

  1. 获取代码
  2. 编译器
  3. cmake
  4. 依赖库
  5. 构建和编译项目
  6. 运行
  7. 测试

注:参考wiki(包含其他系统安装方式):https://github.com/ZLMediaKit/ZLMediaKit/wiki


1. 获取代码

  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. 编译器版本要求

  1. ZLMediaKit采用了C++11的语法和库,要求编译器支持完整的C++11标准,亦即:

    1. linux上要求gcc 版本 >= 4.8(4.7应该也能支持)
    2. macOS上clang >= ???(我也不知道,估计大部分不会遇到这个问题)
    3. windows 上visual stuido >= 2015(vs2013某些版本也能编译通过,如果怕麻烦建议直接vs2017)

2. 安装编译器

  1. 如果你是macOS用户,你直接安装xcode即可。

3. cmake

  1. 如果你是macOS用户,你可以这样安装cmake:
brew install cmake

4. 依赖库

1. 依赖库列表

  1. ZLMediaKit可选依赖一些第三方库,这些库都不是必选的;在构建ZLMediaKit时,cmake能查找系统路径中的这些库,并根据安装情况选择是否开启相关特性,你可以选择安装这些依赖并启用相关特性:

    1. openssl

      1. flash player在播放rtmp时,采用的是复杂握手模式,如果不安装该库,flash player将播放不了zlmediakit 提供的rtmp url.
      2. 同时ZLMediaKit的https/rtsps相关功能需要使用openssl才能开启。
    2. ffmpeg
      1. zlmediakit可以通过fork ffmpeg进程的方式实现多种协议的拉流,编译时不需要安装FFmpeg。
    3. sdl、avcodec、avutil
      1. 这3个库供ZLMediaKit的test_player测试程序使用,你通常不需要安装这3个库。

2. 安装依赖库

macOS/centos下安装依赖库:下载并安装以上几个库即可

5. 构建和编译项目

  1. 在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目录下,这些目标文件主要分为:

  1. MediaServer进程

    1. 这是ZLMediaKit作为服务器的主进程,该进程可以在免去开发的情况下直接作为测试流媒体服务器使用,如果你需要更复杂的业务逻辑,可以通过Web HOOK和RESTful API实现,同时你可以通过配置文件控制其参数。
    2. 在macos下启动:
    cd ZLMediaKit/release/mac/Debug
    #通过-h可以了解启动参数
    ./MediaServer -h
    #以守护进程模式启动
    ./MediaServer -d &
    


7. 测试

  1. 参考wiki:ZLMediaKit推流测试

1. 推流测试

  1. ZLMediaKit支持rtsp/rtmp/rtp推流,一般通常使用obs/ffmpeg推流测试,其中FFmpeg推流命令支持以下:
  2. 使用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
  1. 使用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
  1. 使用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. 观察日志

  1. 我测试的是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)相关推荐

  1. Mac下暗黑服务器搭建(完全攻略,一个菜鸟的搭建之路)

    1.我选择了首先安装数据库,mysql数据库的安装与配置,参照(请原谅,由于本人身份卑微,无权发布链接) 大鸡蛋补充:http://www.cnblogs.com/macro-cheng/archiv ...

  2. rtsp 服务器搭建

    rtsp 服务器搭建: 今天我们搭建这个 rtsp 服务器的名称叫做:ZLMediaKit,它是一个基于 C++11 的高性能运营级流媒体服务框架,类似我之前给大家搭建的 rtmp 服务器(srs 流 ...

  3. virtualbox php mac,详解mac下通过docker搭建LEMP环境

    在mac下通过docker搭建LEMP环境境 1.安装virtualbox.由于docker是在lxc环境的容器 2.安装boot2docker,用于与docker客户端通讯 > brew up ...

  4. mac 本地php环境搭建,mac下php环境搭建的方法

    mac下php环境搭建的方法是:首先切换到root用户:然后查看80端口是否被占用:接着开启apache,并在"httpd.conf"中开启php模块:最后编写php代码进行测试即 ...

  5. Linux下FTP服务器搭建

    Linux下FTP服务器搭建 一.FTP介绍 二.环境介绍 三.FTP服务端搭建步骤 1.安装相关软件包 2.启动FTP并检查状态 3.检查服务端口运行状态 4.修改FTP配置文件 5.关闭selin ...

  6. Linux centos7 下 svn 服务器搭建

    摘自:https://www.cnblogs.com/mymelon/p/5483215.html 鉴于在搭建时,参考网上很多资料,网上资料在有用的同时,也坑了很多人 本文的目的,也就是想让后继之人在 ...

  7. 简单易行的用windows系统虚拟苹果mac操作系统 mac下android环境搭建笔记(android studio)

    作者:韩梦飞沙 QQ:313134555 ios模拟器电脑版中文版(iPadian)下载 - 『精品软件区』 - 吾爱破解论坛 - LCG - LSG |安卓破解|病毒分析|破解软件|www.52po ...

  8. suse ftp文件服务器搭建,SUSE下FTP服务器搭建

    FTP(File Transfer Protocol),是TCP/IP网络上两台计算机传送文件的协议,是在TCP/IP网络和Internet上最早使用的协议之一,属于网络协议组的应 用层.FTP客户机 ...

  9. linux下svn服务器搭建及使用

    文章目录 1. 安装svn客户端 2. 安装svn服务器 3. 在svn目录下创建版本库 4. 修改版本库配置文件 4.1 修改 authz 文件 4.2 设置密码 passwd 4.3 修改 svn ...

最新文章

  1. java流实例_java流汇总以及使用实例
  2. MTK 平台上如何给 camera 添加一种 preview size
  3. hdu 1404/zoj 2725 Digital Deletions 博弈论
  4. 逻辑数据库读取bseg
  5. 5-3如何设置文件的缓冲
  6. kuka机器人外部轴异步_(技术)机器人维保10个常见问题解答
  7. 德国超级计算机中心,德国:强化人工智能能力建设 加大高性能计算网络投资...
  8. Android TabHost中实现标签的滚动以及一些TabHost开发的奇怪问题
  9. 探索Office 2010新特性
  10. 苹果正式推送iPadOS 13.1、iOS 13.1,修复大量Bug,速升!
  11. 如何使用Arrays工具类操作数组
  12. Teamcenter 开发利器组合介绍。 Eclipse + Visual Studio
  13. Telnet发邮件过程
  14. Caffe傻瓜系列(6):solver及其配置
  15. html 手机端原型,Axure教程:移动端原型如何适配不同分辨率的手机?
  16. 微信小程序-image(图片)
  17. 如何管理计算机的字体,请同事吃了顿饭才要来的字体管理神器,电脑里的几百个字体有救了!...
  18. web简单静态页面设计【HTML+CSS】
  19. vue如何打开pdf文件
  20. 基于STC89C52单片机的LED显示电子钟的制作

热门文章

  1. 使用注解实现ssh整合
  2. jquery中Live方法不可用,Jquery中Live方法失效
  3. (原)数据结构——线索二叉树
  4. lua cocos 动画回调
  5. CodeForces - 1559D2 Mocha and Diana (Hard Version)(思维)
  6. 2019ICPC(沈阳) (回文自动机+Palindrome Series优化dp)
  7. CodeForces - 1312D Count the Arrays(组合数学)
  8. POJ - 2083 Fractal(dfs,递归画图)
  9. 程序员初试和复试_程序员因肌肉发达面试被质疑能力,网友:这做程序员有啥关系呢?...
  10. TransCenter解读