web-dev-qa-db-ja.com

ロスレスユニバーサルビデオ形式

私は1280x720 25fpsビデオに最適なlosslessビデオ形式を見つけようとしています。ビデオは4分です。音は320 kbps mp3になりますが、大したことではありません。理想的な条件:

  • ロスレス(知覚的にロスレスになる可能性があります)
  • コンテナ+コーデックはほとんどのプラットフォームで再生できます
  • コンテナ+コーデックは、最新のDVDプレーヤーで再生できます(DVD以外のフォーマットをサポート)
  • サイズが700 MB未満です

それは可能ですか?満足のいく結果が得られずに、3日間苦労してきました。12GBのファイルを取得することもできます(多くの場合、3 GB /分)。

15
mrkva

私が知る限り、実際に数学的に損失のない最高の形式はhuffyuvですが、これは陽気に巨大なファイルを生成し、多くのファイルと互換性がありません。参考までに、ffmpegは次のように実行できます。

ffmpeg -i input -c:v huffyuv -c:a libmp3lame -b:a 320k output.avi

オープンソースのh.264エンコーダーであるX264には、ロスレスモードがあります。これはMP4コンテナの内部に入る可能性があり、過去数年間に作られたほとんどのハードウェアと互換性があるはずです。最初のコマンドは、高速のエンコード速度を提供しますが、ファイルが大きくなります。 2番目のコマンドの方がはるかに時間がかかりますが、ファイルは高速にエンコードされたものの約半分のサイズである必要があります(ただし、ファイルはかなり大きくなります)。

ffmpeg -i input -c:v libx264 -crf 0 -preset ultrafast -c:a libmp3lame -b:a 320k output.mp4

ffmpeg -i input -c:v libx264 -crf 0 -preset veryslow -c:a libmp3lame -b:a 320k output.mp4

それでも十分に小さいファイルが得られない場合、CRF 18は一般に「視覚的にロスレス」と見なされます。

ffmpeg -i input -c:v libx264 -crf 18 -preset veryfast -c:a libmp3lame -b:a 320k output.mp4

私は通常、x264でエンコードするための非常に高速なプリセットをお勧めします。私の経験では、最高の速度/サイズのトレードオフを提供します(超高速と非常に高速の間でファイルサイズに大きな低下があり、それよりも遅く、より増分的です)。一般的なアドバイスは、処理できる最も遅いプリセットを使用することです。プリセットは、超高速、超高速、超高速、高速、高速、中速、低速、低速、超低速です。

X264エンコーディングの詳細なガイドについては、 こちら を参照してください。

24
evilsoup

最近は好き webm

ffmpeg -i input.avi -c:v libvpx-vp9 -lossless 1 output.webm

マルチコアプロセッサで高速に変換するには、実際のコアよりも1つ少ないスレッドを使用することをお勧めします。したがって、8コアでは、次のように7つのスレッドを指定できます。

ffmpeg -i input.avi -c:v libvpx-vp9 -threads 7 -lossless 1 output.webm
2
LonnieBest