Skip to content

rohegde7/VideoCompression

Repository files navigation

VideoCompression

Assignment given during interview process of TRELL

Features:

  • Compressing video files in our local storage system with desired bitrate

Tech and Architecture:

  • We have used Kotlin as the primary programming language
  • This application takes advantage of MVVM architecture
  • Activity, ViewModel, Repository, LiveData, ObservableFields, DataBinding are the basic building blocks of this architecture
  • All the UI related work like showing Toast, starting a new activity, showing the progress bar, etc is done in the Activity.
  • Business logic is written in the ViewModel. Also the observable fields are present in the ViewModel which are observed from the XML when we use data binding.
  • All API calls, DB calls, File operation and major calculation or operation happen from within the repository.
  • It's a 1 way reference flow from Activity -> View Model -> Repository. For ViewModel/Repository to communicate back in the chain we use live data which is observed by the concerned entity.
  • Constraint Layout has been used to design the UI

Libraries:

  • nl.bravobit:android-ffmpeg:1.1.7 library is used for video compression
  • Glide is used for loading thumbnail of the videos

App screenshots:

Image description Image description Image description

About

Assignment given during interview process of TRELL

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages