Add codec based multiplier (h265 = 0.7x)

This commit is contained in:
davotoula
2025-10-01 11:28:31 +02:00
parent 7d69122409
commit 4554813d72

View File

@@ -89,11 +89,18 @@ data class CompressionRule(
val bitrateMbps: Float,
val description: String,
) {
fun getBitrateBps(framerate: Float): Int {
// Apply 1.5x multiplier for 60fps+ videos
val multiplier = if (framerate >= 60f) 1.5f else 1.0f
fun getBitrateBps(
framerate: Float,
useH265: Boolean,
): Int {
// Apply 1.3x multiplier for 60fps+ videos, 0.7x multiplier for H265
val framerateMultiplier = if (framerate >= 60f) 1.3f else 1.0f
val codecMultiplier = if (useH265) 0.7f else 1.0f
val finalMultiplier = framerateMultiplier * codecMultiplier
return (bitrateMbps * multiplier * MBPS_TO_BPS_MULTIPLIER).toInt()
Log.d("VideoCompressionHelper", "framerate: $framerate, useH265: $useH265, Bitrate multiplier: $finalMultiplier")
return (bitrateMbps * finalMultiplier * MBPS_TO_BPS_MULTIPLIER).toInt()
}
}
@@ -154,8 +161,8 @@ object VideoCompressionHelper {
.getValue(mediaQuality)
.getValue(info.resolution.getStandard())
val bitrateBps = rule.getBitrateBps(info.framerate)
Log.d(LOG_TAG, "Bitrate: ${bitrateBps}bps for ${info.resolution.getStandard()} quality=$mediaQuality framerate=${info.framerate}fps.")
val bitrateBps = rule.getBitrateBps(info.framerate, useH265)
Log.d(LOG_TAG, "Bitrate: ${bitrateBps}bps for ${info.resolution.getStandard()} quality=$mediaQuality framerate=${info.framerate}fps useH265=$useH265.")
Log.d(
LOG_TAG,