首页 > 其他分享 >视频监控推流助手/极低延迟/支持N路批量多线程推流/264和265推流/监控转网页

视频监控推流助手/极低延迟/支持N路批量多线程推流/264和265推流/监控转网页

时间:2024-09-12 13:55:07浏览次数:12  
标签:流媒体 多线程 音视频 地址 自动 rtmp 监控 推流

一、前言说明

搞视频监控开发除了基本的拉流以外,还有个需求是推流,需要将拉到的流重新推流到流媒体服务器,让流媒体服务做转发和负载均衡,这样其他地方只需要问流媒体服务器要视频流即可。为什么拉了又重新推呢,因为软件这边和可能拉流后做了处理,比如做了人工智能运算,识别到了物体方框和文字标识,这些信息可以加到视频流中,既可以是加到视频流上也可以附带数据中。还有一种情况是拉到的流本身不支持GB28181,但是外部又需要访问,流媒体服务器放在公网上即可,这样用户就可以按需拉流播放。

有个工具叫OBS,也可以推流多路,但是默认他都是重新编码推流,意味着高占用的CPU,而视频监控的设备基本上都是标准的264和265,其实这种裸流数据可以直接推,无需重新编码,其实就是相当于写文件,性能瓶颈在网络带宽而不是电脑配置,本地只需要极低的资源占用就可以推流几百路甚至几千路。所以作为监控行业的从业者,这样一个工具才是非常实用的。

二、功能特点

  1. 支持各种本地音视频文件和网络音视频文件,格式包括mp3、aac、wav、wma、mp4、mkv、rmvb、wmv、mpg、flv、asf等。
  2. 支持各种网络音视频流,网络摄像头,协议包括rtsp、rtmp、http等。
  3. 支持本地摄像头设备推流,可指定分辨率、帧率、格式等。
  4. 支持本地桌面采集推流,可指定屏幕索引、采集区域、起始坐标、帧率等,也支持指定窗口标题进行采集。
  5. 可实时切换预览视频文件,可切换音视频文件播放进度,切换到哪里就推流到哪里。预览过程中可以切换静音状态和暂停推流。
  6. 可指定重新编码推流,任意源头格式可选强转264或265格式。
  7. 可转换分辨率推流,设置等比例缩放或者指定分辨率进行转换。
  8. 推流的清晰度、质量、码率都可调,可以节约网络带宽和拉流端的压力。
  9. 音视频文件自动循环不间断推流。
  10. 音视频流有自动掉线重连机制,重连成功自动继续推流。
  11. 支持各种流媒体服务程序,包括但不限于mediamtx、ZLMediaKit、srs、LiveQing、nginx-rtmp、EasyDarwin、ABLMediaServer。
  12. 通过配置文件自动加载对应流媒体程序的协议和端口,自动生成推流地址和各种协议的拉流地址。可以通过配置文件自己增加流媒体程序。
  13. 可选rtmp、rtmp格式推流,推流成功后,支持多种格式拉流,包括但不限于rtsp、rtmp、hls、flv、ws-flv、webrtc等。
  14. 在软件上推流成功后,可以直接单击网页预览,实时预览推流后拉流的画面,多画面网页展示。
  15. 软件界面上可单击对应按钮,动态添加文件和目录,可手动输入地址。
  16. 推拉流实时性极高,延迟极低,延迟时间大概在100ms左右。
  17. 极低CPU资源占用,4路主码流推流只需要占用0.2%CPU。理论上常规普通PC机器推100路毫无压力,主要性能瓶颈在网络。
  18. 可以推流到外网服务器,然后通过手机、电脑、平板等设备播放对应的视频流。
  19. 每路推流都可以手动指定唯一标识符(方便拉流/用户无需记忆复杂的地址),没有指定则按照策略随机生成hash值。也支持自动按照指定标识后面加数字的方式递增命名。比如设置标识为字母v,策略为标识递增,则每添加一个对应的推流码命名依次是v1、v2、v3等。
  20. 根据推流协议自动转码格式,默认策略按照选择的推流协议,比如rtsp支持265而rtmp不支持,如果是265的文件而选择rtmp推流,则自动转码成264格式再推流。
  21. 音视频同步推流,在拉流和采集的时候就会自动处理好同步,同步后的数据再推流。
  22. 表格中实时显示每一路推流的分辨率和音视频数据状态,灰色表示没有输入流,黑色表示没有输出流,绿色表示原数据推流,红色表示转码后的数据推流。
  23. 自动重连视频源,自动重连流媒体服务器,保证启动后,推流地址和打开地址都实时重连,只要恢复后立即连上继续采集和推流。
  24. 根据不同的流媒体服务器类型,自动生成对应的rtsp、rtmp、hls、flv、ws-flv、webrtc拉流地址,用户可以直接复制该地址到播放器或者网页中预览查看。
  25. 添加的推流地址等信息自动存储到文件,可以手动打开进行修改,默认启动后自动加载历史记录。
  26. 可以指定生成的网页文件保存位置,方便作为网站网页发布,可以直接在浏览器中输入网址进行访问,发布后可以直接在局域网其他设备比如手机或者电脑打开对应网址访问。
  27. 可选是否开机启动、后台运行等。网络推流添加的rtsp地址可勾选是否隐藏地址中的用户信息。
  28. 自带设备推流模块,自动识别本地设备,包括本地的摄像头和桌面,可以手动选择不同的是视频和音频采集设备进行推流。
  29. 自带文件点播模块,添加文件后用户可以拉取地址点播,用户端可以任意切换播放进度。支持各种浏览器(谷歌chromium、微软edge、火狐firefox等)、各种播放器(vlc、mpv、ffplay、potplayer、mpchc等)打开请求。
  30. 文件点播模块实时统计显示每个文件对应的访问数量、总访问数量、不同IP地址访问数量。
  31. 文件点播模块采用纯QTcpSocket通信,不依赖流媒体服务程序,核心源码不到500行,注释详细,功能完整。
  32. 支持任意Qt版本(Qt4、Qt5、Qt6),支持任意系统(windows、linux、macos、android、嵌入式linux等)。

