核心是解决在使用WPF框架开发监控类系统、大规模摄像头或直播时无法做到高实时性、高性能、高并发和高复用性的痛点;如果是单画面并且对播放延迟性要求不高,建议还是用VLCSharp,毕竟牛批是真牛批;
(1)使用FFmpeg 4.4.1.1版本做解码(可以用最新的,但是最新的ffmepg官方不提供32位版本,得自己编译);
(2)使用D3D9渲染,支持离屏渲染,完全硬解硬画,最大程度降低CPU损耗;
(3)生命周期管理,所有的流都会通过PlayerCollection统一管理,实现自动重连,自动断开,自动销毁等机制;
(4)暂时不支持本地视频文件播放,目前只做了RTSP流的解码播放,流解码没做时间戳判断,所以如果播放本地文件会有问题;
(5)暂时不支持播放音频,因为没做,主要是播放摄像头的流,不关注音频;
部分内容参考一下链接: 《WPF D3DImage 偶现性无法渲染图像,D3D设备丢失的解决办法》
1、优化信号裁剪方案;
1、新增缓存帧策略配置项;
1.新增打印窗口可配置项
2.新增流地址缓存功能
1、修复缓存帧上限后播放花屏问题;
1、降低UI线程执行优先级,避免渲染画面过多造成UI线程卡死无法正常操作;
1.添加缓存帧上线自定义,最低为10帧;
2.调整帧缓存逻辑,缓存队列默认10帧,缓存超过5帧时非关键帧不写入缓存,缓存超过10帧时,所有帧不写入缓存,一直到缓存帧小于10帧;
1.分离接收和解码线程,添加帧缓冲区,超过5帧未渲染直接丢弃;
2.降低UI线程渲染优先级,避免在输入信号过多造成UI线程被沾满无法正常操作问题;
1.修复D3D渲染下拔插显示器HDMI线导致异常崩溃问题
2.优化代码
1.修复流数据为空,但是流没断开情况下,使用WriteableBitmap绘制会报错问题
2.新增在流解码类中更新流大小
1.解码失败后新增显示默认图片
2.添加解码失败帧数量配置
1.修复D3D渲染模式下屏幕息屏或视频线断开后渲染报错问题
2.修复偶发出现渲染报错,提示绑定D3DImage为空问题;
3.新增UDP连接;
4.测试工具新增可视化配置;
5.Entrance配置项统一封装为一个对象管理;
6.集中所有UI线程,统一在Entrance中调用;
7.新增系统释放参数,用于释放所有死循环操作;
8.调整测试工具,16画面轮询页面新增轮询开关和轮询时长配置;
9.视频解码后第二个I帧之前的数据不渲染,避免第一帧显示花屏
10.优化代码
1.优化代码
2.调整保存最后一帧逻辑
3.新增配置项:是否显示最后一帧画面
1.新增16路随机轮询测试界面
1.项目框架整理,剔除多余部分
1.优化代码
1.demo窗口资源整合
2.新增默认图片效果
3.新增断线默认显示最后一帧
1.优化代码
2.支持离屏渲染
3.优化H.265渲染
4.修复渲染视频后生成的ImageSource图片尺寸不同问题;
1.初始化仓库
2.代码新增
3.解决FFmpeg内存泄漏问题
4.自动适配D3D9和WriteableBitmap渲染
5.支持多路复用
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。