Skip to content

Repository files navigation

VideoCompressor

Android向けの動画圧縮アプリです。デバイス上の動画ファイルを選択し、目標ファイルサイズや詳細なオプションを指定してファイルサイズを小さくすることができます。

主な機能

  • 動画の選択と保存: デバイスから動画を選択し、Storage Access Framework (SAF) を使用して任意のフォルダに圧縮後の動画を保存できます。
  • 他のアプリからの共有: 他のアプリ(ギャラリー、Google フォトなど)から動画を直接共有して圧縮できます。
  • シンプルモード: 目標ファイルサイズ (MB) をスライダーで指定するだけで、最適な設定を自動計算して圧縮します。
  • 詳細モード: 以下のパラメータを細かく制御できます。
    • 動画ビットレート: パーセンテージ指定、直接指定、プリセット (LOW/MEDIUM/HIGH/VERY_HIGH) から選択
    • 音声ビットレート: パーセンテージ指定、直接指定、プリセット (LOW/MEDIUM/HIGH/VERY_HIGH) から選択
    • 解像度: パーセンテージ指定、直接指定、プリセット (SD/HD/FHD/QHD) から選択
    • フレームレート: パーセンテージ指定、直接指定、プリセット (24/30/60fps) から選択
    • コーデック: H.264 / H.265 (HEVC) / AV1 から選択(端末の対応状況に応じて表示)
    • 音声削除: 音声トラックを除去してファイルサイズをさらに削減
  • 推定ファイルサイズ表示: 詳細モードでは圧縮後の推定ファイルサイズをリアルタイムで表示します。
  • バックグラウンド処理: 圧縮処理はフォアグラウンドサービスで実行されるため、アプリを閉じてもバックグラウンドで処理が継続されます。通知領域から進捗を確認できます。
  • 結果の確認: 圧縮前と圧縮後のファイルサイズが表示され、どれだけサイズが削減されたかを確認できます。
  • ハードウェアエンコーダ: Androidの MediaCodec API を使用し、ハードウェアエンコーダを利用した効率的で高速な処理を行います。

使用技術

  • Kotlin
  • Jetpack Compose (UI)
  • Coroutines / Flow (非同期処理と状態管理)
  • MediaCodec, MediaExtractor, MediaMuxer, OpenGL ES (動画変換・スケーリング処理)
  • Storage Access Framework (ファイル入出力)

動作要件

  • 最小SDK: API 33 (Android 13)
  • ターゲットSDK: API 34 (Android 14)

ビルド方法

リポジトリをクローンし、Android Studioで開くか、コマンドラインから以下のコマンドを実行してください。

# 実行権限の付与(必要な場合)
chmod +x gradlew

# デバッグビルドの作成
./gradlew assembleDebug

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages