Een eenvoudige video-editor gebouwd met Jetpack Compose en Media3 — Geen ads of trackers
Elke keer dat je een kort videootje op Android moet inkorten of er audio uit wilt halen, wordt het een hele zoektocht. Op Google Play eisen de meeste editors meteen een abonnement, plakken ze een watermerk over de helft van het scherm, of dwingen ze je om casino-advertenties te kijken. Ingebouwde galerij-editors comprimeren bestanden vaak tot onherkenbaarheid.
Onlangs stuitte ik op open-video-editor van ontwikkelaar devhyper. Het is een beknopte app onder de GPLv3-licentie, volledig geschreven in Kotlin met de moderne Android-ontwikkelstack.
Wat de app kan doen
Het project probeert niet te concurreren met zware mobiele all-in-one tools zoals CapCut. De focus ligt hier op basisbewerkingen die je dagelijks nodig hebt:
- Video inkorten langs de tijdlijn (Trimmen)
- Frames desatureren (grijswaardenfilter)
- Resolutie en schaal aanpassen (Schalen, Resolutie)
- Video roteren met 90, 180 of 270 graden (Roteren)
De interface is eenvoudig: selecteer een bestand uit je galerij, verplaats de schuifregelaars, druk op de opslaan-knop. Geen profielen, registratie of verborgen aankopen.
Hoe het project intern is opgezet
Voor Android-ontwikkelaars is de repository vooral interessant vanwege hoe de mediaprocessing-pipeline is geïmplementeerd.
Voorheen werd werken met video op Android een hoofdpijndossier: je moest ofwel zware C++ FFmpeg-builds via NDK inpakken, of worstelen met low-level MediaCodec. Hier koos de auteur voor Googles officiële Media3 Transformer-bibliotheek.
Media3 Transformer regelt hardware-encoding en -decoding, tracksynchronisatie en het toepassen van grafische effecten via OpenGL-shaders. Als je naar de broncode kijkt, komt videoverwerking neer op beknopte aanroepen:
val editedMediaItem = EditedMediaItem.Builder(mediaItem)
.setEffects(
Effects(
listOf(audioProcessor),
listOf(presentation, rgbFilter)
)
)
.build()
val transformer = Transformer.Builder(context)
.setVideoMimeType(MimeTypes.VIDEO_H264)
.build()
transformer.start(editedMediaItem, outputPath)
De interface is volledig gebouwd met Jetpack Compose. De codebase is clean, zonder lagen van abstractie of legacy XML-layouts. Het is een goede referentie als je eenvoudige videoverwerking aan je project wilt toevoegen en het wiel niet opnieuw wilt uitvinden.
Waar te downloaden en hoe te draaien
Het project wordt gedistribueerd via F-Droid, IzzyOnDroid, Google Play en als APK-releases op GitHub.
Als je in de code wilt duiken of het project lokaal wilt bouwen, is een standaard clone voldoende:
git clone https://github.com/devhyper/open-video-editor.git
Het project opent in de nieuwste Android Studio en bouwt zonder specifieke externe afhankelijkheden of gesloten API-sleutels.
Voor wie dit project nuttig is
Als je een lichtgewicht hulpprogramma zonder trackers nodig hebt voor je persoonlijke telefoon, dekt open-video-editor basisbehoeften voor video inkorten en roteren.
Als je voor Android ontwikkelt, dient het project als een duidelijk voorbeeld van werken met Jetpack Media3 Transformer. Googles officiële documentatie heeft vaak overladen voorbeelden, maar hier kun je werkende productiecode bekijken uit een kleine, complete applicatie.
Gerelateerde projecten