.mp4 ファイルを最小にするアーカイブ圧縮は何ですか?

.mp4 ファイルを最小にするアーカイブ圧縮は何ですか?

最も小さい .mp4 ビデオを作成できることが知られているアーカイブベースの圧縮形式はありますか?

私が知っている唯一のアーカイブ形式で、1080p 0:12 の長さのビデオをテストしました。

(python3) Joshs-MBP:testing_movie mu$ ls -lS
total 12712
-rw-r--r--  1 mu  staff  2145528 Jun  6 09:26 testing.mov
-rw-r--r--  1 mu  staff  1790044 Jun  6 09:26 testing.mov.zip
-rw-r--r--@ 1 mu  staff  1789512 Jun  6 09:25 testing.mov.gz
-rw-r--r--  1 mu  staff   775138 Jun  6 09:26 testing.mov.bz2

最高のようbzip2です。ファイルを小さくする点で、他に何か良い方法はありますか? 時間がかかっても大丈夫です。

bzip2また、ディレクトリができないことに気付きました。

答え1

まず、用語について少し補足します。ZIPはアーカイブ使用した形式。Gzip と Bzip2 は圧縮形式であり、アーカイブ形式ではありません。もう少し具体的に言うと、

  • アーカイブ形式は、通常、所有権、タイムスタンプ、その他のデータなどのメタデータを含む複数のファイルやディレクトリを1つのファイルに集約します。tarは純粋なアーカイブ形式の例であり、固有の圧縮は行いません。

  • 圧縮形式は単にデータを圧縮するだけであり、本質的には複数のファイルを 1 つに結合するものではありません。Gzip、Bzip2、Brotli、LZ4、LZOP、XZ、PAQ、Zstandard はすべて圧縮形式です。これらの形式の一部 (Gzip や LZ4 など) は、複数のファイルを圧縮して 1 つのファイルに連結し、その後複数の元のファイルに解凍することができます (これはディレクトリを gzip で圧縮するときに発生します)。ただし、パスやその他のメタデータは保存されないため、アーカイブ形式ではありません。

ZIP、7z、RAR などの一部の形式では、アーカイブと圧縮が組み合わされています (ただし、ZIP ではファイルを圧縮せずに保存することもできます)。

さて、その点はこれで終わりにして、あなたの主な質問に移りましょう。

music2myear さんのコメントは正しいです。結果は、使用する MP4 エンコードの正確な詳細によって大きく異なります。これは、MP4 自体にデータ圧縮が含まれており、この場合、知覚される品質を大幅に低下させることなくオーディオとビデオのデータを圧縮するように最適化されているためです。このために使用するプロセスは実際にはやや複雑です (ここで説明するには複雑すぎる)。しかし、知覚される品質を低下させないという制約と、単一の長いストリームとしてではなくフレームごとに圧縮するという事実とを組み合わせると、大幅に改善できる場合があります (テストからわかるように)。

詳しい情報がなければ決定的な答えは出せませんが、ファイル圧縮に関する一般的なアドバイスをいくつか提供することはできます。

  • この場合、ZIP と Gzip は非常に似た結果を示しています。これは、同じ圧縮アルゴリズムのバリエーション、より具体的には DEFLATE として知られる LZW アルゴリズムの派生を使用しているためです。DEFLATE は特に優れた圧縮アルゴリズムではありませんが、広く普及しており (ハードウェア実装さえあります)、比較の基準としてよく使用されます。他のファイル形式 (ZIP など) のコンポーネントとして使用する場合を除いて、ストレージにはあまり広く使用されていません。圧縮アルゴリズムを比較した場合、DEFLATE (または一般的な LZW) に基づくものはほとんどどれも、どの点でも勝てません。

  • 対照的に、Bzip2 は、データをより効率的に圧縮するためにデータに複雑な変換を施し、実際の圧縮にはハフマン コーディングを使用します。ほとんどの場合、DEFLATE ベースのコンプレッサよりも圧縮率は高くなりますが、DEFLATE よりも低速です。ハフマン コーディングの前に入力データを変換する方法に関していくつかの仮定があるため、入力データの構造に対して他の多くのオプションよりもやや敏感です。

  • XZ は、LZMA と呼ばれる別のアルゴリズムを使用します。DEFLATE の派生元である LZW アルゴリズムと同様に、LZMA は最終的には LZ77 と呼ばれるアルゴリズムから派生したものですが、DEFLATE ベースのオプションよりも非常に優れた圧縮率を実現し、ほとんどの場合、Bzip2 よりも大幅に優れた圧縮率を実現します。LZMA に加えて、他のオプションよりも実行可能ファイルの圧縮率を少し向上させる変換もいくつか行います。ただし、その代償として、データの圧縮に長い時間がかかります。7zip も LZMA を使用しますが、データ変換は行わないため、圧縮率の点では XZ ほど優れていないことがよくあります。

  • LZOP は LZO アルゴリズムを使用し、一般的には DEFLATE よりも圧縮率は低くなりますが、はるかに高速に動作します。Gzip と同様に、圧縮率やパフォーマンスがより高い代替手段が好まれる傾向があるため、LZOP はもはや広く使用されていません。

  • LZ4 は Google が開発した新しい標準で、非常に高速 (解凍時のメモリ帯域幅に近い速度) ですが、LZO よりも圧縮率がさらに悪くなります。LZO を使用していたほとんどのものが速度を重視して LZ4 を使用したため、徐々に LZO に取って代わられつつあります。

  • Brotli は、Google のもう 1 つの新しい圧縮形式です。これは HTTP/2 標準の一部であり、ストリーミング用に特に最適化されており、DEFLATE ベースのオプションよりも優れた圧縮率とパフォーマンスを実現できます。ただし、プレーン ファイル圧縮では広くサポートされていないため、使用目的によっては実行可能なオプションではない可能性があります。

  • PAQは、圧縮率を最大化することに非常にこだわる人向けです。複雑な統計モデルの組み合わせを使用して、非常に優れた圧縮率を実現します(元のデータによっては、PAQで圧縮されたファイルが1/10未満圧縮率は元のサイズの1/2程度ですが、DEFLATEでは平均して1/2程度になります。もちろん、圧縮に非常に長い時間がかかるというデメリットもあります。何でもPAQ で圧縮します。高圧縮設定では、サンプル ビデオを PAQ で圧縮するには少なくとも 30 分はかかるでしょう。時間がかかるため、PAQ を使用する人はほとんどいません。また、使用する少数の人も、アーカイブ目的以外ではほとんど使用しません (つまり、変更する可能性が低いファイルにのみ使用します)。

  • Zstandard は最も新しいもので、Facebook によって開発されました。古い方法と新しい方法 (一部の機械学習技術を含む) を組み合わせて使用​​し、bzip2 と同等かそれ以上の圧縮率 (場合によっては XZ よりも高い) を実現しながら、LZ4 を除く私がリストした他のほとんどの方法よりも大幅に高速に動作します。おそらく、あなたの用途では XZ に勝てないでしょう (そして PAQ に勝てることは絶対にないでしょう) が、大幅に優れたパフォーマンスに見合うだけの十分な圧縮率が得られるかもしれません。

関連情報