使用ZLMediaKit搭建服务器实现推流拉流

源码:https://gitee.com/xia-chu/ZLMediaKit?utm_source=alading&utm_campaign=repo
文档:https://docs.zlmediakit.com/zh/tutorial/

  1. 检查gcc版本gcc -v
  2. 检查cmake是否安装cmake --version
  3. 安装gitsudo apt-get install git
  4. 按照文档进行克隆
# 国内用户推荐从 Gitee 下载
git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit
cd ZLMediaKit
# 初始化子模块 (必须执行)
git submodule update --init
  1. 检查是否安装Opensslopenssl version
    sudo apt-get install openssl
  2. 安装ffmpegsudo apt install ffmpeg
  3. 编译
cd ZLMediaKit
mkdir build
cd build
cmake ..
make -j4
  1. 运行
cd ZLMediaKit/release/linux/Debug
# 通过 -h 可以了解启动参数
./MediaServer -h
# 以守护进程模式启动
./MediaServer -d &

遇到554端口没有权限使用
使用setcap命令给ZLMediaKit可执行文件设置权限,允许它作为非root用户监听低端口号。

sudo setcap 'cap_net_bind_service=+ep' /path/to/MediaServer
  1. 推流
    https://docs.zlmediakit.com/zh/guide/media_server/push_test.html
  2. 播放
    边推流边播放才行
    ffplay -rtsp_transport udp rtsp://127.0.0.1/live/test
### ZLMediaKit HTTP接口使用方法 ZLMediaKit是一个实现RTSP/RTMP/HLS/HTTP协议的轻量级流媒体框架,支持大并发连接请求[^1]。为了通过HTTP接口使用ZLMediaKit进行操作,可以按照如下方式构建URL并发起GET请求。 对于HLS协议下的,通常使用的路径格式为`http(s)://<server_ip>:<port>/live/<stream_id>.m3u8?schema=<protocol>`,其中: - `<server_ip>`代表服务器的IP地址; - `<port>`是ZLMediaKit服务监听的端口号,默认情况下可能是80或自定义设置的其他值; - `<stream_id>`表示要获取的具体直播ID,在实际应用环境中这可能对应于某个频道编号或是设备编码等唯一标识符; - `schema`参数用于指定所期望接收的数据传输方案,比如可以选择rtmp、rtsp或者其他受支持的形式; 当涉及到FLV格式时,则应调整链接形式至类似于`http(s)://<server_ip>:<port>/flv/<stream_id>?schema=http-flv`来适应不同的需求场景[^2]。 下面给出一段Python代码作为示例展示如何利用requests库向上述构造好的API发送请求从而完成一次简单的过程: ```python import requests url = 'http://your_server_address/live/stream_key.m3u8' response = requests.get(url) if response.status_code == 200: with open('output_file_name', 'wb') as f: f.write(response.content) else: print(f'Failed to fetch stream, status code {response.status_code}') ``` 此段脚本会尝试从给定的目标位置下载M3U8文件,并将其保存到本地磁盘中名为`output_file_name`的新创建文档里。当然也可以根据实际情况修改成实时处理音视频帧的方式而不是单纯存储下来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

m晴朗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值