| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> 视频-摄像机-推流 -> 正文阅读 |
|
[系统运维]视频-摄像机-推流 |
本文主要介绍使用 一、概念NVR是(Network Video Recorder即网络硬盘录像机)缩写。NVR主要功能是通过网络接收IPC(网络摄像机)设备传输的数字视频码流, 并进行存储、管理。 简单说,通过Nvr,可以同时观看、浏览、回放、管理、存储多个网络摄像机。 dvr是(Digital Video Recorder即数字视频录像机),采用硬盘录像,常被称为硬盘录像机,也称DVR。它是一套图像计算存储处理的计算机系统,具有对图像/语音和动态帧等进行长时间录像、录音、远程监视和控制的功能,DVR集合录像机、画面分割器、云台镜头控制、报警控制、网络传输等五种功能于一身,用一台设备就能取代模拟监控系统一大堆的设备,且在价格上也逐渐占有优势和人气。 DVR将模拟视频进行数字化编码压缩并储存在硬盘上,其“D”字母主要涉及的是编码及储存技术,与网络传输关系不大,因此DVR通常就近安装在模拟摄像机附近的机房内。而NVR从网络上获取经过编码压缩的视频流然后进行存储转发,其字母“N”涉及的网络传输,因此我们在NVR设备上一般看不到视频信号的直接连接,其输入及输出的都是以及编码并添加了网络协议的IP数据。 ipc是IP Camera缩写词,IP是网际协议,Camera是照相机、摄影机,IP Camera顾名思义就是网络摄像机,它是一种由传统摄像机与网络技术结合所产生的新一代摄像机。 网络摄像机又叫IP CAMERA(简称IPC)由网络编码模块和模拟摄像机组合而成。网络编码模块将模拟摄像机采集到的模拟视频信号编码压缩成数字信号,从而可以直接接入网络交换及路由设备。 二、准备工作1.服务运行环境,Linux / OS X / Windows 均可,但推荐 Linux 2.海康云台摄像头一个 3.运行 4.运行流媒体服务 5.运行前端展示项目 以上三个项目其实都有文档可供查看,因为踩了一些坑,所以写了本文,文章可能会写得比较细一点,建议结合它们的文档一起看。 三、运行 WVP3.1 安装 RedisWVP 项目中将设备信息等存放在 Redis 中,所以需要安装 Redis,安装教程请自行搜索。 3.2 配置运行 SIP首先修改 WVP 项目配置文件:
然后登录海康摄像头管理页面,修改配置: 平台接入选择
因为摄像头平台接入配置好后,摄像头会请求 SIP 服务,所以这个一定要配置好。 配置完成后就可以运行项目了!如果 SIP 服务启动成功后,会看到这个日志 “Sip Server 启动成功” 如果摄像头连接到 建立好连接后,就可以控制查询摄像头了。
http://127.0.0.1:8080/api/ptz/34020000001320000001/34020000001320000001?leftRight=1&upDown=0&inOut=0&moveSpeed=50&zoomSpeed=1 zoomSpeed 的数字不能太大,不然运行不了,无效。 WVP 项目所有接口:https://github.com/swwheihei/wvp-GB28181/wiki/API-%E6%8E%A5%E5%8F%A3 四、运行流媒体服务 ZLMediaKit4.1 获取代码
4.2 构建项目项目开发者贴心的提供了三个shell脚本在项目根目录:
打开以后可以看到是使用CMake来编译的,我们可以直接选择运行shell脚本,Windows的话就看文档跟着一步步来吧😹。 构建好后打开 其中需要特别注意的有两个地方: 一是 [http] 的 port,因为 ZLMediaKit 项目也有很多 API 接口,都需要通过这个接口来访问,包括生成的播放的URL,都是这个端口,如遇到端口被你的其它服务占用,可自行配置。 二是 [rtp_proxy] 的 port,是我们上面 SIP 项目配置的 media.port 配置好了就可以运行项目了。 4.3 运行项目Linux 下启动:
使用守护进程模式启动后,可以通过 运行成功后会打印出如下日志: 我们可以做下推流测试,非必须操作,不需要可直接跳到下一节“项目推流”,具体操作可以查看文档:https://github.com/xiongziliang/ZLMediaKit/wiki/ZLMediaKit%E6%8E%A8%E6%B5%81%E6%B5%8B%E8%AF%95 下载一个视频文件
运行后,查看 ZLMediaKit 项目会有类似这样的日志: 使用可以播放流的播放器(如:PotPlayer,IINA)打开 如 项目推流
拿到
成功调用后会返回ssrc:
ssrc 转换为16进制后为 061484E1 我们查看流媒体服务的日志,就能看到如下: 注:公网服务器如果没有收到推流日志,记得开放端口并检查 那我们怎么拿到播放地址呢?其实文档已经有了:https://github.com/xiongziliang/ZLMediaKit/wiki/%E6%92%AD%E6%94%BEurl%E8%A7%84%E5%88%99 如果我的公网IP是177.11.11.111,转换过来就是: rtsp://177.11.11.111:554/rtp/061484E1?token=abcdefg&field=value rtmp://177.11.11.111/rtp/061484E1 http://177.11.11.111/rtp/061484E1.flv http://177.11.11.111/rtp/061484E1/hls.m3u8 此外 ZLMediaKit 还提供了录制,截图,动态添加拉流代理等功能,很棒,大家感兴趣可以看API文档。 五、运行MediaServerUI拉下项目代码:https://gitee.com/kkkkk5G/MediaServerUI/tree/gb28181/ 项目启动后, 这个项目需要注意的也是配置,本项目是和流媒体服务关联的,调用的接口也是流媒体 ZLMediaKit 的 API。 打开项目根目录下的
serverip是流媒体服务的IP,如果 ZLMediaKit 的配置文件中 [http] 配置项的端口改成了其它的,也记得在这里加上端口号(不同服务器请配置放开端口哦)。
六、整个视频请求的流程图其中流媒体模块指 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 21:07:07- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |