最小の.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
できないことに気付きました。
まず、用語についての副次的事項:Zipは、使用した唯一のarchive形式です。 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と同じように、人々はより良い圧縮率またはより優れたパフォーマンスを提供する代替手段を好む傾向があるため、Gzipはもはや広く使用されていません。
LZ4は、Googleによって開発された新しい標準であり、非常に高速で実行されますが(解凍ではメモリ帯域幅の速度に近い)、LZOよりも圧縮率がさらに低下します。 LZOを使用していたもののほとんどが速度を上げるために、LZOに取って代わっています。
BrotliはGoogleからのもう1つの新しいものです。これはHTTP/2標準の一部であり、特にストリーミング用に最適化されており、実際にはDEFLATEベースのオプションよりも優れた圧縮率とパフォーマンスの両方を実現できます。ただし、プレーンファイルの圧縮では広くサポートされていないため、実際の使用には適さない場合があります。
PAQは、圧縮率の最大化について本当にめちゃくちゃ心配している人のためのものです。それは統計モデルの複雑な組み合わせを使用して、絶対に大げさな圧縮率を達成します(元のデータに応じて、PAQで圧縮されたファイルが1/10未満元のサイズになることは珍しくありませんが、DEFLATE平均は1/2に近くなります)。もちろん、これのコストは、PAQでanythingを圧縮するのに非常に長い時間がかかることです。高圧縮設定では、PAQでそのサンプルビデオを圧縮するのに少なくとも30分かかる可能性があります。時間がかかるため、PAQを使用する人はほとんどいません。また、アーカイブ以外の目的で使用することはほとんどありません(つまり、変更する可能性が低いファイルでのみ使用します)。
Zstandardは最新のロットであり、Facebookによって開発されました。古い方法と新しい方法(一部の機械学習手法を含む)を組み合わせて使用し、bzip2と同等かそれ以上(時にはXZよりもさらに良い)の圧縮率を実現しながら、他のほとんどの方法よりも大幅に高速に実行しますLZ4を除く。それはおそらくあなたの使用法ではXZに勝るものはありません(そして間違いなくPAQに勝るものはありません)が、大幅に優れたパフォーマンスがそれに値するほど十分な比率を得る可能性があります。