Skip to content

woafID/ModernTranscoder

Repository files navigation

ModernTranscoder

A native Android media transcoding application built with Kotlin and Jetpack Compose. It provides a Handbrake-like interface for granular control over media conversions on Android.

Features

  • Native Core: Built with Jetpack Compose and Material 3.
  • Offline-Only: Runs entirely locally with no internet permissions requested.
  • Android 15+ Ready: Uses 16KB page-size aligned FFmpeg binaries.
  • Direct CLI Mode:
    • Direct command editing in the interface after the ffmpeg prefix.
    • Placeholders (input and output) are dynamically mapped to local sandbox paths.
    • Custom command strings can be saved as reusable presets.
  • Dry Runs: Execute standalone diagnostic or query commands (e.g. checking encoders or help output) directly without setting up input files.
  • Multi-threading: Set active CPU core count to either regulate device thermals or speed up the encoding process.
  • Terminal Logs: Diagnose issues with your ffmpeg command.
  • SAF Pickers: Output target folders are configured using the Storage Access Framework, requiring no storage permissions.

Under the hood

How to Build and Run

Prerequisites

  • Android SDK, NDK, and JDK 17 installed.
  • An arm64-v8a Android device with USB Debugging enabled.

Build & Install

Run the following command to compile and install the optimized release build on a connected device:

./gradlew installRelease

The compiled APK will be located at: app/build/outputs/apk/release/app-release.apk

About

A native Android media transcoding application built with Kotlin and Jetpack Compose.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages