美摄SDK For Android  3.10.0
HDR

HDR

HDR相关说明:

美摄SDK支持HDR视频的导入、编辑和导出,即全流程的HDR视频处理。相比普通的SDR视频处理,在以下几步需要特殊设置:

初始化SDK,创建timeline,设置liveWindow展示,导出HDR。

获取本机HDR支持能力:

通过NvsStreamingContext类上的getEngineHDRCaps()接口可以获取本机的HDR支持能力,返回值含义如下:

public static final int HDR_CAPABILITY_FLAG_SUPPORTED_BY_IMPORTER = 1;  (导入)
public static final int HDR_CAPABILITY_FLAG_SUPPORTED_BY_EDITING = 2;   (编辑)
public static final int HDR_CAPABILITY_FLAG_SUPPORTED_BY_EXPORTER = 4;  (导出)
public static final int HDR_CAPABILITY_FLAG_SUPPORTED_BY_LIVEWINDOW = 8;(屏幕支持)

1、初始化配置:

HDR功能需要添加下面标记:

NvsStreamingContext.STREAMING_CONTEXT_FLAG_ENABLE_HDR_DISPLAY_WHEN_SUPPORTED

String licensePath = "assets:/meishesdk.lic"; NvsStreamingContext.init(mContext, licensePath, NvsStreamingContext.STREAMING_CONTEXT_FLAG_SUPPORT_4K_EDIT|NvsStreamingContext.S TREAMING_CONTEXT_FLAG_ENABLE_HDR_DISPLAY_WHEN_SUPPORTED);

2、创建timeline:

创建timeline需要指定NvsVideoResolution的bitDepth属性,该属性有3个参数:

VIDEO_RESOLUTION_BIT_DEPTH_8_BIT (SDR编辑)

VIDEO_RESOLUTION_BIT_DEPTH_16_BIT_FLOAT(HDR编辑)

VIDEO_RESOLUTION_BIT_DEPTH_AUTO (自动适配机型)

//创建timeline
videoEditRes.bitDepth = XXXX
mStreamingContext.createTimeline(videoEditRes, videoFps, audioEditRes);

3、设置livewindow:

livewindow有3种支持模式,可以通过setHDRDisplayMode()配置:

HDR_DISPLAY_MODE_SDR (按SDR模式显示,对于HDR的视频不做处理,画面可能过爆)
HDR_DISPLAY_MODE_DEPEND_DEVICE (依据设备自动适配)
HDR_DISPLAY_MODE_TONE_MAP_SDR(将HDR视频转换成SDR再显示,画面不会过爆)

4、生成配置:

通过配置compileConfigurations来支持HDR的导出,需要设置两个参数:

1.  key为:NvsStreamingContext.COMPILE_VIDEO_ENCODER_NAME  value为:"hevc"
2.  key为:NvsStreamingContext.COMPILE_VIDEO_HDR_COLOR_TRANSFER  value为:"none"或者"st2084"或者"hlg"

Hashtable<String, Object> compileConfigurations = new Hashtable<>(); 
compileConfigurations.put(NvsStreamingContext.COMPILE_VIDEO_ENCODER_NAME,Constants.HDR_EXPORT_HEVC);
compileConfigurations.put(NvsStreamingContext.COMPILE_VIDEO_HDR_COLOR_TRANSFER, settingValues.getExportConfig());

mStreamingContext.setCompileConfigurations(compileConfigurations);

5、色彩增益处理:

调整在SDR向HDR转换时候色彩增益,默认:0。

/*! \if ENGLISH
*  \brief 
*  \param 
*  \else
*  \brief 设置在SDR向HDR转换时候色彩增益
*  \param gain 为色彩增益 范围是【1.0,10.0】
*  \endif
*  \since 2.23.0
*  \sa getColorGainForSDRToHDR
*/
void com.meicam.sdk.NvsStreamingContext.setColorGainForSDRToHDR(float gain)

/*! \if ENGLISH
*  \brief 
*  \return 
*  \else
*  \brief 获取在SDR向HDR转换时候色彩增益
*  \return 返回色彩增益值 范围是【1.0,10.0】
*  \endif
*  \since 2.23.0
*  \sa setColorGainForSDRToHDR
*/
float com.meicam.sdk.NvsStreamingContext.getColorGainForSDRToHDR()  

录制参数与导出参数:NVS_RECORD_VIDEO_ENCODEC_NAME,NVS_RECORD_HDR_VIDEO_COLOR_TRANSFER。

其他:

媒体格式分为几类 SDR、HDR、HDR10、HDR10+、Dolby Vision。

类型 颜色转换曲线名称
SDR none
HDR hlg
HDR10/HDR10+ st2084(PQ视频)
Dolby Vision(仅IOS支持) hlg dolby vision(仅IOS支持)