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