From 7d412d946168e6a5900e505872e79ae982eee568 Mon Sep 17 00:00:00 2001 From: Jorge Martin Espinosa Date: Wed, 18 Feb 2026 17:51:44 +0100 Subject: [PATCH] Remove all video metadata (#6224) Use `InAppMp4Muxer` with a custom metadata provider that removes all metadata entries --- .../android/libraries/mediaupload/impl/VideoCompressor.kt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libraries/mediaupload/impl/src/main/kotlin/io/element/android/libraries/mediaupload/impl/VideoCompressor.kt b/libraries/mediaupload/impl/src/main/kotlin/io/element/android/libraries/mediaupload/impl/VideoCompressor.kt index 11cb193aeb..18bb6762ce 100644 --- a/libraries/mediaupload/impl/src/main/kotlin/io/element/android/libraries/mediaupload/impl/VideoCompressor.kt +++ b/libraries/mediaupload/impl/src/main/kotlin/io/element/android/libraries/mediaupload/impl/VideoCompressor.kt @@ -24,6 +24,7 @@ import androidx.media3.transformer.EditedMediaItem import androidx.media3.transformer.Effects import androidx.media3.transformer.ExportException import androidx.media3.transformer.ExportResult +import androidx.media3.transformer.InAppMp4Muxer import androidx.media3.transformer.ProgressHolder import androidx.media3.transformer.TransformationRequest import androidx.media3.transformer.Transformer @@ -88,6 +89,10 @@ class VideoCompressor( // If we need to resize the video, we also want to recalculate the bitrate val newBitrate = videoCompressorConfig.newBitRate + // Remove all video metadata + val removeMetadataMuxer = InAppMp4Muxer.Factory { metadataEntries -> + metadataEntries.removeAll { true } + } val inputMediaItem = MediaItem.fromUri(uri) val outputMediaItem = EditedMediaItem.Builder(inputMediaItem) .setFrameRate(newFrameRate) @@ -109,6 +114,7 @@ class VideoCompressor( .setAudioMimeType(MimeTypes.AUDIO_AAC) .setPortraitEncodingEnabled(false) .setEncoderFactory(encoderFactory) + .setMuxerFactory(removeMetadataMuxer) .addListener(object : Transformer.Listener { override fun onCompleted(composition: Composition, exportResult: ExportResult) { trySend(VideoTranscodingEvent.Completed(tmpFile))