轻松搭建远程视频监控项目— H5Streamer 流媒体服务器使用

  • 一. 前言
  • 二. 概述
  • 三. 正文
    • 1. 环境部署
    • 2. 参数配置
    • 3. 运行程序
    • 4. 播放视频
  • 四. 总结
  • 五. 额外问题FAQ
      • 1. 程序运行一段时间后自动停止?
      • 2. 控制台查看设备状态显示离线?
      • 3. WebRTC无法播放?
      • 4. HLS播放延迟太高或一直缓冲?
      • 5. VLC串流的RTSP视频流无法在H5Streamer播放?
      • 6. RTMP推流使用问题?
      • 7. 如何实现打开页面自动播放视频?
      • 8. SDK视频源无法播放?
      • 9. 关于云推流的使用问题?
      • 10. 播放延迟过大?
    • 六. 附录
      • 1. 浏览器兼容技术
      • 2. 内网直播架构图
      • 3. 标准协议对应的URL规则
      • 4. 我的测试地址
      • 3. Chrome HLS播放插件

一. 前言

最近刚好在做视频监控项目的技术前探,发现有个非常强大的开源工具—H5Streamer(以下简称H5S) 。一个免费开源的流媒体服务器,功能非常强大,系统部署也非常简单,但是网上相关的资料并不多,所以打算和大家分享一下使用经验,希望能对大家有所帮助。

二. 概述

官网:零视技术
一个简单的视频监控项目主要由三部分组成:视频流采集端(推流)、数据处理端(转码)、视频播放端(拉流),在这个过程中,我们有很多的难点需要去解决,比如:采集不同的视频源、视频流转码、适配不同的播放客户端(无插件播放)。如果这些难题全部都由开发者自己编写程序去解决的话,对于整个项目的进度推进可能会事倍功半。采用开源的视频服务器辅助项目是个不错的选择。
H5S 有如下优点

  1. 多运行平台支持 ,Windows 7/8/10/2008/2012/2016、CentOS 7、Ubuntu 16.04;
  2. 多视频源支持,MP4/AVI文件、RTSP/RTMP;
  3. 作为视频监控的标准 ONVIF,H5S 也做了支持,并且允许用户 RESTFUL 接口控制 ONVIF 云台;
  4. 支持海康 NVR SDK/大华 NVR SDK/天地伟业 SDK 接入,支持国标GB28181,支持海康 ISC视频接入;
  5. 国产CPU支持,包括鲲鹏 920飞腾在内的 ARM v8 架构 CPU, 同时兼容龙芯 3 号系列 CPU,大写的爱国嘛;
  6. 支持多种直播协议,RTSP/RTMP/HLS、WebSocket/WebRTC;
  7. 支持集群、级联模式
  8. 支持RTMP推流
  9. 支持视频加密,所有视频数据均采用非对称加密。

三. 正文

1. 环境部署

这里以Windows系统为例,Linux的部署也是大同小异(参考官方说明文档),目前程序最新版本是R11,本文是基于R10.5
下载对应系统版本的压缩包并解压。注意:路径不要带有中文或者空格
https://linkingvision.cn/download/h5stream/

安装VC++运行库(08、10、12、13、19)
传送门:微软常用运行库合集 v2019.10.19(32&64位).exe 提取码: ft9w

好了,环境部署到此就完成了,非常简单。

2. 参数配置

第一种方式是从控制台添加视频源
点击左边的设置按钮,进入参数设置页面:
视频源

H5_STREAM:RTSP/RTMP视频源;
H5_ONVIF:ONVIF协议设备,支持该协议的设备可以控制云台;
H5_FILE:MP4/AVI 文件视频源;
设备SDK:通过调用官方的SDK库连接设备。

特别提示:每个视频源对应生成唯一的 token,程序根据 token 来获取视频流。这里要注意通过SDK添加视频源生成的 token 是有分支的,因为NVR可以连接多个摄像头。点击全部可以查看所有token:

这里着重讲第二种方式,通过配置文件添加视频源
文件源
在配置文件(/conf/h5ss.conf)中修改 nType 为 H5_FILE, strUrl 视频文件路径
h5ssample.mp4

RTSP/RTMP源
在配置文件中把 nType 修改为 H5_STREAM, 在 strUrl 部分填入 RTSP/RTMP 地址,需要
认证的视频源,在 strUser 和 strPasswd 中填入对应的用户名密码 。

ONVIF源
ONVIF 配置选项比较多,但是大部分都可以采用默认配置,可以只关注下图中标注的部分。
nType 修改为 H5_ONVIF,配置用户名和密码,ONIVF 设备地址和端口即可 。

SDK NVR源
以海康的设备为例,可以通过 device 配置选项,使用海康 SDK 连接设备,需要在 device 节点中配
置,nType 配置为 H5_DEV_HIK。其他配置参考画红线部分,默认 SDK 端口为 8000。

3. 运行程序

第一种是手动运行根目录的h5ss.bat(Linux 用./h5ss.sh) ,我们用编辑器打开h5ss.bat看一下:

其实就是运行主程序,但是后面我们可以利用这个批处理文件进行一些操作。

