diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/uploads/VideoCompressionHelper.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/uploads/VideoCompressionHelper.kt index adab194f9..a581adacc 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/uploads/VideoCompressionHelper.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/uploads/VideoCompressionHelper.kt @@ -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,