使用 GB28181.Solution + ZLMediaKit + MediaServerUI 进行摄像头推流和播放
使用 GB28181.Solution + ZLMediaKit + MediaServerUI 进行摄像头推流和播放
独立观察员 2020 年 8 月 25 日
一、摄像机 GB28181 配置
打开 国标 28181 配置页面,勾上 “接入使能”:
打钩的是重要的配置信息,主要就是 SIP 服务器的信息和摄像头自己的编号、端口等信息。
二、SIP 服务器 GB28181.Solution
项目地址:https://gitee.com/DLGCY_GB28181/GB28181.Solution
(注:本文给出的项目地址如果是克隆的,页面上会有 Fork 信息或者原地址,不再单独列出)
使用的是 GB28181.WinTool 这个测试程序:
配置特写:
使用流程:使用 VS 打开解决方案,修改好配置信息后,直接运行 GB28181.WinTool 项目,先点击启动,等待摄像头发来注册信息和心跳信息,然后点击目录查询,点击出现的设备,最后点击 “直播视频” 即可。
程序向摄像头发送直播指令(INVITE)后,就是摄像头直接向流媒体服务器以 RTP 协议发送 PS 数据流了:
三、流媒体服务器 ZLMediaKit
项目地址:https://gitee.com/DLGCY_GB28181/ZLMediaKit
注意:如要克隆本仓库,还需克隆作为子模块的另外两个仓库 ———— ZLToolKit 和 media-server :
1、编译项目
由于这个是 C++ 项目,所以我们要给 VS 安上 C++ 开发的工作负载:
由于这个是 CMake 形式的项目,所以没有解决方案文件(.sln), 我们需要使用打开文件夹的方式:
打开后,我们在 CMakeLists.txt 上右键,先生成缓存,成功之后再生成:
这样在相关目录就生成了配置文件 config.ini 和可执行程序 MediaServer.exe:
2、配置和运行
实际上也不需要怎么配置,就是如果运行起来发现端口被占用的话,改一下就行了。
说说后面会用到的两个端口吧,一个是 RTP 的端口,在 rtp_proxy 节点下:
还有一个是 http 端口,后面播放视频要用到:
配置完之后双击 MediaServer.exe 就能启动了:
(感觉这些提示信息不够明确)
四、观看视频
我们点击 GB28181.WinTool 的 “直播视频” 后,摄像头就开始推流到 MediaServer 了:
来个特写:
我们看到出现了摄像头的地址,同时还不断看到一串编码 ID,我们拿这个 ID 就能播放视频了。
那么具体的视频地址是什么呢?作者倒是给出了解析方法:https://github.com/xia-chu/ZLMediaKit/wiki/ 播放 url 规则
协议支持 rtsp、rtsps、rtmp、rtmps、http、https、ws、wss,我们这里用 http 协议测试。
虚拟主机我们选用 IP,我这里是 192.168.16.120。
端口号由于我们选用 http 协议,而之前配置的是 801。
应用名我暂时还不知道怎么来的,这里应该是 rtp。
流 ID 是 24A4FFCC。
所以最终直播视频地址为:http://192.168.16.120:801/rtp/24A4FFCC.flv 或 http://192.168.16.120:801/rtp/24A4FFCC/hls.m3u8 。
地址有了,我们还需要播放器,需要支持播放流媒体的播放器,推荐使用 PotPlayer。
运行后依次点击 “打开”–“打开链接”:
然后填入地址(我重新打开过了,流 ID 变了),点击确定即可播放。
播放效果:
flv 地址的也是一样:
五、ZLMediaKit 的管理网站 MediaServerUI
项目地址:https://gitee.com/DLGCY_GB28181/MediaServerUI
(使用普通分支即可,无需使用 GB28181 分支)
这是一个 Vue 项目,可参考《搭建一个 VUE 项目》进行环境搭建。
运行(1、cnpm install 2、cnpm run serve):
界面:
视频播放:
(感觉这个网站比较卡)
使用 GB28181.Solution + ZLMediaKit + MediaServerUI 进行摄像头推流和播放相关推荐
- WVP+ZLMediaKit+MediaServerUI实现摄像头GB28181推流播放录制
参考了一些帖子,这里最有用的技术帖子就是这篇,非常感谢这篇文章的作者Flicker https://notemi.cn/wvp---zlmedia-kit---mediaserverui-to-rea ...
- ZLMediaKit视频推流和播放步骤
记录一下使用ZLMediaKit轻量级流媒体服务器进行视频推流和播放的步骤,以免后期遗忘: 一.首先要开启ZLMediaKit流服务器,或者启动带rtmp的nginx,这里采用第一种方案 cd ZLM ...
- mac下面用ffmpeg抓取桌面以及摄像头推流进行直播
OSX下面用ffmpeg抓取桌面以及摄像头推流进行直播 这个可以推桌面+麦克风,并且摄像头把人头放在界面下面 在osx系统下通过ffmpeg查看设备 1 ffmpeg -f avfoundation ...
- RTSP 和 RTMP原理 通过ffmpeg实现将本地摄像头推流到RTSP服务器
RTSP 和 RTMP原理 & 通过ffmpeg实现将本地摄像头推流到RTSP服务器 文章目录 RTSP 和 RTMP原理 & 通过ffmpeg实现将本地摄像头推流到RTSP服务器 一 ...
- 项目实战 | 基于RK3566开发板实现USB摄像头推流(ffmpeg+nginx)
文章目录 环境说明 一.摄像头推流架构 1. 什么是推流 2. 最简单的推流架构 3. 最简单的推流架构实现 二.USB摄像头捕获功能实现 1. 硬件测试 1.1. video设备节点 1.2. 摄像 ...
- 张萌韩墨羽——android摄像头推流
android摄像头推流 功能概述 摄像头推流,是指采集手机摄像头的画面以及麦克风的声音,进行编码之后再推送到直播云平台上.腾讯云 LiteAVSDK 通过 TXLivePusher 接口提供摄像头推 ...
- android 自定义推流器,Android直播实现 Android端推流、播放
最近想实现一个Android直播,但是对于这方面的资料都比较零碎,一开始是打算用ffmpeg来实现编码推流,在搜集资料期间,找到了几个强大的开源库,直接避免了jni的代码,集成后只用少量的java代码 ...
- android 推流地址可以多人用,Android直播实现(一)Android端推流、播放
Android直播实现(一)Android端推流.播放 最近想实现一个Android直播,但是对于这方面的资料都比较零碎,一开始是打算用ffmpeg来实现编码推流,在搜集资料期间,找到了几个强大的开源 ...
- 海思开发板FFmpeg+Nginx,推流RTMP播放(优秀教程收集+实操整理)
海思开发板FFmpeg+Nginx推流RTSP播放(优秀教程收集+实操整理) 安装FFmpeg及移植 FFmpeg编译问题收录: static declaration of 'cbrt' follow ...
最新文章
- WDS部署操作系统之二 制作并捕获模板计算机映像
- 修改Android下的radioButton字体的颜色
- Python3.4连接Mysql
- 习题7 7-7 字符排队
- php实现mysql分表
- 河南王牌计算机专业,河南计算机专业实力突出的7所大学,郑大位列次席,榜首实至名归...
- JavaWeb项目实战(1)数据库环境搭载
- vSAN Health Service-物理磁盘运行状况-物理磁盘运行状况检索问题(2149291)
- oracle 表名拼接_Oracle之3种表连接方式(排序合并连接、嵌套循环、哈希连接)...
- 北大开源了中文分词工具包,准确度远超Jieba,提供三个预训练模型
- TCP粘包拆包基本解决方案
- Linux下挂载和格式化虚拟磁盘图文教程
- 自动化测试项目实战训练【广州8月】
- 推送之信鸽推送详解 Think Different
- Android 反编译修改包名、重新签名、更换app名称
- -bash: netstat: 未找到命令
- Bypass-分流抢票
- 通信中台的概念界定与能力拆解
- WKT (Well Known Text)
- HTC 8X电信版连接WIN7电脑的真正解决办法
热门文章
- 【LeetCode】3. Longest Substring Without Repeating Characters
- iOS开发UI篇—使用嵌套模型完成的一个简单汽车图标展示程序
- ubuntu 14.04 安装Java JDK
- 有关堆栈溢出(in vs 2005)的读书笔记--堆栈中 申请大数组
- Effective C# 原则35:选择重写函数而不是使用事件句柄(译)
- 如何将多个Android Wear手表与单个手机配对
- Android系统匿名共享内存Ashmem(Anonymous Shared Memory)在进程间共享的原理分析
- 9 C++ Boost 多线程,线程同步
- wireshark远程抓包
- VS2010 C++下编译调试MongoDB“.NET研究”源码