ファイルを迅速かつ効率的に圧縮するにはどうすればよいでしょうか?

ファイルを迅速かつ効率的に圧縮するにはどうすればよいでしょうか?

不安定なインターネット接続を持つ人と共有できるように圧縮したいさまざまなビデオを含むフォルダがあります。試してみました7z、gzip、tar、lzma、xz、圧縮には他にも多くの方法がありますが、サイズを 20 ~ 30 MB 削減するだけです。ffmpegビデオを圧縮して再エンコードするために使用してみましたが、非常に遅いです。

私はまた、.isoファイルを変更しましたが、結果は同じでした。

圧縮には多くの要素が関係していることは理解していますが、ファイル サイズを最小限に抑える簡単な方法は何でしょうか? Linux のコマンドライン ツールが推奨されます。

答え1

何を圧縮したいかによって異なります。

問題のビデオ ファイルがすでに圧縮形式になっている場合は、データ レートを低くして再エンコードする (ビデオ解像度を下げるか、オーディオの kbps レートを下げる) 以外にできることはおそらくないでしょう。繰り返しになりますが、再エンコードは遅すぎるとおっしゃっていますので、おそらく選択肢にはならないでしょう。

圧縮アルゴリズムは、データ内の繰り返しシーケンスに大きく依存します。一般的な方式では、繰り返しシーケンスを短縮するための辞書を作成します。

たとえば、文字列「eabcdabcdabcd」を考えます。

これは、辞書ルール「f = abcd」を設定し、文字列を「efff」として表すことで圧縮できます。

ここで、文字列「abcdefghijkl」を考えてみましょう。

繰り返しシーケンスがないので、辞書アプローチで圧縮することは不可能です。

圧縮ファイル形式では既に多くの重複が削除されているため、さらに圧縮してもメリットは得られないでしょう。場合によっては、圧縮ファイルを圧縮するとサイズが大きくなることがあります (ZIP 形式ではよく知られている現象です)。

答え2

画像やビデオの圧縮は、たとえばテキスト ファイルの圧縮よりも「複雑」です。これは、zip などの通常の圧縮方法では、ご自身でもお気づきのとおり、あまり良い結果が得られないためです (user1258361 のコメントで、この点について少し理解できます)。

解像度を下げることをお勧めします。これは簡単で、サイズを大幅に削減できますが、欠点として、写真やビデオの品質が低下します。CLI(コマンドラインインターフェイス)を介して解像度を下げるためのさまざまなツールがあり、この質問は何度も尋ねられています。画像用はこちら. 検索を開始して試してみてください。特定の問題に遭遇した場合は、(別の)質問をすることができます。注: ハードウェアによっては、これはそれほど高速ではない可能性があります (ただし、「優れた」圧縮アルゴリズムもそうではありません。簡単に言えば、圧縮が高ければ高いほど、より多くの計算が必要になります)。

品質を(大幅に)損なわずに圧縮するのは、画像や動画のコンテンツの品質要件に応じて圧縮方法を選択する必要があるため、より複雑です。ファイルを別の圧縮形式で再エンコードする必要があります。ロスレス圧縮しかし、十分な結果は得られないでしょう。私の知る限り、ここでは一般的な答えはありません。

PS. ソフトウェアの提案は、スーパーユーザーの範囲外です。

関連情報