最近更新时间:2023.10.11 18:55:48
首次发布时间:2023.02.16 20:48:52
本文为您介绍接入 HDR 的功能介绍、效果示例、前提条件、播放方式等内容。
HDR(High Dynamic Range,高动态范围 ) 视频,相比普通 SDR(Standard Dynamic Range)视频拥有更高的色深、更广的动态范围和更强的色彩表现力,使得画面更真实、更有层次,很直观的提升视频画质,从而有效提升人们的观影感受。
mVideoEngine.isSupportHDR()
方法,返回值为 true, 设备是支持 HDR。设置 HDR 数据源播放,实现的代码示例如下所示。
final String vid = "video id"; // 视频源与 vid 必须一一对应 final String url = "http://www.example.com/hdr.mp4"; // 设置 HDR 视频资源 url final String cacheKey = TTVideoEngine.computeMD5(url); // 1.组装资源 StrategySource directUrlSource = new DirectUrlSource.Builder() .setVid(vid) .addItem(new DirectUrlSource.UrlItem.Builder() .setUrl(url) .setCacheKey(cacheKey) .build()) .build(); // 2.设置播放源 ttVideoEngine.setStrategySource(directUrlSource); // 3.播放 ttVideoEngine.play()
说明
vid 必须设置,视频源与 vid 必须一一对应。
缓存 key 必须设置。缓存 key 的生成规则:
请求 HDR 源需要 AppServer 在下发的 PlayAuthToken 中签入 HDRDefinition
,可通过服务端 SDK 中的获取临时安全凭证,即 PlayAuthToken 文档进行 PlayAuthToken 的接入。
切换到 HDR 档位的代码示例如下所示。
ttVideoEngine.configResolution(High_HDR);
Resolution HDR 档位枚举如下表所示。
枚举值 | 对应分辨率 | 描述 |
---|---|---|
Standard_HDR | 360P | 标清 HDR |
High_HDR | 480P | 高清 HDR |
SuperHigh_HDR | 720P | 超清 HDR |
ExtremelyHigh_HDR | 1080P | 1080P HDR |
TwoK_HDR | 2K | 2K HDR |
FourK_HDR | 4K | 4K HDR |
说明
详情请参见基础功能接入中获取清晰度部分。
ttVideoEngine.setVideoInfoListener(new VideoInfoListener() { @Override public boolean onFetchedVideoInfo(VideoModel videoModel) { // 获取视频数据成功回调 Log.v("VideoPlay", "onFetchedVideoInfo " + videoModel); if (videoModel == null) return false; // 获取当前 VideoModel 的清晰度数组,可用于清晰度列表展示 Resolution[] resolutions = ttVideoEngine.supportedResolutionTypes(); return false; } });
/** 判断是否是 HDR 档位清晰度 @param resolution 清晰度 */ private boolean isHDRResolution(Resolution resolution) { return resolution.toString(TYPE_VIDEO).contains("HDR"); }