{"profile","Set the encoding profile",OFFSET(profile),AV_OPT_TYPE_INT,{.i64=NV_ENC_H264_PROFILE_MAIN},NV_ENC_H264_PROFILE_BASELINE,NV_ENC_H264_PROFILE_HIGH_444P,VE,"profile"},
{"profile","Set the encoding profile",OFFSET(profile),AV_OPT_TYPE_INT,{.i64=NV_ENC_H264_PROFILE_MAIN},NV_ENC_H264_PROFILE_BASELINE,NV_ENC_H264_PROFILE_HIGH_444P,VE,"profile"},
{"level","Set the encoding level restriction",OFFSET(level),AV_OPT_TYPE_INT,{.i64=NV_ENC_LEVEL_AUTOSELECT},NV_ENC_LEVEL_AUTOSELECT,NV_ENC_LEVEL_H264_51,VE,"level"},
{"level","Set the encoding level restriction",OFFSET(level),AV_OPT_TYPE_INT,{.i64=NV_ENC_LEVEL_AUTOSELECT},NV_ENC_LEVEL_AUTOSELECT,NV_ENC_LEVEL_H264_51,VE,"level"},
{"vbr_minqp","Variable bitrate mode with MinQP",0,AV_OPT_TYPE_CONST,{.i64=NV_ENC_PARAMS_RC_VBR_MINQP},0,0,VE,"rc"},
{"vbr_minqp","Variable bitrate mode with MinQP",0,AV_OPT_TYPE_CONST,{.i64=NV_ENC_PARAMS_RC_VBR_MINQP},0,0,VE,"rc"},
{"ll_2pass_quality","Multi-pass optimized for image quality (only for low-latency presets)",0,AV_OPT_TYPE_CONST,{.i64=NV_ENC_PARAMS_RC_2_PASS_QUALITY},0,0,VE,"rc"},
{"ll_2pass_quality","Multi-pass optimized for image quality (only for low-latency presets)",
{"ll_2pass_size","Multi-pass optimized for constant frame size (only for low-latency presets)",0,AV_OPT_TYPE_CONST,{.i64=NV_ENC_PARAMS_RC_2_PASS_FRAMESIZE_CAP},0,0,VE,"rc"},
{"gpu","Selects which NVENC capable GPU to use. First GPU is 0, second is 1, and so on.",OFFSET(device),AV_OPT_TYPE_INT,{.i64=ANY_DEVICE},-2,INT_MAX,VE,"gpu"},
{"surfaces","Number of concurrent surfaces",OFFSET(nb_surfaces),AV_OPT_TYPE_INT,{.i64=32},0,INT_MAX,VE},
{"any","Pick the first device available",0,AV_OPT_TYPE_CONST,{.i64=ANY_DEVICE},0,0,VE,"gpu"},
{"delay","Delay frame output by the given amount of frames",OFFSET(async_depth),AV_OPT_TYPE_INT,{.i64=INT_MAX},0,INT_MAX,VE},
{"gpu","Selects which NVENC capable GPU to use. First GPU is 0, second is 1, and so on.",
{"no-scenecut","When lookahead is enabled, set this to 1 to disable adaptive I-frame insertion at scene cuts",OFFSET(no_scenecut),AV_OPT_TYPE_INT,{.i64=0},0,1,VE},
{"aq-strength","When Spatial AQ is enabled, this field is used to specify AQ strength. AQ strength scale is from 1 (low) - 15 (aggressive)",OFFSET(aq_strength),AV_OPT_TYPE_INT,{.i64=8},1,15,VE},
{"b_adapt","When lookahead is enabled, set this to 0 to disable adaptive B-frame decision",
{"cq","Set target quality level (0 to 51, 0 means automatic) for constant quality mode in VBR rate control",OFFSET(quality),AV_OPT_TYPE_INT,{.i64=0},0,51,VE},
{"profile","Set the encoding profile",OFFSET(profile),AV_OPT_TYPE_INT,{.i64=NV_ENC_HEVC_PROFILE_MAIN},NV_ENC_HEVC_PROFILE_MAIN,FF_PROFILE_HEVC_REXT,VE,"profile"},
{"profile","Set the encoding profile",OFFSET(profile),AV_OPT_TYPE_INT,{.i64=NV_ENC_HEVC_PROFILE_MAIN},NV_ENC_HEVC_PROFILE_MAIN,FF_PROFILE_HEVC_REXT,VE,"profile"},
{"level","Set the encoding level restriction",OFFSET(level),AV_OPT_TYPE_INT,{.i64=NV_ENC_LEVEL_AUTOSELECT},NV_ENC_LEVEL_AUTOSELECT,NV_ENC_LEVEL_HEVC_62,VE,"level"},
{"level","Set the encoding level restriction",OFFSET(level),AV_OPT_TYPE_INT,{.i64=NV_ENC_LEVEL_AUTOSELECT},NV_ENC_LEVEL_AUTOSELECT,NV_ENC_LEVEL_HEVC_62,VE,"level"},
{"vbr_minqp","Variable bitrate mode with MinQP",0,AV_OPT_TYPE_CONST,{.i64=NV_ENC_PARAMS_RC_VBR_MINQP},0,0,VE,"rc"},
{"vbr_minqp","Variable bitrate mode with MinQP",0,AV_OPT_TYPE_CONST,{.i64=NV_ENC_PARAMS_RC_VBR_MINQP},0,0,VE,"rc"},
{"ll_2pass_quality","Multi-pass optimized for image quality (only for low-latency presets)",0,AV_OPT_TYPE_CONST,{.i64=NV_ENC_PARAMS_RC_2_PASS_QUALITY},0,0,VE,"rc"},
{"ll_2pass_quality","Multi-pass optimized for image quality (only for low-latency presets)",
{"ll_2pass_size","Multi-pass optimized for constant frame size (only for low-latency presets)",0,AV_OPT_TYPE_CONST,{.i64=NV_ENC_PARAMS_RC_2_PASS_FRAMESIZE_CAP},0,0,VE,"rc"},
{"gpu","Selects which NVENC capable GPU to use. First GPU is 0, second is 1, and so on.",OFFSET(device),AV_OPT_TYPE_INT,{.i64=ANY_DEVICE},-2,INT_MAX,VE},
{"surfaces","Number of concurrent surfaces",OFFSET(nb_surfaces),AV_OPT_TYPE_INT,{.i64=32},0,INT_MAX,VE},
{"any","Pick the first device available",0,AV_OPT_TYPE_CONST,{.i64=ANY_DEVICE},0,0,VE,"device"},
{"delay","Delay frame output by the given amount of frames",OFFSET(async_depth),AV_OPT_TYPE_INT,{.i64=INT_MAX},0,INT_MAX,VE},
{"gpu","Selects which NVENC capable GPU to use. First GPU is 0, second is 1, and so on.",
{"no-scenecut","When lookahead is enabled, set this to 1 to disable adaptive I-frame insertion at scene cuts",OFFSET(no_scenecut),AV_OPT_TYPE_INT,{.i64=0},0,1,VE},
{"aq-strength","When Spatial AQ is enabled, this field is used to specify AQ strength. AQ strength scale is from 1 (low) - 15 (aggressive)",OFFSET(aq_strength),AV_OPT_TYPE_INT,{.i64=8},1,15,VE},
{"no-scenecut","When lookahead is enabled, set this to 1 to disable adaptive I-frame insertion at scene cuts",
{"cq","Set target quality level (0 to 51, 0 means automatic) for constant quality mode in VBR rate control",OFFSET(quality),AV_OPT_TYPE_INT,{.i64=0},0,51,VE},