ZLMediaKit拉流摄像头播放视频
2026/6/2 4:04:59 网站建设 项目流程

一、安装 ZLMediaKit

1. 下载

git clone --recursive https://github.com/ZLMediaKit/ZLMediaKit.git

2.编译

mkdir build
cd build
cmake ..
make -j4

3.启动

./release/linux/Debug/MediaServer

启动时可能会遇到端口绑定失败的问题,因为ZLMediaKit默认很多端口都绑在1024之下,

而Linux 规定:1024 以下端口是特权端口,只有 root 用户才能监听。

Bind socket failed: permission denied
Start server failed: Listen on :: 554 failed: permission denied

需要在release/linux/Debug/config.ini配置文件中修改端口(下文用到的secret也是在其中定义),改到1024之上的空闲端口

二、ZLMediaKit 自动拉流

拉流地址:

http://服务器ip:端口/index/api/addStreamProxy?secret=你的ZLMediaKit密码&vhost=__defaultVhost__&app=自定义应用名称&stream=流名称&url=流地址

示例:

http://127.0.0.1:8054/index/api/addStreamProxy?secret=123456&vhost=__defaultVhost__&app=live&stream=cam1&url=rtsp://admin:123456@192.168.1.150:554/Streaming/Channels/101

拉流成功会看到:

{
"code": 0,
"key": "xxxx"
}

并且在 MediaServer 日志中看到:

add stream proxy success

此时服务器内部已生成了一个流:live/cam1(你定义的名称app/stream)

访问http://127.0.0.1:8054/live/cam1.live.flv(改为你配置的http端口和定义的名称)会触发flv文件的下载,说明已经成功了。

三、在浏览器中播放视频

使用 flv.js解封装 FLV

创建播放页面

在任意目录创建一个文件:

nano player.html

写入以下内容:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>ZLM Player</title>
<script src="https://cdn.jsdelivr.net/npm/flv.js@latest/dist/flv.min.js"></script>
</head>
<body>
<video id="videoElement" controls autoplay width="800"></video>

<script>
if (flvjs.isSupported()) {
var videoElement = document.getElementById('videoElement');
var flvPlayer = flvjs.createPlayer({
type: 'flv',
url: 'http://127.0.0.1:8054/live/cam1.live.flv'
});
flvPlayer.attachMediaElement(videoElement);
flvPlayer.load();
flvPlayer.play();
}
</script>
</body>
</html>

在同目录下暴露目录

python3 -m http.server 9000

随后在浏览器中访问

http://127.0.0.1:9000/player.html

即可播放视频。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询