当前位置: 首页 > news >正文

⭐Unity_Demolition Media Hap (播放Hap格式视频 超16K大分辨率视频 流畅播放以及帧同步解决方案)

播放大分辨率视频以及实现局域网视频同步是许多开发者会遇到的需求,AVPro有一个 Ultra Edition版本,也能播放Hap格式视频,之外就是Demolition Media Hap插件啦,实测即使是 7208*3808 大分辨率的视频帧率还是能稳定在30帧,它能帮助我们轻松解决这些问题😎。

一、插件概述

Demolition Media Hap Pro Sync Windows是一款网络同步、业界认可的GPU加速Hap视频编解码器播放解决方案,专为Unity设计。它非常适合大型媒体安装、显示墙、投影以及沉浸式体验等场景。

(一)特点

  1. 硬件加速:无需安装任何外部编解码器,即可实现硬件加速的Hap视频播放,支持所有Hap风格,包括Hap、Hap Q、Hap Alpha、Hap Q Alpha、Hap R等。
  2. 低CPU使用率:视频帧大多在GPU上解压缩,有效降低CPU的负担,让你的项目运行更加流畅。
  3. 高分辨率支持:能够播放4k @ 120 fps、8k @ 60 fps或10k @ 60fps的视频(在支持的硬件上),甚至可以一次播放大量小视频,同时还具备极快的帧精确搜索功能。
  4. 网络同步:使用UDP网络在多台机器之间同步播放视频,实现局域网内的视频同步。
  5. 多种控制方式:支持使用Unity Timeline控制播放,也可以使用自己的时钟源控制视频播放,还能手动指定当前视频帧索引。
  6. 音频支持:支持多声道5.1/7.1音频,通过Unity Native Audio插件(无需网络同步)和AudioSource(通过网络同步,支持多声道音频)输出音频。
  7. 透明视频:支持使用Hap Alpha、Hap Q Alpha和Hap R编解码器的透明视频,是第一个在Unity中支持Hap Q Alpha/Hap R/HAP HDR的插件。
  8. 多线程解码:Chunked Hap支持更快的多线程解码,提高解码效率。
  9. 内存管理:可以将视频预加载到内存中,以应对SSD速度不够快的情况,并且支持可配置的RAM/GPU内存使用情况。
  10. 适合开发者和艺术家:提供C# API以及IMGUI/uGUI/Render to Material包装器,方便程序员进行开发,同时也适合艺术家进行操作。
  11. 示例场景:包含具有典型使用场景的示例场景(包括360/VR),方便用户快速上手。

(二)适用版本

该插件要求Unity版本为2019 - 2023(2022.3.12f1及更新版本,带有用于GDeflate GPU解压缩的DirectX12图形API),操作系统为Windows 8.1/10/11。

二、插件安装

(一)购买插件

你可以在Unity Asset Store上购买Demolition Media Hap Pro Sync Windows插件,价格为$850。购买后,将插件导入到你的Unity项目中。

(二)下载示例视频

导入插件后,打开示例场景可能会报错,这是因为没有下载官方案例所需要的示例视频。你需要下载示例视频,并将其放入对应目录,这样就可以正常运行示例场景了。

三、在Unity中播放大分辨率视频

(一)准备视频文件

在Unity中播放超4K视频,我们只能使用HAP编解码器的Mov格式视频。你可以使用以下方法将视频转换为Hap格式:

  1. 使用ffmpeg导出Hap格式
    • 对于HAP电影,使用命令:ffmpeg -i yourSourceFile.mov -c:v hap outputName.mov
    • 对于HAP Alpha影片,使用命令:ffmpeg -i yourSourceFile.mov -c:v hap -format hap_alpha outputName.mov
    • 对于HAP Q电影,使用命令:ffmpeg -i yourSourceFile.mov -c:v hap -format hap_q outputName.mov
    • 此外,还可以指定一些可选标记,例如:
      • -chunks N(默认为1;N为1 - 64之间的数字,但不超过播放系统的CPU核心数),如ffmpeg -i yourSourceFile.mov -c:v hap -format hap_q -chunks 4 outputName.mov
      • -compressor snappy-compressor none(默认为snappy;设置为none时可能会略微降低CPU使用率,但文件大小要大得多,且文件比特率是固定的),如ffmpeg -i yourSourceFile.mov -c:v hap -compressor none outputName.mov
  2. 使用AE导出:可以使用Adobe After Effects导出Hap格式的视频。
  3. 使用其他导出工具:也可以使用其他支持导出Hap格式的工具进行转换。

