Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

A video monitoring client based on Qt and FFmpeg.(基于Qt+FFmpeg的视频监控软件)

Notifications You must be signed in to change notification settings

onlyet/BetaVideoMonitorClient

Repository files navigation

基于Qt+FFmpeg的视频监控系统

需求分析

假设一个业务场景:每个员工工位旁有两个网络摄像头。老板需要一个员工监控软件,在上班时软件可以拉取RTSP视频流,也可以随时录制视频。这样老板就可以知道谁在摸鱼了 ◕‿◕
为防有人上纲上线,在此特别声明:上面的场景是开玩笑的。监控软件有很多使用场景:学校,公安,交通,考试,零售等等。

功能

  • 支持画面按人数分页(8/12/24/28),默认24人画面
  • 支持单人切换大屏(鼠标右键)
  • 可同时播放和录制48路视频
  • 支持GPU解码和渲染

UI

单页24人 3页,每页8人 单人大屏

使用

目前配置文件BetaVideoMonitorClient.ini可配置两路地址:leftUrl和rightUrl,24人共用这两个地址。
leftUrl=rtsp://user:password@192.168.1.20:554/Streaming/Channels/101 rightUrl=rtsp://user:password@192.168.1.20:554/Streaming/Channels/101

如果你没有网络摄像头,可以用在线HTTP地址测试,例如: https://media.w3.org/2010/05/sintel/trailer.mp4

技术实现

  • 界面实现用Qt
  • 拉流解码播放用FFmpeg
  • 大屏播放和视频存储用IPC主码流,小屏播放用IPC子码流
  • 使用DXVA2+D3d9实现纯GPU解码渲染

环境依赖

windows

VS:推荐VS2019以后的版本
Qt:推荐Qt5.12以后的版本

解决方案仅支持64位的Debug/Release,32位可自行适配

配置文件说明

  • [Common]
    • ReduceAnalyzeTime 设为1可快速打开播放器
    • APageSeatCnt 主界面默认显示多少人画面
  • [Volatile]
    • RecordPath 录制视频保存路径
    • GpuAccelerated =1启用GPU加速
    • GpuScreenCnt 使用GPU加速的小屏数量
  • [Url]
    • leftUrl 左窗口输入url,24人共用该URL
    • rightUrl 右窗口输入url,24人共用该URL

TODO

  • GPU解码和渲染

存在问题

IPC拉流一般有数量限制,我的IPC支持最多6路拉流解码,没有多余的IPC测试,可用HTTP地址测试。
小屏目前是相同URL共用1路解码资源,CPU模式下可以用单个URL测试48窗口。而GPU解码渲染不支持复用URL,GPU解码渲染想测试多路需要改代码。

About

A video monitoring client based on Qt and FFmpeg.(基于Qt+FFmpeg的视频监控软件)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

AltStyle によって変換されたページ (->オリジナル) /