如果没出现报错,说明程序已经运行成功。

第二种是配置为服务,开机自动启动,Windows 可以直接运行 regservice.bat 安装服务或者运行 unregservice.bat 取消安装服务,需要使用管理员打开 cmd 命令行运行该脚本

H5S 正常运行后可以打开控制台主页,会出现如下的界面,表示已经运行成功。地址如下:http://localhost:8080/ (localhost用实际的 IP 地址替换),也可以用HTTPS访问(端口改为8443)。

4. 播放视频

1. 通过控制台预览视频,实际项目中一般不会这样使用,可以作为调试用。

如果接入的是ONVIF协议的设备,支持操作云台等

2. 调用JS库通过网页播放视频。
在浏览器输入网址:http://你的IP:8080/ws.html(WebSocket 播放协议)
目录www中有不同播放协议的demo网页。

3. 用播放器直接拉流播放视频
比如用VLC播放RTMP视频流:

四. 总结

H5Streamer 平台从部署到运行非常简单,过程中没有涉及太难的技术操作。此文章只作简单描述,官方文档有非常详细的说明。关于平台的使用建议,主要利用平台的视频转码功能,然后根据API接口定制自己的Console控制台,解决终端页面的播放兼容性和体验等问题。网上还有其它开源的流媒体视频方案:live555,EasyDarwin,EasyNVR,FFmpeg,LiveQing等。
H5Stramer说明文档:链接: https://pan.baidu.com/s/1bICEY-eSrdEIahHUhFdlYQ 提取码: sjig

五. 额外问题FAQ

针对官方说明文档中的一些操作可能不太容易理解,以及使用过程中遇到的一些问题,进行简单的解释说明。
官方问答论坛:https://lsc.linkingvision.com/latest

1. 程序运行一段时间后自动停止?

没有申请license的程序运行一小时后会自动停止,可以通过发邮件到官方申请。
如果懒得去申请,这里也可以自己编写一个定时结束程序并重启的脚本 h5ss.bat

@echo off
::不显示打印内容
set INTERVAL=3600
::设置时间间隔
:Again
::goto跳转标志
echo start server
taskkill /f /t /im h5ss.exe
::结束进程
start h5ss.exe
::启动进程
timeout %INTERVAL%
::时间达到
taskkill /f /t /im h5ss.exe
ping -n 5 127.0.0.1>nul
::利用ping来进行延时,ping 一次为一秒
goto Again
::代码跳转

2. 控制台查看设备状态显示离线?

判断在线的标志是码流,没有播放的时候显示是离线的,播放的时候就是在线的了,ONVIF协议接入的状态是实时的。

3. WebRTC无法播放?

首先排查客户端是否支持WebRTC 直播协议,其次再查看部署端是否做了NAT映射,内网环境WebRTC外部访问非常麻烦,内网穿透或全端口映射都不太可行,因为WebRTC的端口是不固定的,建议是把服务器部署在公网环境,并且要在配置文件中打开WebRTC的Cloud模式,因为公网 IP 都是映射出来的,需要设置 bCloudMode 和对应的公网 IP。

4. HLS播放延迟太高或一直缓冲?

HLS 的视频源建议是单独使用一个token,同时根据实际情况调整TS切片数量和持续时间。

5. VLC串流的RTSP视频流无法在H5Streamer播放?

VLC串流的RTSP视频流不完整,建议用真实的RTSP视频流。

6. RTMP推流使用问题?

先在控制台生成RTMP推流地址,然后用推流客户端将视频流推到此地址,最后就可以RTMP拉流播放了。

7. 如何实现打开页面自动播放视频?

这篇文章有详细说明 https://blog.csdn.net/video_dc/article/details/89542858

8. SDK视频源无法播放?

检查HTML代码中填写的token是否正确,通过SDK连接一般是一个token多路连接,尝试将token改写为token–1的形式

9. 关于云推流的使用问题?

本地运行H5Streamer服务,打开云推流模式推流到云端的H5Streamer服务,实现外网访问。

10. 播放延迟过大?

测试的版本速度没有限制,默认是64路。可能的原因:

  1. 网络带宽不够
  2. 视频流码率太高,可以尝试用副码流

六. 附录

1. 浏览器兼容技术

2. 内网直播架构图

3. 标准协议对应的URL规则

所有通过配置文件和 API 加入到 h5s 的 src,除了支持 js 视频播放库外,还可以用 RTSP RTMP
FLV HLS 客户端直接访问,如下是以默认端口配置,并且存在 token1 的 src 的对应的 url。

RTSP: rtsp://ip:8554/live/token1
RTMP: rtmp://ip:8935/live/token1
FLV: http://ip:8890/live/token1.flv
HLS: http://ip:8080/hls/v1/token1/hls.m3u8

4. 我的测试地址

链接: https://pan.baidu.com/s/1H20aDHFrJhkkxp70W3ifhg
提取码请私信

3. Chrome HLS播放插件

https://pan.baidu.com/s/1U2tMIofyLgTO9BOGHA9Dkw 提取码: 6ctd

如有不明白的地方,欢迎与我联系,共同探讨。

