Released on Aug 13, 2026
<aside> 💡 All migrations to 1.54.x releases you can find in the main sample on GitHub
</aside>
The video crop feature provides a powerful tool for users to precisely frame their content by selecting any specific area within the video. It allows for the removal of unwanted peripheral elements, focusing the viewer's attention on the primary subject of the scene. For added convenience, the SDK supports a variety of predefined aspect ratios, including popular formats like 9:16, 1:1, and 3:4. These presets ensure that content is perfectly optimized for different platforms, such as vertical stories, square posts, or cinematic displays.

We now save the exact time code of your selected frame on Cover screen.
<aside> ❗ Please check out Pull Request with migration changes.
</aside>
def banubaSdkVersion = '1.54.0'
implementation "com.banuba.sdk:ffmpeg:5.3.0"
implementation "com.banuba.sdk:camera-sdk:${banubaSdkVersion}"
implementation "com.banuba.sdk:camera-ui-sdk:${banubaSdkVersion}"
implementation "com.banuba.sdk:core-sdk:${banubaSdkVersion}"
implementation "com.banuba.sdk:core-ui-sdk:${banubaSdkVersion}"
implementation "com.banuba.sdk:ve-flow-sdk:${banubaSdkVersion}"
implementation "com.banuba.sdk:ve-sdk:${banubaSdkVersion}"
implementation "com.banuba.sdk:ve-ui-sdk:${banubaSdkVersion}"
implementation "com.banuba.sdk:ve-gallery-sdk:${banubaSdkVersion}"
implementation "com.banuba.sdk:ve-effects-sdk:${banubaSdkVersion}"
implementation "com.banuba.sdk:effect-player-adapter:${banubaSdkVersion}"
implementation "com.banuba.sdk:ar-cloud:${banubaSdkVersion}"
implementation "com.banuba.sdk:ve-audio-browser-sdk:${banubaSdkVersion}"
implementation "com.banuba.sdk:ve-export-sdk:${banubaSdkVersion}"
implementation "com.banuba.sdk:ve-playback-sdk:${banubaSdkVersion}"
// Remove this dependency if you only use Video Editor SDK
def banubaPESdkVersion = '1.4.2'
implementation("com.banuba.sdk:pe-sdk:${banubaPESdkVersion}")
// result is com.banuba.sdk.export.data.ExportResult.Success
val analytics = result.additionalExportData
.getBundle(ExportBundleProvider.Keys.EXTRA_EXPORT_OUTPUT_INFO)
?.getString(ExportBundleProvider.Keys.EXTRA_EXPORT_ANALYTICS_DATA)
val coverTimestampMs = analytics?.let {
JSONObject(it).optLong(ExportBundleProvider.Keys.EXTRA_EXPORT_COVER_TIMESTAMP)
}
New property cover_timestamp_ms is added to exported_meta.txt file.
{
"aspect_ratio": "original",
"video_resolutions": [
"1080x1920"
],
"camera_effects": [],
"ppt_effects": {
"visual": 0,
"speed": 0,
"mask": 0,
"color": 0,
"text": 0,
"sticker": 0,
"blur": 0,
"draw": 0,
"transition": 0,
"lower_third": 0,
"audio": []
},
"sources": {
"camera": 0,
"gallery": 1,
"pip": 0,
"slideshow": 0,
"audio": 0
},
"export_duration": 4.17,
"video_duration": 14.934,
"video_count": 1,
**"cover_timestamp_ms": 5032**
}