(二)在Unity中使用插件播放视频

  1. 创建Media对象:在Unity中,你可以通过代码创建一个Media对象来管理视频的播放。例如:
using DemolitionStudios.DemolitionMedia;// 创建Media对象
Media media = new Media();
  1. 加载视频文件:使用Load方法加载转换好的Hap格式视频文件。
// 加载视频文件
media.Load("path/to/your/video.mov");
  1. 播放视频:调用Play方法开始播放视频。
// 播放视频 
media.Play();
  1. 控制视频播放:你可以使用插件提供的各种方法来控制视频的播放,例如暂停、停止、快进、调整播放速度等。
// 暂停视频
media.Pause();// 停止视频
media.Stop();// 调整播放速度
media.PlaybackSpeed = 2.0f; // 两倍速播放

四、局域网播放视频同步

(一)设置网络同步

Demolition Media Hap Pro Sync Windows插件支持使用UDP网络在多台机器之间同步播放视频。要实现局域网视频同步,你需要进行以下设置:

  1. 配置网络参数:在Unity中,你可以通过代码配置网络参数,例如设置服务器地址、端口号等。
using DemolitionStudios.DemolitionMedia;// 创建Sync对象
Sync sync = new Sync();// 设置服务器地址和端口号
sync.ServerAddress = "192.168.1.100"; // 服务器IP地址
sync.ServerPort = 12345; // 服务器端口号
  1. 启动同步:调用Start方法启动网络同步。
// 启动同步 
sync.Start();

(二)同步播放视频

在多台机器上运行Unity项目,并确保它们在同一局域网内。在每台机器上,按照上述步骤创建Media对象并加载视频文件。当服务器启动同步后,所有客户端机器上的视频将同步播放。

五、注意事项

  1. 硬件要求:为了获得最佳的播放效果,建议使用支持高分辨率视频播放的硬件设备,例如高性能的GPU和CPU。
  2. 网络稳定性:在进行局域网视频同步时,网络稳定性非常重要。确保局域网内的网络连接稳定,避免出现丢包、延迟等问题。
  3. 视频格式:只能使用HAP编解码器的Mov格式视频,确保视频文件的格式正确。
  4. 插件版本:确保使用的插件版本与Unity版本兼容,避免出现兼容性问题。

六、总结

Demolition Media Hap Pro Sync Windows插件为Unity开发者提供了一个强大的解决方案,能够轻松实现大分辨率视频的播放和局域网视频同步。通过本文的介绍,相信你已经对该插件的使用有了更深入的了解。希望你在开发过程中能够充分发挥该插件的优势,创造出更加精彩的项目🎉

 

感谢大家的观看,您的点赞和关注是我最大的动力

不定时更新知识点和干货呦~

相关文章:

  • Spring-Cache替换Keys为Scan—负优化?
  • HTMLCSS模板实现水滴动画效果
  • 再谈String
  • Python的库
  • 【25软考网工】第三章(4)生成树协议、广播风暴和MAC地址表震荡
  • MySQL表达式之公用表表达式(CTE)的使用示例
  • Windows与CasaOS跨平台文件同步:SyncThing本地部署与同步配置流程
  • springboot2.x升级到3.x 惨痛经验总结
  • 告别 “幻觉” 回答:RAG 中知识库与生成模型的 7 种对齐策略
  • 力扣-hot100(找到字符串中的所有字母异位词)
  • Chromium 134 编译指南 Ubuntu篇:依赖同步与Hooks配置(六)
  • python打印颜色(python颜色、python print颜色、python打印彩色文字、python print彩色、python彩色文字)
  • vue项目前后端分离设计
  • MyBatisPlus文档
  • 大模型时代的深度学习框架
  • uni-app 小程序中的定位问题 以及 页面安全距离
  • 基于DrissionPage的表情包爬虫实现与解析(含源码)
  • 解释一下计算机中的内存对齐
  • 【Django】新增字段后兼容旧接口 This field is required
  • 【防火墙 pfsense】3 portal
  • 我驻美使馆:中美并没有就关税问题磋商谈判,更谈不上达成协议
  • 美联储官员:货币政策不会立即改变,金融市场波动或致美国经济增长承压
  • 证监会发布上市公司信披豁免规定:明确两类豁免范围、规定三种豁免方式
  • 印巴在克什米尔实控线附近小规模交火,巴防长发出“全面战争”警告
  • 青海西宁市公安局原党委委员、副局长王小华被“双开”
  • 高糖高脂食物可能让你 “迷路”