C# RTSP摄像头监控分屏
软件特色
1. 简明轻巧(只需更改配置文件的视频流地址就能播放;使用高性能rtsp播放器,开流关流瞬开,延时更低(200ms内),软解CPU占用更低,支持rtsp及rtmp)
2. 自适应屏幕分辨率
3. 自定义分屏及任意更改某一路视频流地址
代码部分
<?xml version="1.0" encoding="utf-8" ?> <configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" /> </startup> <appSettings> <add key="ScreenMaxNum" value="32" /> <add key="VideoUrl1" value="rtsp://admin:thzn123456@192.168.0.13:554/h264/ch1/main/av_stream" /> <add key="VideoUrl2" value="rtsp://admin:thzn123456@192.168.0.11:554/h264/ch1/main/av_stream" /> <add key="VideoUrl3" value="rtsp://admin:thzn123456@192.168.0.12:554/h264/ch1/main/av_stream" /> <add key="VideoUrl4" value="rtsp://admin:thzn123456@192.168.0.12:554/h264/ch1/main/av_stream" /> <add key="VideoUrl5" value="rtsp://admin:thzn123456@192.168.0.13:554/h264/ch1/main/av_stream" /> <add key="VideoUrl6" value="rtsp://admin:thzn123456@192.168.0.13:554/h264/ch1/main/av_stream" /> <add key="VideoUrl7" value="rtsp://admin:thzn123456@192.168.0.20/cam/realmonitor?channel=1&subtype=0" /> <add key="VideoUrl8" value="rtsp://admin:thzn123456@192.168.0.20/cam/realmonitor?channel=1&subtype=0" /> <add key="VideoUrl9" value="rtsp://admin:thzn123456@192.168.0.21/cam/realmonitor?channel=1&subtype=0" /> <add key="VideoUrl10" value="rtsp://admin:thzn123456@192.168.0.21/cam/realmonitor?channel=1&subtype=0" /> <add key="VideoUrl11" value="rtsp://admin:thzn123456@192.168.0.11:554/h264/ch1/main/av_stream" /> <add key="VideoUrl12" value="rtsp://admin:thzn123456@192.168.0.12:554/h264/ch1/main/av_stream" /> <add key="VideoUrl13" value="rtsp://admin:thzn123456@192.168.0.13:554/h264/ch1/main/av_stream" /> <add key="VideoUrl14" value="rtsp://admin:thzn123456@192.168.0.11:554/h264/ch1/main/av_stream" /> <add key="VideoUrl15" value="rtsp://admin:thzn123456@192.168.0.20/cam/realmonitor?channel=1&subtype=0" /> <add key="VideoUrl16" value="rtsp://admin:thzn123456@192.168.0.21/cam/realmonitor?channel=1&subtype=0" /> <add key="VideoUrl17" value="" /> <add key="VideoUrl18" value="" /> <add key="VideoUrl19" value="" /> <add key="VideoUrl20" value="" /> <add key="VideoUrl21" value="" /> <add key="VideoUrl22" value="" /> <add key="VideoUrl23" value="" /> <add key="VideoUrl24" value="" /> <add key="VideoUrl25" value="" /> <add key="VideoUrl26" value="" /> <add key="VideoUrl26" value="" /> <add key="VideoUrl28" value="" /> <add key="VideoUrl29" value="" /> <add key="VideoUrl30" value="" /> <add key="VideoUrl31" value="" /> <add key="VideoUrl32" value="" /> </appSettings> </configuration>
using System; using System.Collections.Generic; using System.Configuration; using System.Windows.Forms; namespace RtspPlayerPro { public partial class MainForm : Form { // 视频流数据字典 Dictionary<int, string> dicVideo = new Dictionary<int, string>(); public MainForm() { InitializeComponent(); // 适配屏幕分辨率 this.Width = SystemInformation.VirtualScreen.Width; this.Height = SystemInformation.VirtualScreen.Height; this.Location = new System.Drawing.Point(0, 0); AutoScreenSize.AutoControls(this); } private void MainForm_Load(object sender, EventArgs e) { // 加载视频流数据 int ScreenMaxNum = Convert.ToInt32(ConfigurationManager.AppSettings["ScreenMaxNum"]); for (int i = 0; i < ScreenMaxNum; i++) { var url = ConfigurationManager.AppSettings["VideoUrl" + (i + 1).ToString()]; if (null != url) { dicVideo.Add(i, url); } } previewScreen1.DispalyMonitor(1);// 默认1画面 cmbScreenNum.SelectedIndex = 0; } private void cmbScreenNum_SelectedIndexChanged(object sender, EventArgs e) { // 播放布局更新 previewScreen1.CloseAllMonitor(); int ScreenNum = Convert.ToInt32(cmbScreenNum.Text); previewScreen1.DispalyMonitor(ScreenNum); foreach (KeyValuePair<int, string> video in dicVideo) { if (video.Key > (ScreenNum - 1)) break; previewScreen1.AddPreviewPlayer(video.Key, video.Value); } } private void btnPlay_Click(object sender, EventArgs e) { // 播放线路更新 int videoIndex = Convert.ToInt32(txtVideoIndex.Text) - 1; if (videoIndex < 0) videoIndex = 0; string videoUrl = txtVideoUrl.Text; previewScreen1.AddPreviewPlayer(videoIndex, videoUrl); // 同步更新到视频流数据字典 dicVideo[videoIndex] = videoUrl; } } }
程序架构
软件运行
32路测试
电脑配置
qq:505645074
分类:
安防监控系统
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了