@yoseiyamazaki/media-compression-integrater
v1.0.12
Published
A flexible, profile-based media compression tool using ffmpeg.
Maintainers
Readme
Media Compression Integrater
![]()
Media Compression Integraterは、ffmpegを使用して画像や動画を圧縮するためのコマンドラインツールです。ffmpegのコマンドを直接記述した独自の圧縮プロファイルを定義でき、出力を完全にコントロールし、設定を共有することが可能です。
主な機能
- プロファイルベースの圧縮: 動画用のHEVC、画像用のWebP/AVIFなど、用途に応じた複数の圧縮プロファイルを定義できます。
- 対象拡張子の指定: プロファイルごとに変換対象とするファイルの拡張子を指定でき、無関係なファイルは自動でスキップされます。
- 柔軟な実行: 圧縮プロファイルを指定すればその一つだけを、指定しなければ定義された全プロファイルを実行します。
- ffmpegコマンドを直接利用: ffmpegのコマンドラインオプションを直接記述できるため、最大限の柔軟性を持ちます。
- スマートなファイル命名: 変換元と変換先の拡張子が同じ場合、ファイルの上書きを防ぐためにファイル名が自動的に変更されます (例:
video.mp4->video.hevc.mp4)。 - 同一階層への出力: デフォルトでは、圧縮されたファイルは元ファイルと同じディレクトリに保存されます。
必須要件
本ツールを使用する前に、お使いのシステムに上記がインストールされていることを確認してください。
インストール
グローバルインストール (推奨)
コマンドラインツールとしてどこからでも利用したい場合は、グローバルにインストールします。
npm install -g @yoseiyamazaki/media-compression-integraterローカルインストール
特定のプロジェクトでのみ利用する場合は、開発依存関係としてインストールします。
npm install -D @yoseiyamazaki/media-compression-integraterこの場合、コマンドの実行は npx mci のように npx を接頭辞として使用します。
使い方
1. 設定ファイルの初期化
まず、プロジェクトディレクトリで以下のコマンドを実行し、設定ファイル compress.config.json を生成します。
# グローバルインストールの場合
mci init
# ローカルインストールの場合
npx mci init2. 設定ファイルの編集
生成された compress.config.json を開き、圧縮プロファイルを定義します。各プロファイルでは、対象の拡張子 (targetExtensions) と ffmpeg のコマンド (command) を指定します。
設定例 (compress.config.json):
{
"profiles": {
"hevc": {
"targetExtensions": [".mov", ".mp4"],
"command": "-c:v libx265 -crf 28 -c:a aac -b:a 128k"
},
"webp": {
"targetExtensions": [".png", ".jpg", ".jpeg"],
"command": "-c:v libwebp -lossless 0 -q:v 80"
}
}
}3. 圧縮の実行
ファイルを指定して圧縮を実行します。
# hevcプロファイルを使って動画を圧縮
mci my_video.mp4 -p hevc
# webpプロファイルを使って画像を圧縮
mci my_image.png -p webpプロファイルを指定しない場合、対象の拡張子に一致するすべてのプロファイルが実行されます。
mci my_video.mp4また、ファイルだけでなくフォルダのパスを指定することも可能です。その場合、指定されたフォルダ配下のすべてのファイルが圧縮対象となります。
# hevcプロファイルを使ってフォルダ内の動画をすべて圧縮
mci path/to/your/directory -p hevcオプション
-p, --profile <name>: 使用する圧縮プロファイルを指定します。-o, --output <path>: 圧縮ファイルの出力先ディレクトリを指定します。デフォルトは入力元と同じディレクトリです。-c, --config <path>: 使用する設定ファイルのパスを指定します。デフォルトは./compress.config.jsonです。
ライセンス
このプロジェクトは MIT License の下で公開されています。
