一种基于屏幕分辨率的RTSP主子码流切换的多路视频监控的播放方案

本文主要是介绍一种基于屏幕分辨率的RTSP主子码流切换的多路视频监控的播放方案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

技术背景:

用户场景下,存在多个监控场所的100路监控摄像头,例如:大华、海康、宇视、杭州宇泛的枪机、球机、半球、NVR、DVR等不同类型的监控设备,通过视频监控平台进行设备的管理,通过RTSP拉流的方案管理监控的每一路监控设备,通过客户端软件进行监控点位的直播查看(客户端软件或Chrome浏览器多窗口查看),一般用户的客户端显示屏为1920*1080的分辨率,一般监控多窗口分屏为1窗口,4窗口,8窗口,16窗口,32窗口,64窗口,不同厂家的监控摄像头都至少有2路码流(高清主码流一路,普清子码流一路),一般主码流配置为H264/1080P,一般子码流H264/D1,主子码流均可以根据用户的业务场景需要进行调整,一般普通用户查看预览的客户端软件所在的硬件支持的8路H264/1080P,超过之后一般硬件无法满足视频监控的解码需求。

技术问题:

  1. 一般用户的屏幕分辨率为1920*1080
  2. 用户的硬件配置支持的最大解码能力一般为8路H264/1080P/30FPS
  3. 超过4窗口的屏幕1920*1080,4窗口分屏模式下每个窗口的分辨率为:480*270,1080P高清解码对于用户监控小窗口查看并无实际意义
  4. 8窗口、16窗口以及以上对于视频监控场景查看是常见的使用需求
  5. 1080P高清解码会占用更多的硬件资源,如cpu,内存,显卡,以及耗电量
  6. 大华,海康,宇视,杭州宇泛的监控设备均不支持通过RTSP请求自动切换主子码流
  1. 关键概念解释:
  • 1080P:1920*1080视频分辨率
  • CIF:352*288视频分辨率
  • D1:4CIF 720×576视频分辨率
  • RTSP:视频监控设备的一种取流协议
  • 主码流和子码流:摄像头提供的2路码流模式,主码流是高像素分辨率模式,子码流是低像素低分辨率模式
  • 比值:比值 =(视频分辨率宽*高)/(屏幕分辨率宽*高),策略阀值为6参照的是4窗口和9窗口屏幕分辨率中间的某个整数值
  • ws-flv:ws-flv的协议的播放地址

方案介绍:

1)配置大华监控IPC的主码流视频参数:H264/1080P/30FPS/4096Kbps,子码流视频参数:H264/D1/20FPS/512Kbps
2)一般解码1路1080P主码流的所需要的硬件资源可以解码6路D1的子码流
3)添加大华设备管理,分别配置主码流的RTSP地址和子码流的RTSP的拉流地址,例如:大华主码流:rtsp://账号:密码@设备IP:554/cam/realmonitor?channel=1&subtype=0,大华子码流:rtsp://账号:密码@设备IP:554/cam/realmonitor?channel=1&subtype=1
4)播放客户端获取设备的主子码流的分辨率参数
5)客户端获取屏幕分辨率,例如:1920*1080,根据如下策略切换播放主码流,还是子码流
6)判断播放切分之后的窗口的分辨率和主码流分辨率的比值,比值 = (主码流分辨率宽*高)/(窗口宽*窗口高)
7)若是比值 > 6(一般比值6为4窗口以上或窗口占屏幕分辨率小于1/4)则切换子码流播放,说明主码流解码得到的视频画面对于所在的窗口的呈现是一种资源浪费
8)对于子码流播放的窗口,若窗口布局发生变化,比值 < 6,如从9窗口,点击某个窗口进行全屏播放,则切换为主码流播放
9)客户端也可根据解码能力的情况进行播放的主子码流的切换
10)播放一路子码流比播放一路主码流一般会更加的省电
11)可以适应不同的窗口布局和用户的不同的分辨率的场景
12)不需要媒体服务转码,只需要主子码流的切换即可使用更多窗口的监控查看的场景

核心流程图:

1)通过设备的网页地址登录设备,输入设备的账号和密码,在配置设备的网络信息时也可以按照此参照方案同步配置视频的参数信息
2)进入设备的视频参数配置选项,根据业务场景的需要,若是用户的屏幕分辨率为1920*1080则推荐的配置主码流的视频参数为:H264/1080P/30FPS/4096Kbps,子码流的视频参数为:H264/D1/20FPS/512Kbps
3)登录视频监控平台(或类似产品如宇泛软定义智能盒子产品)
4)管理员添加视频监控设备,输入设备的主码流的RTSP地址和子码流的播放RTSP地址
5)视频监控平台的设备管理服务校验RTSP地址参数是否有效,对应的RTSP地址的设备的网络是否ping通,若是通则认为添加的设备在线,若网络ping不通则认为设备离线,并定时ping此网络设备的网络地址
6)用户通过chrome浏览器登录视频监控平台,多窗口查看有权限的设备列表,并选择监控查看
7)客户端软件获取屏幕的分辨率,查询设备的主码流的分辨率
8)根据用户的选择的多分屏数,如4分屏,9分屏,16分屏等获取播放窗口的分辨率的数据
9)对比设备的主码流的分辨率和播放窗口的分辨率的比值,若是比值小于6,则获取主码流的ws-flv的播放地址,否则获取子码流的ws-flv的播放地址
10)从媒体服务器触发rtsp的取流接口,从媒体服务器获取媒体流转发的ws-flv的播放流进行播放
设置播放器的默认的解码方式为硬解码优先,若硬解码失败则使用CPU解码

这篇关于一种基于屏幕分辨率的RTSP主子码流切换的多路视频监控的播放方案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/286627

相关文章

SpringBoot首笔交易慢问题排查与优化方案

《SpringBoot首笔交易慢问题排查与优化方案》在我们的微服务项目中,遇到这样的问题:应用启动后,第一笔交易响应耗时高达4、5秒,而后续请求均能在毫秒级完成,这不仅触发监控告警,也极大影响了用户体... 目录问题背景排查步骤1. 日志分析2. 性能工具定位优化方案:提前预热各种资源1. Flowable

用js控制视频播放进度基本示例代码

《用js控制视频播放进度基本示例代码》写前端的时候,很多的时候是需要支持要网页视频播放的功能,下面这篇文章主要给大家介绍了关于用js控制视频播放进度的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言html部分:JavaScript部分:注意:总结前言在javascript中控制视频播放

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

Java进行文件格式校验的方案详解

《Java进行文件格式校验的方案详解》这篇文章主要为大家详细介绍了Java中进行文件格式校验的相关方案,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、背景异常现象原因排查用户的无心之过二、解决方案Magandroidic Number判断主流检测库对比Tika的使用区分zip

分辨率三兄弟LPI、DPI 和 PPI有什么区别? 搞清分辨率的那些事儿

《分辨率三兄弟LPI、DPI和PPI有什么区别?搞清分辨率的那些事儿》分辨率这个东西,真的是让人又爱又恨,为了搞清楚它,我可是翻阅了不少资料,最后发现“小7的背包”的解释最让我茅塞顿开,于是,我... 在谈到分辨率时,我们经常会遇到三个相似的缩写:PPI、DPI 和 LPI。虽然它们看起来差不多,但实际应用

Python+PyQt5实现多屏幕协同播放功能

《Python+PyQt5实现多屏幕协同播放功能》在现代会议展示、数字广告、展览展示等场景中,多屏幕协同播放已成为刚需,下面我们就来看看如何利用Python和PyQt5开发一套功能强大的跨屏播控系统吧... 目录一、项目概述:突破传统播放限制二、核心技术解析2.1 多屏管理机制2.2 播放引擎设计2.3 专

IDEA中Git版本回退的两种实现方案

《IDEA中Git版本回退的两种实现方案》作为开发者,代码版本回退是日常高频操作,IntelliJIDEA集成了强大的Git工具链,但面对reset和revert两种核心回退方案,许多开发者仍存在选择... 目录一、版本回退前置知识二、Reset方案:整体改写历史1、IDEA图形化操作(推荐)1.1、查看提

使用Python实现文本转语音(TTS)并播放音频

《使用Python实现文本转语音(TTS)并播放音频》在开发涉及语音交互或需要语音提示的应用时,文本转语音(TTS)技术是一个非常实用的工具,下面我们来看看如何使用gTTS和playsound库将文本... 目录什么是 gTTS 和 playsound安装依赖库实现步骤 1. 导入库2. 定义文本和语言 3

Python实战之屏幕录制功能的实现

《Python实战之屏幕录制功能的实现》屏幕录制,即屏幕捕获,是指将计算机屏幕上的活动记录下来,生成视频文件,本文主要为大家介绍了如何使用Python实现这一功能,希望对大家有所帮助... 目录屏幕录制原理图像捕获音频捕获编码压缩输出保存完整的屏幕录制工具高级功能实时预览增加水印多平台支持屏幕录制原理屏幕

Python实现html转png的完美方案介绍

《Python实现html转png的完美方案介绍》这篇文章主要为大家详细介绍了如何使用Python实现html转png功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 1.增强稳定性与错误处理建议使用三层异常捕获结构:try: with sync_playwright(