Coder Social home page Coder Social logo

onlyet / betavideomonitorclient Goto Github PK

View Code? Open in Web Editor NEW
100.0 1.0 25.0 29.11 MB

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

C 82.89% C++ 17.11%
ffmpeg qt cpp video-surveillance video-monitoring vs windows

betavideomonitorclient's Introduction

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

需求分析

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

功能

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

UI

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

使用

目前配置文件BetaVideoMonitorClient.ini可配置两路地址:leftUrl和rightUrl,24人共用这两个地址。
leftUrl=rtsp://user:[email protected]:554/Streaming/Channels/101 rightUrl=rtsp://user:[email protected]: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解码渲染想测试多路需要改代码。

betavideomonitorclient's People

Contributors

onlyet avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

betavideomonitorclient's Issues

不支持H265视频编码

我尝试着屏蔽掉代码中对H265的限制,但是对于某些H265的视频不能正常显示(视频下方会花掉)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.