免责声明:本文素材来源网络,版权归原作者所有。如涉及作品版权问题,请与我联系删除。

使用H5Streamer轻松搭建视频监控项目相关推荐

  1. 简述远程视频监控项目方案

    5G时代的到来和运营商不断的下调流量资费,使得远程视频监控系统更加的被广泛使用.视频监控中前端摄像机具有快速编码视频内容的能力视频图象数字化是实时编码压缩的.视频流被封装为编码成网络数字包,可以通过网 ...

  2. 【imx6ull】视频监控项目(usb摄像头+ffmepeg)

    文章目录 前言 1.总体方案介绍 2.配置v4l2驱动与UVC驱动 3.v4l2应用编程测试摄像头 4.ffmepg移植 总结 前言 参考视频: 韦东山老师手把手带你从0开始自己做一个视频监控系统 1 ...

  3. PPP模式与城市视频监控项目结合产效应

    对于PPP模式,人们已经不再陌生.这种公私合作的模式作为公关基础设施中新的项目融资方式,具有适应当前社会发展的必要性:一方面有助于公共服务融资创新,减轻当期财政压力,与各个供应商共同承担风险;另一方面 ...

  4. 手把手教你做一个物联网视频监控项目(三)流媒体方案实现

    往期文章 手把手教你做一个物联网视频监控项目(一) 介绍 手把手教你做一个物联网视频监控项目(二)MJPG-streamer方案实现 文章目录 前言 一.软硬件准备 二.流媒体方案的实现之FFmpeg ...

  5. 树莓派视频监控项目总结

    树莓派视频监控 之前做的一个练手小项目,做一下整理.总结. 树莓派视频监控 0. 整体方案 1. 硬件 2. 软件 2.0 方案选择 2.1 推流端 2.1.1 视频采集 2.1.2 视频编码 2.1 ...

  6. USB摄像头视频监控项目学习笔记

    一个摄像头监控应用程序的系统调用如下所示: /* open  * VIDIOC_QUERYCAP 确定它是否视频捕捉设备,支持哪种接口(streaming/read,write)  * VIDIOC_ ...

  7. H.264视频监控项目

    转载请注明来自:http://blog.csdn.net/ayangke 杨锞 QQ:843308498 快要找工作了,想将以前做的项目复习一下,同时给想做这个项目的童鞋一些指导. 硬件:MINI24 ...

  8. 【解决方案】幼儿园监控有何需求?如何搭建视频监控让老师家长更放心?

    一.背景分析 近年来,幼儿园存在的儿童健康及人身安全问题一直是社会各界人士关注的重点,幼儿园的安全管控已成为社会各界关注的焦点. 目前的幼儿园安全存在诸多问题: 1.园区室内外活动场所多,儿童安全意识 ...

  9. 浅析搭建视频监控汇聚平台的必要性及场景应用

    一.方案背景 当前视频资源管理平台面临以下问题: 1)不同单位在视频平台建设中以所属领域为单位,设备品牌众多,存在的标准不一,各系统之间也没有统一标准: 2)各单位视频平台建设分散.统筹性差,没有进行 ...

最新文章

  1. 目标检测中的Tricks
  2. [PyTorch]一个非常好的抢救outofmemory的方法
  3. 二层交换机的六条安全秘诀
  4. 【Android 高性能音频】Oboe 开发流程 ( 检查 Oboe 音频流属性 | 开始播放 | 停止播放 | 关闭 Oboe 音频流 | 重新配置 Oboe 音频流属性 )
  5. 第十章 优先级队列 (b3)完全二叉堆:删除与下滤
  6. 华为交换机查看端口流量_华为交换机限速及流量统计配置
  7. Ubuntu apache 禁止目录浏览
  8. Apollo进阶课程 ⑥ | 高精地图与自动驾驶的关系
  9. Go语言重新开始,Go Modules 的前世今生与基本使用
  10. 爱站CMS综合管理系统源码php版
  11. Shell——变量详解及注意点
  12. tcp校验和计算校验和例子_OSI参考模型和TCP/IP参考模型
  13. docker容器日志清理
  14. C语言:求两个整数的最大公约数
  15. 进销存源码|ERP多仓库管理系统全开源php源码
  16. 四川大学计算机学院优秀毕业论文,(完整版)四川大学本科_毕业论文(设计)_有关规定...
  17. 华为的计算机怎么没声音怎么办,笔记本电脑没有声音怎么办
  18. python实现任一均线选股
  19. 文件下载之断点续传(客户端与服务端的实现)
  20. Android Object 转 Json

热门文章

  1. x在计算机中是哪个按键,电脑键盘x号怎么打出来
  2. DFS实现传教士野人渡河问题
  3. 【24位IEPE振动加速度音频采集卡-北京阿尔泰科技】
  4. 性能摄影设计续航怎么选?荣耀Play4T系列全都要!
  5. 智能家居项目进度控制表
  6. 去哪家期货公司如何开户?
  7. 文章复现 子宫腺肌病在位内膜和异位病灶的单细胞转录组分析
  8. HTML中的meta标签
  9. 英伟达Flex-unity插件
  10. 如何用sql语句查询年龄最小或最大的信息