web-dev-qa-db-ja.com

HEVCのFFmpegエンコーディングでビット深度を設定しますか?

FFmpegは supporting x265の10ビットおよび12ビットエンコードですが、それらのビット深度でエンコードするための適切なコマンドラインオプションが見つかりませんでした。

誰かがそのオプションを指定できますか?

5
Danial Behzadi

適切に構成された最新バージョンのFFmpegおよびx265がある場合(Zesty Zapus 17.04の下のリポジトリFFmpegはこのカテゴリに該当します)、8、10、および12ビットのエンコーディングがかなりあります簡単です。

以下にそれぞれのコマンドラインの例を示します。

1。 FFmpegを使用した8ビットHEVCエンコード...

次のように、インストールされているバージョンのx265の8ビットエンコーディングの機能を確認します。

andrew@illium~$ x265 -V
x265 [info]: HEVC encoder version 2.4
x265 [info]: build info [Linux][GCC 7.1.0][64 bit] 8bit+10bit+12bit
x265 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX XOP FMA4 FMA3 LZCNT BMI1
andrew@illium~$ 

ここで、自分のコピーには8 | 10 | 12ビットエンコーディングの機能があることがわかります。このバージョンのx265に対してコンパイルされたFFmpegをインストールすると、次のコマンドで適切な8ビットエンコードを生成できます。

ffmpeg -i input.mp4 \
       -c:v libx265 -preset medium -crf 28 -pix_fmt yuv420p \
       -c:a aac -b:a 128k \
       output_8bit.mp4

もちろん、特定のニーズに合わせてこれらの設定を変更できます...

2。 FFmpegを使用した10ビットHEVCエンコード...

次のように、インストールされているバージョンのx265の10ビットエンコーディングの機能を確認します。

andrew@illium~$ x265 -V -D10
x265 [info]: HEVC encoder version 2.4
x265 [info]: build info [Linux][GCC 7.1.0][64 bit] 10bit
x265 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX XOP FMA4 FMA3 LZCNT BMI1
andrew@illium~$ 

ここでは、自分のコピーに10ビットエンコーディングの機能があることがわかります。このバージョンのx265に対してコンパイルされたFFmpegをインストールすると、次のコマンドで適切な10ビットエンコードを生成できます。

ffmpeg -i input.mp4 \
       -c:v libx265 -preset medium -crf 28 -pix_fmt yuv420p10le \
       -c:a aac -b:a 128k \
       output_10bit.mp4

そして、これであなたが見えるはずです...

3。 FFmpegを使用した12ビットHEVCエンコード...

次のように、インストールされているバージョンのx265の12ビットエンコーディングの機能を確認します。

andrew@illium~$ x265 -V -D12
x265 [info]: HEVC encoder version 2.4
x265 [info]: build info [Linux][GCC 7.1.0][64 bit] 12bit
x265 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX XOP FMA4 FMA3 LZCNT BMI1
andrew@illium~$ 

ここでは、自分のコピーに12ビットエンコーディングの機能があることがわかります。このバージョンのx265に対してコンパイルされたFFmpegをインストールすると、次のコマンドで適切な12ビットエンコードを生成できます。

ffmpeg -i input.mp4 \
       -c:v libx265 -preset medium -crf 28 -pix_fmt yuv420p12le  \
       -c:a aac -b:a 128k \
       output_12bit.mp4

もう一度補助パラメーターのいくつかを使用した実験により、正確な結果が得られるはずです...

注:

  1. (重要な-pix_fmt FFmpeg設定の)どのピクセル形式がFFmpegとlibx265のyourコピーでサポートされているかわからない場合、次のコマンドで詳細が表示されます。

     ffmpeg -h encoder=libx265 2>/dev/null | grep pixel 
    
  2. FFmpegおよびH.265エンコーディングガイド :FFmpegを使用したHEVCエンコーディングに関する基本情報、8 | 10 | 12ビットエンコーディングに関する情報はありません...

  3. Zesty Zapus(17.04)には、少し古いが完全に構成されたx265があります。

      andrew@ilium:~$ x265 -V
      x265 [info]: HEVC encoder version 2.3
      x265 [info]: build info [Linux][GCC 6.3.0][64 bit] 8bit+10bit+12bit
      x265 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX LZCNT
      andrew@ilium:~$ 
    

    したがって、3つの可能なビット深度すべてにエンコードできます...

6
andrew.46