NEP Cutter

Summary: A robust native Android utility built to safely and quickly split massive video files directly on mobile hardware.

  • Problem: Standard mobile video editors crash, corrupt data, or freeze the UI when attempting to parse, split, or batch-process incredibly large (6GB+) video files.
  • Solution: Built a high-performance application utilizing FFmpeg for the heavy lifting, executed entirely within background services to prevent UI blocking. Integrated secure user authentication and a subscription-based model.
  • Tech Stack: Kotlin, Jetpack Compose, FFmpeg, Android Background Services, Firebase.
  • Outcome: Achieved highly stable batch processing of massive video files directly on mobile devices without memory leaks or UI thread freezing.

Processing Architecture

flowchart TD
    A["🎬 User Selects Video\n(6GB+ file)"] --> B["Jetpack Compose UI\n(File Picker)"]
    B --> C["Split Configuration\n(Duration / Segment Count)"]
    C --> D["Launch Background\nForegroundService"]
    
    D --> E["FFmpeg Process\n(Native C Library)"]
    
    subgraph "FFmpeg Pipeline"
        E --> F["Probe: Get Duration\n& Codec Info"]
        F --> G["Calculate Split\nPoints (timestamps)"]
        G --> H["Batch Loop:\nffmpeg -ss -t -c copy"]
        H --> I["Segment 1"]
        H --> J["Segment 2"]
        H --> K["Segment N..."]
    end
    
    subgraph "Service Layer"
        L["Progress Notification\n(ForegroundService)"]
        M["Error Handler\n(Retry / Skip)"]
        N["Memory Monitor\n(Prevent OOM)"]
    end
    
    D --> L
    D --> M
    D --> N
    
    I --> O["📁 Output Directory"]
    J --> O
    K --> O
    
    subgraph "Auth & Monetization"
        P["Firebase Auth"]
        Q["Subscription Check\n(Free Tier Limits)"]
    end
    
    B --> Q
    Q -->|Premium| C
    Q -->|Free| R["Limited to 3 Splits"]
    R --> C
  • What I learned: Gained crucial experience integrating native C-libraries (FFmpeg) into Android, handling long-running background tasks reliably, and implementing functional mobile monetization architectures.