ToB企服应用市场:ToB评测及商务社交产业平台

标题: WPF 视频硬解码渲染播放(无空域问题)(支持4K、8K、高帧率、各类协议RTSP [打印本页]

作者: 慢吞云雾缓吐愁    时间: 2022-8-20 08:30
标题: WPF 视频硬解码渲染播放(无空域问题)(支持4K、8K、高帧率、各类协议RTSP
MediaWPF

基于 .NET 6 实现视频硬解码渲染Demo(无空域问题)

代码实现仅供学习参考

本项目视频渲染通过显卡进行视频解码,CPU几乎不参与工作,并且不存在令人烦躁的空域问题。
在播放摄像头多路视频或高分辨率、高帧率视频时可以极大发挥显卡性能(我认为该项目做到了这一点)。
支持各类网络协议如RTSP、RTMP、FLV等。
播放4k、8k视频也可以做到极佳的渲染效率。
该项目实现参考雷霄骅大佬的博客,非常感谢他为音视频技术方向做出的贡献。
实现原理:
使用 LibVLCSharp 库进行硬解码获取视频YUV格式(8bit、10bit)帧数据进行回调,采用GLWpfControl 控件用于呈现画面(该控件基于D3DImage,所以不存在空域问题)。
视频YUV数据 -> OpenGL -> Shader(YUV to RGB) -> 呈现画面
测试设备
处理器: AMD Ryzen 7 5800H
显卡: Nvidia GeForce RTX 3050 Laptop GPU 4G
因笔记本依靠核显渲染画面,并且功耗方面有所限制,实际测试效率会存在一小方面影响。
4K 60帧 SDR视频
处理器占用率 5~10%
显卡占用率 40~50%



4K 60帧 HDR版本(视频亮度不足,在SDR屏幕上播放HDR视频都是经过色调映射的后处理,网上流传的转换矩阵基本都会丢失亮度)
处理器占用率 10~20%
显卡占用率 50~60%



4K 144帧 SDR视频(该视频为后期补帧实现高帧率,所以帧间隔不稳定)
处理器占用率 10~20%
显卡占用率 60~75%



8K 60帧 SDR视频(实际表现稳定在40~45帧左右)
处理器占用率 10~20%
显卡占用率 70~80%



四路 1080p SDR视频(前两个视频为30帧,后两个视频为25帧)

GitHub地址

https://github.com/qian-o/MediaWPF

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4