论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
qidao123.com技术社区-IT企服评测·应用市场
»
论坛
›
软件与程序人生
›
后端开发
›
.Net
›
WPF 视频硬解码渲染播放(无空域问题)(支持4K、8K、高 ...
WPF 视频硬解码渲染播放(无空域问题)(支持4K、8K、高帧率、各类协议RTSP ...
慢吞云雾缓吐愁
论坛元老
|
2022-8-20 08:30:54
|
显示全部楼层
|
阅读模式
楼主
主题
1585
|
帖子
1585
|
积分
4755
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
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
继续阅读请点击广告
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
慢吞云雾缓吐愁
论坛元老
这个人很懒什么都没写!
楼主热帖
聊聊 C# 方法重载的底层玩法 ...
使用 Mypy 检查 30 万行 Python 代码, ...
Linux安装PHP8 新版笔记
微信公众平台测试号申请、使用HBuilder ...
Blazor WebAssembly + Grpc Web = 未来 ...
【只与自己有关】人往高处走?何为高? ...
【MAC工具】各个Xcode版本对应macOS的 ...
Apache Shiro 身份验证绕过漏洞 (CVE-2 ...
Java多线程(7):JUC(上)
Mybatis基础知识大全!!!
标签云
国产数据库
集成商
AI
运维
CIO
存储
服务器
快速回复
返回顶部
返回列表