コンピューターにメディアファイルがありますか?データをよりスペース効率の高いファイル形式で保存することで、かなりのディスクスペースを再利用できる可能性があります。
この記事では、Linuxの行コマンドを使用して最も一般的な省スペース変換を実行する方法を示します。圧縮およびフォーマット変換機能を完全に制御できるため、行コマンドを使用します。また、スクリプトを作成する場合は、行コマンドを使用する必要があります。これにより、独自のニーズに合わせてカスタマイズされたプログラムを開発できます。
この記事ではターミナルコマンドについて説明しますが、ファイルを圧縮および変換する方法は他にもたくさんあります。オープンソースの変換GUIアプリケーションをコンピューターにインストールすることも、save as
を使用してファイル形式を変換することもできます。 およびexport
多くの一般的なアプリケーションの機能。
この記事では、存在する数百の中で最も人気のあるファイル形式とターミナルコマンドのほんの一握りについて説明します。目標は、シンプルに保ちながら最大のメリットを提供することです。
ファイルの削除
ファイル形式の変換を開始する前に、コンピューター上にある巨大で不要なファイルを特定して削除すると便利です。ほんの一握りのスペースホッグを削除すると、大きなメリットが得られます。
du
、ncdu
、およびdust
コマンドは、現在のディレクトリの下にある最大のサブディレクトリを一覧表示します。どのディレクトリが最もディスク容量を使用しているかを教えてくれます:
$ du -a . | sort -n -r | head -n 50
このコマンド文字列は、再帰的なディレクトリツリーで最大の50個のファイルを識別します。サイズ別に並べ替えられた最大のファイルが一覧表示されます:
$ find -type f -exec du -Sh {} + | sort -rh | head -n 50
このコマンドを使用すると、大きなファイルが複数の場所に保存されていることを即座に認識できます。重複を削除すると、かなりのスペースを再利用できます。この出力は、不要になった大きなファイルを特定して削除するのにも役立ちます。
その他のLinuxリソース
- Linuxコマンドのチートシート
- 高度なLinuxコマンドのチートシート
- 無料のオンラインコース:RHELの技術概要
- Linuxネットワーキングのチートシート
- SELinuxチートシート
- Linuxの一般的なコマンドのチートシート
- Linuxコンテナとは何ですか?
- 最新のLinux記事
品質またはストレージスペース
画像、音声、およびビデオを保持するメディアファイルは、何百もの異なるファイル形式を使用する場合があります。多くの場合、データ品質と消費されるストレージスペースの間にはトレードオフがあります。
一部のファイル形式はロスレスです :最初にキャプチャされたすべてのデータを保持します。ロスレスファイル形式は、非圧縮のいずれかです。 または圧縮 。サイズは、この要因やその他の要因によって異なります。
他のファイル形式は不可逆です 。有用性の低いデータの一部を巧みに排除することで、ストレージスペースを節約します。データの使用が、わずかなデータ損失に耐えられるようなものである場合に理想的です。
たとえば、RAW、PNG、BMPなどのロスレス形式でデジタル画像をキャプチャすると、大きなファイルが作成されます。その画像をJPGやWEBPなどの不可逆的な代替画像に変換すると、多くのスペースを節約できます。その価値はありますか?これは、画像の使用目的によって異なります。
高品質の本に写真を印刷するプロの写真家であれば、元のロスレスファイルを保持したいと思うでしょう。アートワークには最高品質の画像が必要になる可能性があります。ロスレスファイルは、品質を損なうことなく大規模な画像編集を実行できることも意味します。
あなたがウェブサイト開発者なら、あなたは反対の選択をするかもしれません。小さな損失のあるJPGまたはWEBPファイルは、損失のない画像よりもはるかに高速にユーザーのコンピューターにダウンロードされるため、Webページの読み込みが速くなります。この変換が機能するのは、コンピューターまたは携帯電話の画面に表示する画像がロスレスかロスレスかを判断できるユーザーがほとんどいないためです。
可逆形式から不可逆形式に変換した後、一部のデータを削除したことに注意してください。そのデータを取り戻すために元に戻すことはできません。以前の形式に戻すことはできますが、すでに犠牲にしたデータなしで変換できます。変換されたファイルがすべてのニーズを満たしていることを確認したら、元のファイルを削除してください。元のファイルをまったく削除しないことを選択できます。
スペースを節約することは、便利なを節約することの問題である場合があります スペース。元のロスレスの非圧縮ファイルが何らかの理由で重要である場合は、それらを別の保存場所にバックアップしてください。作業中のコンピュータでそのフル品質のWAVファイルを毎日必要としない場合もありますが、後でアクセスできるようになっている可能性があります。
画像ファイルの変換
RAW、BMP、GIF、TIFFなど、いくつかの一般的なビットマップファイル形式は、スペースを節約する絶好の機会を提供します。広く使用されているPNG形式も良い候補です。
画像の可能な変換ターゲットの1つは、不可逆JPG形式です。 JPGでは、品質設定により、データ損失が大きい小さいファイルサイズ、または損失が少ない大きいファイルサイズを指定できます。一部のロスレス形式では、最大10:1の圧縮率が得られる場合があります。ただし、JPG画像をコンピューターや電話の画面に表示した場合、変換と圧縮が行われたことを目で確認することはめったにありません。
WEBPファイルはJPGファイルと同じように画面上で見栄えがしますが、さらに多くのスペースを節約できます。この節約により、WEBPは最も人気のある不可逆画像形式になり、すべての最新のブラウザーと最新のアプリでサポートされています。 WEBP形式は、アルファ透明度、アニメーション、および優れた色の輝きを提供します。可逆形式もサポートしていますが、ほとんどの場合、可逆形式として使用されます。
PNGファイルとJPGファイルのほとんどをWEBP形式に変換し、大量のストレージスペースを再利用しました。 1つのディスクで、500メガバイトのPNGファイルが溶けて約120メガバイトのWEBPになりました。画像が画面にのみ表示されることが確実な場合は、WEBPに変換することで明らかなメリットが得られます。
オープンソースのImageMagickユーティリティは、画像を変換するためのLinuxターミナルコマンドを提供します。おそらく最初にインストールする必要があります:
$ sudo apt install imagemagick
ImageMagick行コマンドは、次の3つの手法で画像ファイルのサイズを縮小するのに役立ちます。
- ファイル形式の変更
- 圧縮の程度を変更する
- 画像を小さくする
ImageMagickのconvert
の構文は次のとおりです。 ファイル形式の変換を実行するコマンド:
convert [input options] input_file [output options] output_file
サンプル実行の結果からわかるように、これらの例はすべてファイルサイズを縮小しました。
$ convert image.bmp new_image.jpg # 7.4MB down to 1.1MB
$ convert image.tiff new_image.jpg # 7.4MB down to 1.1MB
$ convert image.png new_image.webp # 4.8MB down to 515KB
$ convert image.png new_mage.webp # 1.5MB down to 560KB
$ convert image.jpg new_image.webp # 769KB down to 512KB
$ convert image.gif new_image.jpg # 13.2MB down to 10.9MB
$ convert image.gif new_image.webp # 13.2MB down to 4.1MB
RAW画像も変換できます。 RAW画像を変換する場合、そのファイル名にconvert
の拡張子を付けないでください。 正しく処理するためのコマンド。
$ convert image new_image.png # RAW 67.1MB down to 45.3MB
スペースを大幅に節約できますが、それは、出力がユースケースに受け入れられる場合に限られます。
この例では、適切なアスペクト比を維持しながら、JPG画像のサイズを可能な限り800x600に近づけることで、スペースを節約します。この例では、1277x824ピクセルの285KBの入力ファイルを800x600ピクセルの51KBの出力ファイルに変換します。
$ convert image.jpg -resize 800x600 new_image.jpg
convert
コマンドはあなたが好きなように画像を変更することができます。たとえば、画質とサイズの間のトレードオフを指定できます。ただし、その全機能を理解するには、多くのオプションを検討する必要があります。 ImageMagickの詳細については、Greg Pittmanの「ImageMagick入門」を読むか、ImageMagickのWebサイトにアクセスしてください。
オーディオファイルの変換
画像ファイルと同様に、音声ファイルはロスレス非圧縮で提供されます 、可逆圧縮 、および不可逆 フォーマット。
画像と同様に、ロスレスとロッシーのトレードオフは、主にデータ品質とスペースの節約です。最高品質のオーディオが必要な場合は、ロスレスファイルを使用してください。たとえば、デジタル化された音楽を編集する場合はそうなるかもしれません。はるかに少ないスペースで聴ける音楽が必要な場合、世界中のほとんどの人が、MP3、M4A、OPUSなどの不可逆形式が最良の選択であると判断しています。
最も人気のあるオーディオ形式は次のとおりです。多くの場合、ファイル拡張子は複数のオーディオエンコーディング形式をサポートできるコンテナを指し、ほとんどのテクノロジは複数のファイル拡張子を要求することに注意してください。このグラフは、表示される最も一般的なシナリオを示しています。
- ロスレスで非圧縮
- WAV
- PCM
- AIFF
- ロスレスで圧縮された
- FLAC
- アフラック
- ロッシー
- WEBM
- OPUS
- OGG(Vorbis)
- AAC(これの一部の実装はオープンフォーマットではありません)
- MP3
- M4A
- WMA(オープンフォーマットではありません)
ディスク容量を節約することが目標の場合は、可逆形式から不可逆形式に変換してみてください。必要がない限り、不可逆形式から別の形式に変換しないでください。音質が低下しすぎる可能性があります。
オーディオファイルを変換するための非常に柔軟なLinuxターミナルコマンドはffmpeg
です。 。インストールするには:
$ sudo apt install ffmpeg
ImageMagickのようにconvert
コマンド、ffmpeg
驚異的な範囲のファイル形式とコーデックをサポートします。次のように入力して、すべてを表示します:
$ ffmpeg -encoders
ffmpeg
を使用する 通常はかなり簡単です。これが標準の構文です。 -i
フラグは入力ファイルを識別し、-vn
フラグはffmpeg
に通知します オーディオ出力を変更する可能性のあるビデオ関連のコードを呼び出さないでください:
$ ffmpeg -i audiofile_input.ext -vn audiofile_output.new
これらの例はすべて、スペースを節約するためにロスレスWAVファイルをロスレス形式に変換します。 AIFFファイルを変換するプロセスは同じです(ただし、.wav
を置き換えます) .aiff
を使用 ):
$ ffmpeg -i audio.wav -vn audio.ogg # 38.3MB to 3.3MB
$ ffmpeg -i audio.wav -vn audio.mp3 # 38.3MB to 3.5MB
$ ffmpeg -i audio.wav -vn audio.m4a # 38.3MB to 3.6MB
$ ffmpeg -i audio.wav -vn audio.webm # 38.3MB to 2.9MB
すべてのコマンドにより、ロスレス入力ファイルのサイズが10分の1に縮小されました。大きな問題:出力は元のファイルとは異なって聞こえますか?まあ、それは異なります。ほとんどの消費者向けデバイスで聞いているほとんどの人にとって、違いはごくわずかです。そのため、MP3、M4A、およびその他の圧縮形式は、世界で最も人気のある音楽形式です。技術的には最高ではありませんが、オーディオは非常に聞き取りやすく、ストレージスペース(ストリーミングの場合は帯域幅)の一部を消費します。
ビデオファイルの変換
ビデオ変換は、多くのスペースを節約する別の機会を提供します。目標は、ニーズに合わせて再生品質とファイルサイズのバランスが最適なビデオ形式を見つけることです。
ビデオ形式 コンテナファイル形式の組み合わせです およびコーデック 。コーデックは、データストリームがコンテナファイルに出入りするときにデータストリームをエンコードおよびデコードするソフトウェアです。
コンテナは、複数のコーデックとペアにすることができます。実際には、特定のコンテナとペアになっている一般的なコーデックは1つか2つか3つしかないことがよくあります。たとえば、オーディオファイルの場合、WAVファイルはロスレスまたはロスレスとしてエンコードできますが、ほとんどの人がWAVファイルはロスレスであると想定するように、ロスレスエンコードがフォーマットを支配します。
これらは、今日最も広く使用されているオープンソースビデオ形式の一部です。
- H.264ビデオとAACオーディオを含むMP4形式は、BluRayとインターネットストリーミングで使用されます。
- VP9ビデオとOpusオーディオを含むWEBM形式は非常に柔軟性があり、アーカイブ品質のファイルとストリーミング用の小さなファイルの両方に使用されます。
- Matroska(MKV)コンテナ形式には、ビデオ、オーディオ、さらには立体(3D)画像のほぼすべての組み合わせを含めることができます。これがWEBMの基盤です。
ビデオファイルのサイズと品質を決定する主な要因は次のとおりです。
- 解像度(フレームの寸法)
- ビットレート
- エンコーディング
ffmpeg
コマンドは3つのパラメータすべてを変更できます。簡単な変換例を次に示します。
$ ffmpeg -i input_video.mov output.webm
この変換により、39MBの入力から1.8MBの出力ファイルが作成されました。
パラメータを指定しなかったため、ffmpeg
入力ファイルの既存の属性のほとんどをコピーします。この例では、入力ファイルは、解像度が1280x720、フレームレートが23.98、ビットレートが40,219キロバイト/秒(kbps)のMJPEGビデオを含むMOVファイルでした。結果の出力ファイルには、同じ解像度とフレームレートのVP9ビデオが含まれています。ただし、ビットレートはわずか1,893kbpsです。
オーディオ変換と同様に、ビデオ圧縮率は印象的であり、潜在的なスペース節約は莫大です。私のPCでは、これらの変換は元の変換と非常によく似ているため、劣化があったかどうかを判断するのは困難でした。これは、私の目的では、劣化がなかったと言うのと同じくらい良いことです。
出力品質が許容できるかどうかは、ビデオの使用目的、表示デバイス、および期待によって異なります。変換されたファイルを確認し、問題がないことがわかるまで、元のファイルを消去しないでください。
アーカイブストレージ
アーカイブは、複数の入力ファイル(多くの場合、異なるファイルタイプ)を受け取り、それらを1つの出力ファイルに収集します。圧縮はオプションです。圧縮されたアーカイブは、インターネットを介してファイルを送信したり、データを長期間保存したりするのに役立ちます。スペースを節約するのに最適な方法です。欠点は、アーカイブからファイルを抽出するまで、アーカイブされたファイルを処理する方法に制限があることです(ただし、一部のツールは、アーカイブ内のファイルの操作が非常に高度になっています)。
多くのアーカイブファイル形式の中で、最も一般的な圧縮形式には、GZ、BZ2、XZ、ZIP、および7Zが含まれます。 tar
コマンドは多くのアーカイブ形式を処理します。 gzip
を含む圧縮コマンドをサポートします 、bzip2
、xz
、その他。
$ tar --xz --create --file myarchive.tar.xz bigfile.xcf bigfile.tiff
このコマンドにより、56MBが28MBの圧縮アーカイブに削減されました。発生する圧縮の量は、関連するファイルによって大きく異なります。一部のメディアファイル(特にすでに圧縮形式になっているもの)は、ほとんどまたはまったく圧縮されません。
TARファイルをアーカイブ解除するには、--extract
を使用します オプション:
$ tar --extract --file myarchive.tar.xz
tar
コマンドは、多くのファイルを1つのコンテナーにバンドルします( tarball と呼ばれることもあります)。 )。ただし、1つのファイルのみを圧縮する場合は、コンテナは必要ありません。
代わりに、gzip
などのコマンドを使用してファイルを圧縮できます。 、bzip2
、xz
、zip
、7z
、その他。
$ xz bigfile.xcf
$ ls
bigfile.xcf.xz
圧縮ファイルを解凍するには、通常、ファイルの圧縮に使用したコマンドの「un」バージョンを使用できます。
$ unxz bigfile.xcf.xz
--decompress
もある場合があります オプション:
$ xz --decompress bigfile.xcf.xz
すべてのLinuxディストリビューションにこれらすべてのコマンドが含まれているわけではないため、一部のコマンドをインストールする必要がある場合があります。
スクリプトのヒント
ディレクトリ内のすべてのファイルを変換するには、変換コマンドをfor
内に埋め込むだけです。 ループ。埋め込みスペースを含むファイル名を処理するには、ファイル名変数を二重引用符で囲みます。このスクリプトは、ディレクトリ内のすべてのPNGファイルをWEBPファイルに変換します。
#!/bin/bash
for file_name in *.png ; do
convert "$file_name" "$file_name".webp
done
ディレクトリとそのすべてのサブディレクトリ内のすべてのファイルを処理するには、ディレクトリ構造を再帰的にトラバースする必要があります。 pushd
を使用する およびpopd
スタックコマンドまたはこのための検索コマンド。
結論
慎重に使用すると、メディアファイルを圧縮および再フォーマットするLinuxコマンドを使用すると、ギガバイトのストレージを節約できます。あなたはあなた自身の素晴らしいヒントをいくつか持っていると確信しているので、コメントにそれらを追加してください。