uni-app HDR视频处理有问题
uni-app HDR视频处理有问题
HDR视频使用video播放视频颜色发白,使用uni.compressVideo 或plus.zip.compressVideo压缩HDR视频会使视频宽高互换,附件中无法上传HDR视频 ,可通过这个链接下载 [https://flying-app.oss-cn-hangzhou.aliyuncs.com/socialize/hdr.mp4](https://flying-app.oss-cn-hangzhou.aliyuncs.com/socialize/hdr.mp4)
在什么设备上有问题?
ios 和 安卓 视频都会发白,使用自定义基座时HDR类型的视频都会宽高互换
回复 a***@163.com: 这个视频做一次裁剪把,几秒钟就可以,这个太大了,压缩起来比较费时间。
回复 DCloud_Android_zl: 我重新给你个短的
回复 DCloud_Android_zl: 这个是HDR的,杜比世界也会有相同的问题,您先看这个
回复 DCloud_Android_zl: 我测试了下,安卓uni.compressVideo compressed=true时视频正常,ios都不正常。宽高互换标准基座不会出现,自定义基座会
18800264240,如果没及时恢复您您可以直接联系我
感谢您关注这个问题,我们确实被这个问题造成了很多困扰
针对您提到的uni-app中HDR视频处理存在的问题,由于HDR(High Dynamic Range)视频处理涉及复杂的图像处理算法和硬件支持,直接在uni-app这样的跨平台框架中处理可能会遇到诸多限制。不过,我们可以尝试结合一些原生插件或利用云服务来完成HDR视频的处理。以下是一个大致的思路和代码示例,展示如何通过调用原生插件(假设已有一个支持HDR处理的原生插件)来处理HDR视频。
步骤概述
- 集成原生插件:首先,需要确保有一个支持HDR视频处理的原生插件,并集成到uni-app项目中。
- 调用插件方法:在uni-app中调用该插件提供的HDR处理功能。
- 处理结果:接收并处理插件返回的结果。
代码示例
假设我们有一个名为HDRVideoProcessor
的原生插件,它提供了一个processHDRVideo
方法来处理HDR视频。
1. 集成原生插件(伪代码)
在manifest.json
中配置原生插件:
"nativePlugins": [
{
"name": "HDRVideoProcessor",
"class": "com.example.HDRVideoProcessor",
"methods": ["processHDRVideo"]
}
]
2. 调用插件方法(JavaScript)
在uni-app的页面或组件中调用插件方法:
// 引入uni-app的原生模块
const nativeModule = uni.requireNativePlugin('HDRVideoProcessor');
// 定义视频路径和处理回调
const videoPath = '/path/to/your/hdr/video.mp4';
const callback = (result) => {
if (result.success) {
console.log('HDR视频处理成功:', result.data);
} else {
console.error('HDR视频处理失败:', result.error);
}
};
// 调用原生插件的HDR处理方法
nativeModule.processHDRVideo({
videoPath: videoPath,
success: (res) => {
callback({ success: true, data: res });
},
fail: (err) => {
callback({ success: false, error: err });
}
});
注意
- 原生插件开发:上述代码示例假设已经存在一个支持HDR视频处理的原生插件。如果没有,需要开发一个原生插件,这涉及到Android和iOS平台的原生开发。
- 云服务:如果原生开发不是选项,可以考虑将HDR视频上传到云服务进行处理,然后下载处理后的视频。
- 性能与兼容性:HDR视频处理对设备性能要求较高,且不同设备的兼容性可能有所不同,需进行充分的测试。
通过上述方法,可以在uni-app项目中实现对HDR视频的处理,但具体实现细节将依赖于原生插件的功能和性能。