使用 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 进行摄像头推流和播放相关推荐

  1. WVP+ZLMediaKit+MediaServerUI实现摄像头GB28181推流播放录制

    参考了一些帖子,这里最有用的技术帖子就是这篇,非常感谢这篇文章的作者Flicker https://notemi.cn/wvp---zlmedia-kit---mediaserverui-to-rea ...

  2. ZLMediaKit视频推流和播放步骤

    记录一下使用ZLMediaKit轻量级流媒体服务器进行视频推流和播放的步骤,以免后期遗忘: 一.首先要开启ZLMediaKit流服务器,或者启动带rtmp的nginx,这里采用第一种方案 cd ZLM ...

  3. mac下面用ffmpeg抓取桌面以及摄像头推流进行直播

    OSX下面用ffmpeg抓取桌面以及摄像头推流进行直播 这个可以推桌面+麦克风,并且摄像头把人头放在界面下面 在osx系统下通过ffmpeg查看设备 1 ffmpeg -f avfoundation ...

  4. RTSP 和 RTMP原理 通过ffmpeg实现将本地摄像头推流到RTSP服务器

    RTSP 和 RTMP原理 & 通过ffmpeg实现将本地摄像头推流到RTSP服务器 文章目录 RTSP 和 RTMP原理 & 通过ffmpeg实现将本地摄像头推流到RTSP服务器 一 ...

  5. 项目实战 | 基于RK3566开发板实现USB摄像头推流(ffmpeg+nginx)

    文章目录 环境说明 一.摄像头推流架构 1. 什么是推流 2. 最简单的推流架构 3. 最简单的推流架构实现 二.USB摄像头捕获功能实现 1. 硬件测试 1.1. video设备节点 1.2. 摄像 ...

  6. 张萌韩墨羽——android摄像头推流

    android摄像头推流 功能概述 摄像头推流,是指采集手机摄像头的画面以及麦克风的声音,进行编码之后再推送到直播云平台上.腾讯云 LiteAVSDK 通过 TXLivePusher 接口提供摄像头推 ...

  7. android 自定义推流器,Android直播实现 Android端推流、播放

    最近想实现一个Android直播,但是对于这方面的资料都比较零碎,一开始是打算用ffmpeg来实现编码推流,在搜集资料期间,找到了几个强大的开源库,直接避免了jni的代码,集成后只用少量的java代码 ...

  8. android 推流地址可以多人用,Android直播实现(一)Android端推流、播放

    Android直播实现(一)Android端推流.播放 最近想实现一个Android直播,但是对于这方面的资料都比较零碎,一开始是打算用ffmpeg来实现编码推流,在搜集资料期间,找到了几个强大的开源 ...

  9. 海思开发板FFmpeg+Nginx,推流RTMP播放(优秀教程收集+实操整理)

    海思开发板FFmpeg+Nginx推流RTSP播放(优秀教程收集+实操整理) 安装FFmpeg及移植 FFmpeg编译问题收录: static declaration of 'cbrt' follow ...

最新文章

  1. WDS部署操作系统之二 制作并捕获模板计算机映像
  2. 修改Android下的radioButton字体的颜色
  3. Python3.4连接Mysql
  4. 习题7 7-7 字符排队
  5. php实现mysql分表
  6. 河南王牌计算机专业,河南计算机专业实力突出的7所大学,郑大位列次席,榜首实至名归...
  7. JavaWeb项目实战(1)数据库环境搭载
  8. vSAN Health Service-物理磁盘运行状况-物理磁盘运行状况检索问题(2149291)
  9. oracle 表名拼接_Oracle之3种表连接方式(排序合并连接、嵌套循环、哈希连接)...
  10. 北大开源了中文分词工具包,准确度远超Jieba,提供三个预训练模型
  11. TCP粘包拆包基本解决方案
  12. Linux下挂载和格式化虚拟磁盘图文教程
  13. 自动化测试项目实战训练【广州8月】
  14. 推送之信鸽推送详解 Think Different
  15. Android 反编译修改包名、重新签名、更换app名称
  16. -bash: netstat: 未找到命令
  17. Bypass-分流抢票
  18. 通信中台的概念界定与能力拆解
  19. WKT (Well Known Text)
  20. HTC 8X电信版连接WIN7电脑的真正解决办法

热门文章

  1. 【LeetCode】3. Longest Substring Without Repeating Characters
  2. iOS开发UI篇—使用嵌套模型完成的一个简单汽车图标展示程序
  3. ubuntu 14.04 安装Java JDK
  4. 有关堆栈溢出(in vs 2005)的读书笔记--堆栈中 申请大数组
  5. Effective C# 原则35:选择重写函数而不是使用事件句柄(译)
  6. 如何将多个Android Wear手表与单个手机配对
  7. Android系统匿名共享内存Ashmem(Anonymous Shared Memory)在进程间共享的原理分析
  8. 9 C++ Boost 多线程,线程同步
  9. wireshark远程抓包
  10. VS2010 C++下编译调试MongoDB“.NET研究”源码