# エンコード設定の指定方法
[レイアウト機能](./layout.md) で指定する JSON ファイルでは、
合成後の映像や音声をエンコードするコーデックやエンコードパラメーターを指定することができます。
エンコードコーデックやパラメーターによって、合成結果の品質やサイズ、
合成の要する時間が大きく変わる可能性があるため、
Hisui を最大限活用するためには、これらを適切に指定することが重要です。
実際に利用可能なコーデックは、Hisui のビルド方法や実行環境で変わりますが、
[`hisui list-codecs`](./command_list_codecs.md) コマンドで一覧を取得することができます。
なお [`hisui tune`](./command_tune.md) コマンドを利用することで、
適切なエンコードパラメーターをある程度自動で調整することができます。
## 音声エンコードコーデックの指定
合成後の音声のエンコードコーデックは、以下のように `audio_codec` フィールドで指定できます。
```json
{
"audio_codec": "OPUS",
"audio_sources": ["archive-*.json"]
}
```
`audio_codec` で指定可能な値は以下の通りです:
- `"OPUS"`: Opus音声コーデック(デフォルト)
- `"AAC"`: AAC音声コーデック
### 注意
`"AAC"` は、以下のいずれかの条件を満たしている場合にのみ指定可能です:
- macOS 用にビルドされた Hisui(Apple Audio Toolboxの AAC エンコーダーが使用されます)
- FDK-AAC を有効にしてビルドされた Hisui
公開されているビルド済みバイナリは FDK-AAC には対応していません。
FDK-AAC を利用する場合は、[ビルド方法](build.md) を参考にして、自前でのビルドを行ってください。
## 音声エンコードビットレートの指定
映像とは異なり、音声はエンコード時のパラメーターが少なく、
エンコードビットレートのみが指定可能となっています。
エンコードビットレートは、以下のように `audio_bitrate` フィールドで bps 単位で指定します。
```json
{
"audio_codec": "OPUS",
"audio_bitrate": 65536,
"audio_sources": ["archive-*.json"]
}
```
`audio_bitrate` のデフォルト値は 65536 です。
## 映像エンコードコーデックの指定
合成後の映像のエンコードコーデックは、レイアウト JSON の `video_codec` フィールドで指定できます。
```json
{
"video_codec": "VP8",
"video_layout": {
"main": {
"video_sources": ["archive-*.json"]
}
}
}
```
`video_codec` で指定可能な値は以下の通りです:
- `"VP8"`: VP8 映像コーデック
- `"VP9"`: VP9 映像コーデック(デフォルト)
- `"H264"`: H.264 映像コーデック
- `"H265"`: H.265 映像コーデック
- `"AV1"`: AV1 映像コーデック
### 注意
`"H264"` は、以下のいずれかの条件を満たしている場合にのみ指定可能です:
- **macOS 用にビルドされた Hisui**: Apple Video Toolbox の H.264 エンコーダーが使用されます
- **OpenH264 オプション指定時**: [`hisui compose`](command_compose.md) などのコマンドで `--openh264` オプションや `HISUI_OPENH264_PATH` 環境変数が指定された場合
- **nvcodec 対応時**: nvcodec に対応してビルドされた Hisui では NVIDIA Video Codec SDK の H.264 エンコーダーが使用されます
`"H265"` は、以下のいずれかの条件を満たしている場合にのみ指定可能です:
- **macOS 用にビルドされた Hisui**: Apple Video Toolbox の H.265 エンコーダーが使用されます
- **nvcodec 対応時**: nvcodec に対応してビルドされた Hisui では NVIDIA Video Codec SDK の H.265 エンコーダーが使用されます
`"AV1"` は、以下のいずれかの条件を満たしている場合にのみ指定可能です:
- **SVT-AV1 対応時**: SVT-AV1 に対応してビルドされた Hisui では SVT-AV1 エンコーダーが使用されます
- **nvcodec 対応時**: nvcodec に対応してビルドされた Hisui では NVIDIA Video Codec SDK の AV1 エンコーダーが使用されます
なお自前で Hisui のビルドを行う場合には、nvcodec はデフォルトでは無効になっています。
有効にする方法は [ビルド方法](build.md) をご参照ください。
ubuntu-24.04_x86_64 向けのビルド済みバイナリでは nvcodec が有効になっています(CUDA がない環境では実行時に無効になります)。
## 映像エンコードビットレートの指定
映像エンコードビットレートは、レイアウト JSON の `video_bitrate` フィールドで bps 単位で指定できます。
```json
{
"video_codec": "VP8",
"video_bitrate": 1048576,
"video_layout": {
"main": {
"video_sources": ["archive-*.json"]
}
}
}
```
`video_bitrate` のデフォルト値は `映像ソースの数 * 200 * 1024` です。
### 注意
[レガシー版の Hisui](./migrate_hisui_legacy.md) との互換性維持のため、`bitrate` フィールド(kbps単位)も利用可能ですが、両方が指定された場合には `video_bitrate` が優先されます。
## 映像エンコーダー固有のパラメーターセットの指定
Hisui は映像のエンコーダーとして、以下をサポートしています:
- **libvpx**: VP8 / VP9 用のエンコーダー
- **OpenH264**: H.264 用のエンコーダー
- **SVT-AV1**: AV1 用のエンコーダー
- **Apple Video Toolbox**: macOS で利用可能な H.264 / H.265 用のエンコーダー
- **NVIDIA Video Codec SDK**: CUDA対応GPU で利用可能な H.264 / H.265 / AV1 用のハードウェアエンコーダー
映像エンコーダーの種類とエンコードコーデックの組み合わせによって、指定可能なパラメーターセットは変わります。
例えば `libvpx` エンコーダーで `VP8` コーデックでエンコードを行う場合のパラメーターセットは、
以下のように、`libvpx_vp8_encode_params` をキーとした JSON オブジェクトを使って指定します:
```json
{
"video_codec": "VP8",
"libvpx_vp8_encode_params": {
"cpu_used": 4,
"min_quantizer": 4,
"max_quantizer": 56
}
}
```
エンコーダー固有パラメーターセット用のキーの一覧は以下の通りです:
- `libvpx_vp8_encode_params`: libvpx で VP8 エンコードを行う際のパラメーターセット
- `libvpx_vp9_encode_params`: libvpx で VP9 エンコードを行う際のパラメーターセット
- `openh264_encode_params`: OpenH264 で H.264 エンコードを行う際のパラメーターセット
- `svt_av1_encode_params`: SVT-AV1 で AV1 エンコードを行う際のパラメーターセット
- `video_toolbox_h264_encode_params`: Apple Video Toolbox で H.264 エンコードを行う際のパラメーターセット
- `video_toolbox_h265_encode_params`: Apple Video Toolbox で H.265 エンコードを行う際のパラメーターセット
- `nvcodec_h264_encode_params`: NVIDIA Video Codec SDK で H.264 エンコードを行う際のパラメーターセット
- `nvcodec_h265_encode_params`: NVIDIA Video Codec SDK で H.265 エンコードを行う際のパラメーターセット
- `nvcodec_av1_encode_params`: NVIDIA Video Codec SDK で AV1 エンコードを行う際のパラメーターセット
以降では、それぞれの詳細を説明します。
なお、デフォルトで使用されるエンコードパラメーターは [layout-examples/compose-default.jsonc](../layout-examples/compose-default.jsonc) にも記載されています。
### `libvpx_vp8_encode_params` で指定可能なパラメーターセット
`libvpx` で VP8 エンコードを行う際に指定可能なパラメーターは以下の通りです。
なお、本ドキュメントでの各パラメーターについての説明などは参考程度のものとなっております。
正確な情報については、本家のドキュメントやソースコードを参照してください。
### 基本的なエンコーダーパラメーター
- `min_quantizer` (整数値): 最小量子化パラメーター値
- デフォルト値: 26
- 指定可能な範囲: 0 〜 63
- `max_quantizer` (整数値): 最大量子化パラメーター値
- デフォルト値: 40
- 指定可能な範囲: 0 〜 63
- `cq_level` (整数値): 固定品質エンコード時の品質レベル
- デフォルト値: 5
- 指定可能な範囲: 0 〜 63
- `cpu_used` (整数値): エンコード速度と品質のバランス調整
- デフォルト値: 1
- 指定可能な範囲: 0 〜 16
- 値が大きいほど高速だが品質が低下
### エンコード制御パラメーター
- `deadline` (文字列): エンコード期限設定
- デフォルト値: `"realtime"`
- 指定可能な値: `"best"`, `"good"`, `"realtime"`
- `rate_control` (文字列): レート制御モード
- デフォルト値: `"cbr"`
- 指定可能な値: `"vbr"`, `"cbr"`, `"cq"`
- `lag_in_frames` (整数値): 先読みフレーム数
- デフォルト値: 6
- 指定可能な範囲: 1 〜 25
- `threads` (整数値): エンコードに使用するスレッド数
- デフォルト値: 1
- 指定可能な範囲: 1 〜 システムに依存
- `error_resilient` (真偽値): エラー耐性モードの有効化
- デフォルト値: `false`
- `keyframe_interval` (整数値): キーフレーム間隔
- デフォルト値: 300
- 指定可能な範囲: 1 以上の値
### VP8 固有のパラメーター
- `noise_sensitivity` (整数値): ノイズ感度設定
- デフォルト値: 0
- 指定可能な範囲: 0 〜 6
- `static_threshold` (整数値): 静的領域検出閾値
- デフォルト値: 957
- 指定可能な範囲: 0 以上の値
- `token_partitions` (整数値): トークン分割数
- デフォルト値: 0
- 指定可能な範囲: 0 〜 3
- `max_intra_bitrate_pct` (整数値): イントラフレームの最大ビットレート(%)
- デフォルト値: 6668
- 指定可能な範囲: 0 以上の値
- `arnr_config` (オブジェクト): Altref Noise Reduction 設定
- `max_frames` (整数値): 最大フレーム数
- デフォルト値: 1(必須項目)
- 指定可能な範囲: 0 以上の値
- `strength` (整数値): フィルター強度
- デフォルト値: 4(必須項目)
- 指定可能な範囲: 0 以上の値
- `filter_type` (整数値): フィルタータイプ
- デフォルト値: 2(必須項目)
- 指定可能な値: 正の整数値
### `libvpx_vp9_encode_params` で指定可能なパラメーターセット
`libvpx_vp9_encode_params` で指定可能なパラメーターセットは以下の通りです。
なお、本ドキュメントでの各パラメーターについての説明などは参考程度のものとなっております。
正確な情報については、本家のドキュメントやソースコードを参照してください。
## 基本的なエンコーダーパラメーター
- `min_quantizer` (整数値): 最小量子化パラメーター値
- デフォルト値: 15
- 指定可能な範囲: 0 〜 63
- `max_quantizer` (整数値): 最大量子化パラメーター値
- デフォルト値: 43
- 指定可能な範囲: 0 〜 63
- `cq_level` (整数値): 固定品質エンコード時の品質レベル
- デフォルト値: 33
- 指定可能な範囲: 0 〜 63
- `cpu_used` (整数値): エンコード速度と品質のバランス調整
- デフォルト値: 9
- 指定可能な範囲: 0 〜 9
- 値が大きいほど高速だが品質が低下
## エンコード制御パラメーター
- `deadline` (文字列): エンコード期限設定
- デフォルト値: `"realtime"`
- 指定可能な値: `"best"`, `"good"`, `"realtime"`
- `rate_control` (文字列): レート制御モード
- デフォルト値: `"cq"`
- 指定可能な値: `"vbr"`, `"cbr"`, `"cq"`
- `lag_in_frames` (整数値): 先読みフレーム数
- デフォルト値: 16
- 指定可能な範囲: 1 〜 25
- `threads` (整数値): エンコードに使用するスレッド数
- デフォルト値: 1
- 指定可能な範囲: 1 〜 システムに依存
- `error_resilient` (真偽値): エラー耐性モードの有効化
- デフォルト値: `false`
- `keyframe_interval` (整数値): キーフレーム間隔
- デフォルト値: 300
- 指定可能な範囲: 1 以上の値
## VP9 固有のパラメーター
- `aq_mode` (整数値): 適応量子化モード
- デフォルト値: 3
- 指定可能な範囲: 0 〜 3
- `noise_sensitivity` (整数値): ノイズ感度設定
- デフォルト値: 2
- 指定可能な範囲: 0 〜 6
- `tile_columns` (整数値): タイル分割の列数(log2値)
- デフォルト値: 5
- 指定可能な範囲: 0 〜 6
- `tile_rows` (整数値): タイル分割の行数(log2値)
- デフォルト値: 1
- 指定可能な範囲: 0 〜 2
- `row_mt` (真偽値): 行単位マルチスレッドの有効化
- デフォルト値: `false`
- `frame_parallel_decoding` (真偽値): フレーム並列デコーディングの有効化
- デフォルト値: `false`
- `tune_content` (文字列): コンテンツタイプ最適化設定
- デフォルト値: `"default"`
- 指定可能な値: `"default"`, `"screen"`
### `openh264_encode_params` で指定可能なパラメーターセット
`openh264` で H.264 エンコードを行う際に指定可能なパラメーターは以下の通りです。
なお、本ドキュメントでの各パラメーターについての説明などは参考程度のものとなっております。
正確な情報については、本家のドキュメントやソースコードを参照してください。
#### 基本的なエンコーダーパラメーター
- `thread_count` (整数値): エンコードに使用するスレッド数
- デフォルト値: 1
- 指定可能な範囲: 1 〜 16
- `intra_period` (整数値): Intraフレーム間隔
- デフォルト値: 300
- 指定可能な範囲: 1 〜 1000
#### 品質制御パラメーター
- `max_qp` (整数値): 最大量子化パラメーター値
- デフォルト値: 39
- 指定可能な範囲: 1 〜 51
- `min_qp` (整数値): 最小量子化パラメーター値
- デフォルト値: 19
- 指定可能な範囲: 1 〜 51
- `complexity_mode` (文字列): エンコード複雑度モード
- デフォルト値: `"low"`
- 指定可能な値: `"low"`, `"medium"`, `"high"`
#### エンコード制御パラメーター
- `entropy_coding` (真偽値): エントロピー符号化の有効化(CABAC/CAVLC選択)
- デフォルト値: `false`
- `false`: CAVLC(高速)、`true`: CABAC(高効率)
- `ref_frame_count` (整数値): 参照フレーム数
- デフォルト値: なし(省略可能)
- 指定可能な範囲: 1 〜 16
- `spatial_layers` (整数値): 空間レイヤー数
- デフォルト値: なし(省略可能)
- 指定可能な範囲: 1 〜 4
- `temporal_layers` (整数値): 時間レイヤー数
- デフォルト値: なし(省略可能)
- 指定可能な範囲: 1 〜 4
#### レート制御パラメーター
- `rate_control_mode` (文字列): レート制御モード
- デフォルト値: `"timestamp"`
- 指定可能な値:
- `"off"`: レート制御無効(最高速)
- `"quality"`: 品質優先モード
- `"bitrate"`: ビットレート優先モード
- `"timestamp"`: タイムスタンプ基準モード
#### 前処理機能パラメーター
- `denoise` (真偽値): ノイズ除去の有効化
- デフォルト値: `false`
- `background_detection` (真偽値): 背景検出の有効化
- デフォルト値: `true`
- `adaptive_quantization` (真偽値): 適応量子化の有効化
- デフォルト値: `false`
- `scene_change_detection` (真偽値): シーンチェンジ検出の有効化
- デフォルト値: `false`
- `deblocking_filter` (真偽値): デブロッキングフィルターの有効化
- デフォルト値: `false`
- `long_term_reference` (真偽値): 長期参照フレームの有効化
- デフォルト値: `false`
#### スライスモード設定
- `slice_mode` (オブジェクト): スライス分割方法の設定
- `type` (文字列): スライスモードのタイプ(必須)
- デフォルト値: `"single"`
- 指定可能な値:
- `"single"`: 単一スライス(最高速)
- `"fixed_count"`: 固定スライス数
- `"size_constrained"`: サイズ制限スライス
- `count` (整数値): `"fixed_count"` モード時のスライス数
- 指定可能な範囲: 1 〜 16
- `size` (整数値): `"size_constrained"` モード時の最大サイズ(バイト単位)
- 指定可能な範囲: 1 〜 1000000
## `svt_av1_encode_params` で指定可能なパラメーターセット
`SVT-AV1` で AV1 エンコードを行う際に指定可能なパラメーターは以下の通りです。
なお、本ドキュメントでの各パラメーターについての説明などは参考程度のものとなっております。
正確な情報については、本家のドキュメントやソースコードを参照してください。
### 品質・速度制御パラメーター
- `enc_mode` (整数値): エンコード速度と品質のバランス調整
- デフォルト値: 13
- 指定可能な範囲: 0 〜 13
- 値が小さいほど高品質だが低速、値が大きいほど高速だが品質が低下
- `qp` (整数値): 量子化パラメーター値
- デフォルト値: 46
- 指定可能な範囲: 0 〜 63
- `min_qp_allowed` (整数値): 最小量子化パラメーター値
- デフォルト値: 12
- 指定可能な範囲: 1 〜 20
- `max_qp_allowed` (整数値): 最大量子化パラメーター値
- デフォルト値: 50
- 指定可能な範囲: 35 〜 63
### レート制御パラメーター
- `rate_control_mode` (文字列): レート制御モード
- デフォルト値: `"vbr"`
- 指定可能な値: `"vbr"`, `"cbr"`
- `over_shoot_pct` (整数値): ビットレート超過許可率(%)
- デフォルト値: 51
- 指定可能な範囲: 0 〜 100
- `under_shoot_pct` (整数値): ビットレート不足許可率(%)
- デフォルト値: 75
- 指定可能な範囲: 0 〜 100
### GOP・フレーム構造パラメーター
- `intra_period_length` (整数値): イントラフレーム間隔
- デフォルト値: 300
- 指定可能な範囲: -1 〜 1000
- -1 を指定するとイントラフレームが最初のフレームのみになります
- `hierarchical_levels` (整数値): 階層レベル数
- デフォルト値: 3
- 指定可能な範囲: 2 〜 5
- `pred_structure` (整数値): 予測構造
- デフォルト値: なし(省略可能)
- 指定可能な値: 1, 2
- `scene_change_detection` (真偽値): シーンチェンジ検出の有効化
- デフォルト値: `false`
- `look_ahead_distance` (整数値): 先読みフレーム数
- デフォルト値: 13
- 指定可能な範囲: 0 〜 120
### 並列処理パラメーター
- `pin_threads` (整数値): スレッドピニング設定
- デフォルト値: 1
- 指定可能な範囲: 0 〜 128
- `tile_columns` (整数値): タイル分割の列数
- デフォルト値: なし(省略可能)
- 指定可能な範囲: 1 〜 6
- `tile_rows` (整数値): タイル分割の行数
- デフォルト値: なし(省略可能)
- 指定可能な範囲: 1 〜 6
- `target_socket` (整数値): ターゲットソケット設定
- デフォルト値: なし(省略可能)
- 指定可能な範囲: -1 〜 1
### フィルタリングパラメーター
- `enable_dlf_flag` (真偽値): デブロッキングループフィルターの有効化
- デフォルト値: `false`
- `cdef_level` (整数値): CDEF(Constrained Directional Enhancement Filter)レベル
- デフォルト値: -1
- 指定可能な範囲: -1 〜 4
- `enable_restoration_filtering` (真偽値): 復元フィルタリングの有効化
- デフォルト値: `false`
### 高度な設定パラメーター
- `enable_tf` (真偽値): Temporal Filtering の有効化
- デフォルト値: `true`
- `enable_overlays` (真偽値): オーバーレイの有効化
- デフォルト値: `false`
- `film_grain_denoise_strength` (整数値): フィルムグレインノイズ除去強度
- デフォルト値: 0
- 指定可能な範囲: 0 〜 50
- `enable_tpl_la` (真偽値): TPL Look Ahead の有効化
- デフォルト値: `false`
- `force_key_frames` (真偽値): キーフレーム強制挿入の有効化
- デフォルト値: `false`
- `stat_report` (真偽値): 統計レポート出力の有効化
- デフォルト値: `false`
- `recon_enabled` (真偽値): 再構成フレーム出力の有効化
- デフォルト値: なし(省略可能)
### エンコーダー固有設定パラメーター
- `tier` (整数値): エンコーダーティア設定
- デフォルト値: 1
- 指定可能な範囲: 0 〜 1
- `fast_decode` (真偽値): 高速デコードモードの有効化
- デフォルト値: `false`
## `video_toolbox_h264_encode_params` で指定可能なパラメーターセット
`Apple Video Toolbox` で H.264 エンコードを行う際に指定可能なパラメーターは以下の通りです。
なお、本ドキュメントでの各パラメーターについての説明などは参考程度のものとなっております。
正確な情報については、本家のドキュメントを参照してください。
### 基本的なエンコーダーパラメーター
- `max_key_frame_interval` (整数値): キーフレーム間隔の最大値(フレーム数)
- デフォルト値: 300
- 指定可能な範囲: 1 〜 600
### 速度と品質のバランス設定
- `prioritize_speed_over_quality` (真偽値): 品質よりも速度を優先するモード
- デフォルト値: `true`
- `real_time` (真偽値): リアルタイムエンコードモード
- デフォルト値: `false`
- `maximize_power_efficiency` (真偽値): 電力効率最大化モード
- デフォルト値: `false`
### フレーム構造設定
- `allow_frame_reordering` (真偽値): フレーム再順序付けの許可
- デフォルト値: `false`
- `allow_temporal_compression` (真偽値): 時間圧縮の許可
- デフォルト値: `true`
### プロファイル・レベル設定
- `profile_level` (文字列): H.264プロファイル・レベル
- デフォルト値: `"baseline"`
- 指定可能な値: `"baseline"`, `"main"`, `"high"`
- `h264_entropy_mode` (文字列): H.264エントロピー符号化モード
- デフォルト値: `"cavlc"`
- 指定可能な値: `"cavlc"`, `"cabac"`
### 並列処理・遅延制御設定
- `max_frame_delay_count` (整数値): 最大フレーム遅延数
- デフォルト値: 2
- 指定可能な範囲: 1 〜 16
- `use_parallelization` (真偽値): 並列処理の使用
- デフォルト値: `false`
## `video_toolbox_h265_encode_params` で指定可能なパラメーターセット
`Apple Video Toolbox` で H.265 エンコードを行う際に指定可能なパラメーターは以下の通りです。
H.265 エンコーダーは H.264 と多くの共通点がありますが、いくつかの相違点があります。
なお、本ドキュメントでの各パラメーターについての説明などは参考程度のものとなっております。
正確な情報については、本家のドキュメントを参照してください。
### 基本的なエンコーダーパラメーター
- `max_key_frame_interval` (整数値): キーフレーム間隔の最大値(フレーム数)
- デフォルト値: 300
- 指定可能な範囲: 1 〜 600
### 速度と品質のバランス設定
- `real_time` (真偽値): リアルタイムエンコードモード
- デフォルト値: `false`
- `maximize_power_efficiency` (真偽値): 電力効率最大化モード
- デフォルト値: `false`
### フレーム構造設定
- `allow_frame_reordering` (真偽値): フレーム再順序付 けの許可
- デフォルト値: `false`
- `allow_temporal_compression` (真偽値): 時間圧縮の許可
- デフォルト値: `true`
- `allow_open_gop` (真偽値): Open GOP の許可
- デフォルト値: `true`
- H.265 では H.264 と異なり、この設定が利用可能です
### プロファイル・レベル設定
- `profile_level` (文字列): H.265プロファイル・レベル
- デフォルト値: `"main"`
- 指定可能な値: `"main"`, `"main10"`
### 並列処理・遅延制御設定
- `max_frame_delay_count` (整数値): 最大フレーム遅延数
- デフォルト値: 15
- 指定可能な範囲: 1 〜 16
- `use_parallelization` (真偽値): 並列処理の使用
- デフォルト値: `true`
## NVIDIA Video Codec SDK エンコーダーパラメーター
NVIDIA Video Codec SDK(nvcodec)は、CUDA対応GPUを利用したハードウェア加速エンコーダーです。
H.264、H.265、AV1の各コーデックに対応しており、高い処理性能を提供します。
### 利用条件
nvcodecエンコーダーを利用するには、以下の条件を満たしている必要があります:
- CUDA対応のNVIDIA GPU
- 適切なNVIDIA GPUドライバー
- nvcodecに対応してビルドされたHisui
- ubuntu-24.04_x86_64 向けのビルド済みバイナリは nvcodec が有効になっています(CUDA がない環境では実行時に無効になります)
### 共通パラメーター
nvcodecエンコーダーでは、H.264、H.265、AV1の全てのコーデックで共通して利用できるパラメーターがあります。
#### エンコード品質・速度制御パラメーター
- `preset` (文字列): エンコードプリセット
- デフォルト値: `"p4"`
- 指定可能な値: `"p1"`, `"p2"`, `"p3"`, `"p4"`, `"p5"`, `"p6"`, `"p7"`
- `"p1"`: 最高品質(最低速)、`"p7"`: 最高速(最低品質)
- `tuning_info` (文字列): チューニング情報
- デフォルト値: `"low_latency"`
- 指定可能な値:
- `"high_quality"`: 高品質優先
- `"low_latency"`: 低遅延優先
- `"ultra_low_latency"`: 超低遅延優先
- `"lossless"`: 無劣化圧縮
#### レート制御パラメーター
- `rate_control_mode` (文字列): レート制御モード
- デフォルト値: `"vbr"`
- 指定可能な値:
- `"const_qp"`: 固定量子化パラメーター
- `"vbr"`: 可変ビットレート
- `"cbr"`: 固定ビットレート
#### GOP・フレーム構造パラメーター
- `gop_length` (整数値): GOPの長さ(フレーム数)
- デフォルト値: `300`
- 指定可能な範囲: 整数値
- `idr_period` (整数値): IDR フレームの周期(フレーム数)
- デフォルト値: なし(省略可能)
- 指定可能な範囲: 整数値
- 省略時は gop_length と同じ値が使用されます
#### デバイス制御パラメーター
- `device_id` (整数値): 使用するCUDAデバイスのID
- デフォルト値: `0`
- 指定可能な範囲: 0以上の値(システムの利用可能GPU数による)
### `nvcodec_h264_encode_params` で指定可能なパラメーターセット
NVIDIA Video Codec SDK で H.264 エンコードを行う際に指定可能なパラメーターは、上記の共通パラメーターに加えて、以下のH.264固有のパラメーターがあります。
#### H.264固有パラメーター
- `profile` (文字列): H.264プロファイル
- デフォルト値: `"main"`
- 指定可能な値:
- `"baseline"`: Baseline Profile
- `"main"`: Main Profile
- `"high"`: High Profile
- `"high_10"`: High 10 Profile
- `"high_422"`: High 4:2:2 Profile
- `"high_444"`: High 4:4:4 Profile
### `nvcodec_h265_encode_params` で指定可能なパラメーターセット
NVIDIA Video Codec SDK で H.265 エンコードを行う際に指定可能なパラメーターは、上記の共通パラメーターに加えて、以下のH.265固有のパラメーターがあります。
#### H.265固有パラメーター
- `profile` (文字列): H.265プロファイル
- デフォルト値: `"main"`
- 指定可能な値:
- `"main"`: Main Profile
- `"main10"`: Main 10 Profile
- `"frext"`: Format Range Extensions Profile
### `nvcodec_av1_encode_params` で指定可能なパラメーターセット
NVIDIA Video Codec SDK で AV1 エンコードを行う際に指定可能なパラメーターは、上記の共通パラメーターに加えて、以下のAV1固有のパラメーターがあります。
#### AV1固有パラメーター
- `profile` (文字列): AV1プロファイル
- デフォルト値: `"main"`
- 指定可能な値: `"main"`(現在はMainプロファイルのみサポート)