三、相关链接

  1. 体验地址:https://pan.baidu.com/s/1d7TH_GEYl5nOecuNlWJJ7g 提取码:01jf 名称:bin_video_push
  2. 国内站点:https://gitee.com/feiyangqingyun
  3. 国际站点:https://github.com/feiyangqingyun

四、效果图

标签:流媒体,多线程,音视频,地址,自动,rtmp,监控,推流
From: https://www.cnblogs.com/feiyangqingyun/p/18410013

相关文章

  • Prometheus(普罗米修斯)监控系统 - 4、服务器硬件信息监控(ipmi-exporter)
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、下载ipmi_exporter二、dockerimage制作三、测试四、加入监控四、监控进阶总结前言IPMI监控基于IPMI协议,允许对物理服务器的硬件进行低级别管理。IPMIExporter通过与BMC(BaseboardM......
  • java使用多线程
    importjava.util.concurrent.TimeUnit;importcn.hutool.core.thread.ExecutorBuilder;importcn.hutool.core.thread.ThreadFactoryBuilder;//构造多线程,可修改线程数ExecutorServiceexecutorService=ExecutorBuilder.create().setCorePoolSize(5)//初始线程......
  • Zabbix自定义监控项与触发器
            当我们需要获取某台主机上的数据时,直接利用zabbix提供的模板可以很方便的获得需要的数据,但是有些特别的数据,利用这些现有的模板或监控项是无法实现的,例如网站状态信息的监控、mysql数据库主从状态等信息。这是就需要自己定义键值和监控项,以满足企业对检测数......
  • 监控视频行为分析系统
    监控视频行为分析系统是可以通过利用现场监控摄像头传回的现场画面视频利用AI神经网络模型的人工优化算法分析识别人们运动轨迹,监控视频行为分析系统去识别监控摄像机拍摄到的各种人的异常行为,甚至很多行为识别规则大多数场景下都可以做到零误报。这大大降低了系统对硬件的依赖,提......
  • 养老院视频监控分析系统
    养老院视频监控分析系统24h不需要人员监控,对养老院360度及时高清视频监控,即时自动分析和识别养老院监控区域内的异常情况。一旦出现异常,养老院视频监控分析系统马上记录和储存,并把报警信息上传至综合服务平台。除此之外,依据智能视频分析,识别监控区域内的工作人员入睡、换岗、玩手......
  • 值班人员睡岗离岗监控报警系统
    值班人员睡岗离岗监控报警系统可持续24个小时对值班岗位开展智能化监控。目前,值班人员睡岗离岗监控报警系统识别工作员长时间保持不动的姿态,会被判定为睡岗,随后马上提醒睡岗工作人员。值班人员睡岗离岗监控报警系统同时保存前端分析视频证据并上传至后台,为后续的人工审查提供管理......
  • 监控脱岗离岗行为检测系统
    监控脱岗离岗行为检测系统根据AI机器视觉分析全天候不间断对监控视频图像开展识别和剖析,对企业的某些固定工位离岗、脱岗情况进行识别检测报警提醒。监控脱岗离岗行为检测系统使用场景包含:酒店迎宾离岗检测、宾馆前台离岗检测、保安离岗检测、工厂生产线工作人员离岗检测、监控指......
  • 说下Python中的各个多线程模块之间的区别
    在Python中,涉及多线程的主要模块有threading、thread(在Python2.x中使用)和concurrent.futures。以下是这些模块之间的详细区别:1.threading模块简介:threading是Python的标准库之一,提供了创建和管理线程的高级接口。特点:线程类:提供Thread类,用户可以通......
  • Python中的 GIL是什么?它如何影响多线程?
    GIL(GlobalInterpreterLock)GIL(全局解释器锁)是Python解释器(特别是CPython实现)中的一个机制,用于管理对Python对象的访问。由于Python的内存管理不是线程安全的,GIL确保在任意时刻只有一个线程可以执行Python字节码,从而避免了多个线程同时访问和修改对象造成的数据不一致......
  • 二、并发编程与多线程-2.2、多线程(下)
    2.2、多线程(下)2.2.9、线程池是如何实现线程复用的?答:线程池采用了生产者-消费者模型来实现线程复用。提交任务到线程池里的线程被称为生产者线程,它不断往线程池里传递任务,这些任务会被保存到线程池的阻塞队列里。然后线程池里的工作线程会不断从阻塞队列中获取任务并执行......