Change quality of video export
Usually the export properties are based on the input video. If the device codec allows this, the resolution and other options are adopted. If the device does not support the corresponding resolution, the next lower one is used.
To define specific resolutions and not just aspects you can add a CropAspectAsset
to the UiConfigAspect
and set the fixedSize
boolean to true.
// Add aspect assets to backend
settingsList.config.apply {
getAssetMap(CropAspectAsset::class.java).clear().add(
CropAspectAsset.FREE_CROP,
CropAspectAsset("crop_600_800", 600, 800, true),
CropAspectAsset("crop_960_1280", 960, 1280, true),
CropAspectAsset("crop_1080_1920", 1080, 1920, true)
)
}
// Add items to UI
settingsList.getSettingsModel(UiConfigAspect::class.java).apply {
setAspectList(
CropAspectItem("crop_600_800", "3:4"),
CropAspectItem("crop_960_1280", "3:4"),
CropAspectItem("crop_1080_1920", "9:16")
)
}
Other export properties can be configured in the VideoEditorSaveSettings
.
The two values iFrameIntervalInSeconds
and bitRate
are particularly relevant here to influence the quality.