この記事の本文を始める前に、まず ffmpeg プログラムをインストールする必要があります (Linux では x264 エンコーディングもインストールする必要があります)。 Mac で brew を使用して直接インストールします。 brew ffmpeg をインストールします --with-faac --with-fdk-aac --with-ffplay --with-fontconfig --with-freetype --with-libass --with-libbluray --with-libcaca --with-libsoxr --with-libquvi --with-frei0r --with-libvidstab --with-libvorbis --with-libvpx --with-opencore-amr --with-openjpeg --with-openssl --with-opus --with-rtmpdump --with-schroedinger --with-speex --with-theroa --with-tools --with-x265 インストール後、ffmpeg コマンドを使用して MP4 ファイルを圧縮できます。 ffmpeg -i MVI_7274.MOV -vcodec libx264 -preset fast -crf 20 -y -vf "scale=1920:-1" -acodec libmp3lame -ab 128k a.mp4 パラメータの説明は次のとおりです (https://vistb.net/2012/02/x264-video-compress-intro/ から変更)。 -preset: エンコード設定を指定します。 x264 エンコード アルゴリズムには、設定可能なパラメータが多数あります。パラメータ値が異なるとエンコード速度が大きく異なり、品質にも影響する場合があります。ユーザーがアルゴリズムを理解して手動でパラメータを設定する手間を省きます。 x264 はいくつかのプリセット値を提供しており、プリセットで指定できます。プリセットは、ultrafast、superfast、veryfast、faster、fast、medium、slow、slower、veryslow、placebo です。 Ultrafast はエンコード速度が最も速いですが、圧縮率が低く、生成されるファイルサイズが大きくなります。一方、Placebo はその逆です。 x264 で使用されるデフォルト値は medium です。プリセットは主にエンコード速度に影響し、エンコード結果の品質には大きな影響を与えないことに注意してください。 HD ムービーを圧縮する場合、通常は slow または slower を使用します。マシンの性能が非常に優れている場合は veryslow を使用できますが、通常、それほど大きなメリットはありません。 -crf: これは最も重要なオプションで、出力ビデオの品質を指定するために使用されます。値の範囲は 0 ~ 51 で、デフォルト値は 23 です。数値が小さいほど、出力ビデオの品質が高くなります。このオプションは、出力ビデオのビット レートに直接影響します。一般的に言えば、480p を圧縮する場合は約 20、720p を圧縮する場合は 16 ~ 18 を使用しますが、1080p は試していません。個人的には、通常の状況では 16 未満にする必要はないと考えています。最善の方法は、いくつかの値をそれぞれ数分間試して、最終的な出力品質とファイル サイズを確認し、ニーズに応じて選択することです。 実際、-b 1024k のようなパラメータもあるのですが、-crf が設定されると -b は役に立たないことがわかりました。私の簡単な試みによると、5D2 で撮影した 18 秒間の 1920x1080 ビデオ (午後の自然光、シンプルな画像、大きな白い壁、黒いドアが 1 つだけ) の crf と圧縮ファイル サイズの関係は次のとおりです。
crf が 20、28、32 のときのビデオ品質を比較したところ、32 でも品質が低下していることがわかりました。20 は確かに非常に優れていますが、28 と 20 の違いはそれほど大きくありません。crf 値を 26 ~ 28 に設定するのが適切です。サイズに要件がある場合は、そのままにしてデフォルト値 (おそらく 31) を使用できます。 また、プリセットに関して、低速と高速は実行時間のみに関係します。低速の実行時間は高速の実行時間よりもはるかに長くなります。低速で生成された mp4 ファイルは小さくなり (12M)、高速で生成されたファイルは大きくなります (14M) が、ビデオ品質の違いは明らかではありません。 元のビデオ サイズを 1920x1080 から 960x540 に縮小すると、ビデオ サイズは次のようになります。
まとめると、品質に対する要件が高い場合は 22 以下を選択します。サイズに対する要件が非常に高い場合は 26 を選択します (ただし、品質はわずかに低下します)。それ以外の場合は 24 の方がコスト効率が高く (またはデフォルトの 23 でも問題ありません)、サイズに対する要件が非常に高い場合は 28 以上を選択します。 追記(@gghyooより) 以下にいくつか例を挙げます。 ffmpeg -threads 2 -crf 20 -y -i ML-02.avi -strict 実験的 ML-02.mp4 要約する 上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に一定の参考学習価値を持つことを願っています。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM を応援していただきありがとうございます。 以下もご興味があるかもしれません:
|
<<: MYSQLは、ショッピングカートに追加する際に重複追加を防ぐためのサンプルコードを実装します。
>>: CocosCreator システムイベントがどのように生成され、トリガーされるかについての詳細な説明
ページに複数の画像を導入すると、画像のサイズがばらつくことがあります。しかし、それらを一貫したサイズ...
1. まずは効果を見てみましょうインターフェース要求によって返されるデータ: 2. 公式ログインフロ...
1. インデックスの利点と欠点利点: 高速検索、高速グループ化および並べ替えデメリット: ストレージ...
JavaScriptの日付エフェクトの具体的なコードは参考用です。具体的な内容は次のとおりです。コー...
ストアドプロシージャとは簡単に言えば、これは強力で、JAVA 言語のメソッドに似た比較的複雑な論理関...
優れた HTML コードは美しい Web サイトの基礎となります。私が CSS を教えるときは、まず...
MySQL の遅いクエリの説明MySQL スロー クエリ ログは、MySQL が提供するログ レコー...
フレックス レイアウトは間違いなくシンプルで使いやすいです。レイアウトをよりシンプルかつ高速にします...
Tomcat サーバーは、無料でオープン ソースの Web アプリケーション サーバーです。軽量のア...
この記事は主にSQLシリアル番号取得コード例を紹介します。記事ではサンプルコードを詳細に紹介しており...
MySQL をインストールするための前提条件: CentOS 7 64 ビットをインストールし、Ce...
関数を記述できます。主に正規表現を使用して判断を行います。入力文字が空の場合は、「-」を使用して置き...
1. 背景1. フロントエンドはvue + vuex + socket.io-clientを使用しま...
元のコード: center.html : <!DOCTYPE html> <htm...
面接では、次のようなシナリオを経験する必要があります。インタビュアー: 「MySQL を使用したこと...