CRI Sofdec  Last Updated: 2024-09-25 20:36 p
sofdec2encVP9.exeを使ったSofdec.Prime/H.264/AV1 USMのエンコード方法
本項ではsofdec2encVP9.exe を使用した Sofdec.Prime/H.264/AV1 のエンコード方法について説明します。
※将来的には Sofdec.Prime/H.264/VP9/AV1 のエンコードツールは名称を変更した sofdec2encVP9.exe 相当のexeに統合する予定です。

エンコードで使用するバッチファイルの変更

GUI版のSofdec2EncWiz.exeでビデオコーデックでVP9を選択し、
その他のエンコードパラメータを設定後にメニュー>エクスポートからバッチファイルを出力します。
その後、バッチファイルを以下のような手順で変更してください。

Sofdec.Primeエンコード用にバッチファイルを変更する

出力されたVP9エンコード用バッチファイルを以下のように変更します。
(1) -multi_pass=2のあるコマンド行(VP9 2パス目)の削除。
(2) 拡張子が"ivf"になっているところを"sfv"に変更する。
(3) 「-vengine=libvpx -vcodec=vp9 -multi_pass=1 -vpx_speed=4」というVP9に関するオプションの削除。
(4) 「-vcodec=prime -vengine=pms」のオプションの追加。
(5) 「-vbitrate」のオプションを適当な値に変更
例えば以下のような内容になります。
"sofdec2encVP9.exe" -in="sample.mov" -output_video="sample.sfv" -vbitrate=10000000 -acodec=hca -hca_quality=4 -input_audio#00="sample.mov" -vcodec=prime -vengine=pms
"sofdec2encVP9.exe" -input_video="sample.sfv" -input_audio#00="sample#00.hca" -out="sample.usm" -usm_disp_width=1920 -usm_disp_height=1080

H.264エンコード用にバッチファイルを変更する

出力されたVP9エンコード用バッチファイルを以下のように変更します。
(1) -multi_pass=2のあるコマンド行(VP9 2パス目)の削除。
(2) 拡張子が"ivf"になっているところを"264"に変更。
(3) 「-vengine=libvpx -vcodec=vp9 -multi_pass=1 -vpx_speed=4」というVP9に関するオプションの削除。
(4) 「-num_b_pictures=0 -slices=1 -maxgop=30」のオプションの追加。
(5) 「-vbitrate」のオプションを適当な値に変更
例えば以下のような内容になります。
"sofdec2encVP9.exe" -in="sample.mov" -output_video="sample.264" -vbitrate=10000000 -acodec=hca -hca_quality=4 -input_audio#00="sample.mov" -num_b_pictures=0 -slices=1 -maxgop=30
"sofdec2encVP9.exe" -input_video="sample.264" -input_audio#00="sample#00.hca" -out="sample.usm" -usm_disp_width=1920 -usm_disp_height=1080

AV1エンコード用にバッチファイルを変更する

出力されたVP9エンコード用バッチファイルを以下のように変更します。
(1) -multi_pass=2のあるコマンド行(VP9 2パス目)の削除。
(2) 拡張子が"ivf"になっているところを".av1.ivf"に変更。
(3) 「-multi_pass=1 -vpx_speed=4」というVP9に関するオプションの削除。
(4) 「-vengine=libvpx」を「-vengine=libaom_av1」に変更
(5) 「-vcodec=vp9」を「-vcodec=av1.ivf」に変更
(6) 「-vbitrate」のオプションを適当な値に変更 (*1)
例えば以下のような内容になります。
"sofdec2encVP9.exe" -in="sample.avi" -output_video="sample.av1.ivf" -vbitrate=10000000 -vengine=libaom_av1 -vcodec=av1.ivf -acodec=hca -hca_quality=4 -input_audio#00="sample.avi"
"sofdec2encVP9.exe" -input_video="sample.av1.ivf" -input_audio#00="sample#00.hca" -out="sample.usm" -usm_disp_width=1920 -usm_disp_height=1080
注意
  • 現在AV1再生に対応している機種はPCのみです。
  • 現在AV1エンコードは「-resize」オプションに対応していません。
(*1):
コンテンツにより適切な値は変化しますが、AV1エンコードで指定するビットレート値はVP9の70%を目安に設定することをお勧めします。
例えば Sofdec2 Encoding Wizard でのVP9エンコードにおける画質品質: 標準 の70%で設定した場合、解像度/fpsごとのビットレート指定目安は以下のようになります。
AV1エンコードのビットレート指定目安
解像度 fps 指定ビットレート値目安 [bps]
1280x720 29.97 1113700
1280x720 59.94 2504600
1920x1080 29.97 1670200
1920x1080 59.94 3757600
3840x2160 29.97 6682200
3840x2160 59.94 15029000

サブコマンド(オプション)について

以下に既存のsofdec2enc.exe/sofdec2encH.264.exeのサブコマンドと仕様が異なり、注意が必要なものについて説明します。

サブコマンド一覧

  • ファイルサブコマンド
    サブコマンド名 内容
    input_audio#aa#bb オーディオファイルの指定(サラウンドオーディオ含む)

  • ビデオ編集サブコマンド
    サブコマンド名 内容
    resize リサイズ

  • ビデオエンコード設定サブコマンド
    サブコマンド名 内容
    h264_profile H.264プロファイルの指定
    slices スライス数の指定
    num_b_pictures Bピクチャの枚数

  • オーディオエンコード設定サブコマンド
    サブコマンド名 内容
    acodec オーディオコーデックの指定


input_audio: オーディオファイルの指定(サラウンドオーディオ含む)
[書式]-input_audio#aa=filename
    (-input_audio#aa#bb=filename)
[入力]filename:  オーディオファイル
    aa :  オーディオトラック番号(範囲:00 - 31)
    bb :  オーディオチャンネル番号(範囲:00 - 05)
          モノラル素材指定によるサラウンドオーディオの場合に使用
[機能]入力オーディオファイルを指定します。


(1) オーディオファイル
 オーディオファイルの詳細については「 オーディオ素材ファイル 」を参照してください。

(2) オーディオトラック番号
 (a) ここで指定したトラック番号が、Sofdecファイルのオーディオトラック番号になります。
 (b) オーディオファイルを一つしか使わない場合は、トラック00を使うようにしてください。
 (c) オーディオファイルは最大32本指定することができます。

(3) サラウンド用素材について
 (a) 5.1chサラウンドオーディオにエンコードする場合は、6ch音声の素材を指定してください。
 (b) モノラル素材を指定してサラウンドオーディオをエンコードする場合は #bb を以下のポジションに合わせて指定してください。

6ch素材のチャンネル番号 スピーカーポジション
00 LEFT
01 RIGHT
02 CENTER
03 LFE
04 LEFT Surround
05 RIGHT Surround


【例】HCAコーデックにてトラック00に5.1chサラウンドをモノラル素材指定、トラック01、02にそれぞれ英語音声、日本語音声ファイルを割り当てます。

rem <H.264エンコード>
"sofdec2encVP9.exe" -in="sample.mov" -output_video="sample.264" -vbitrate=10000000 -acodec=hca -hca_quality=4 -num_b_pictures=0 -slices=1 -maxgop=30 ^
-input_audio#00#00=l.wav ^
-input_audio#00#01=r.wav ^
-input_audio#00#02=c.wav ^
-input_audio#00#03=lfe.wav ^
-input_audio#00#04=ls.wav ^
-input_audio#00#05=rs.wav ^
-input_audio#01=voice_jp.wav ^
-input_audio#02=voice_en.wav
rem <マルチプレクス処理>
"sofdec2encVP9.exe" -input_video="sample.264" -out="sample.usm" -usm_disp_width=1920 -usm_disp_height=1080 ^
-input_audio#00#00=l.hca ^
-input_audio#00#01=r.hca ^
-input_audio#00#02=c.hca ^
-input_audio#00#03=lfe.hca ^
-input_audio#00#04=ls.hca ^
-input_audio#00#05=rs.hca ^
-input_audio#01=voice_jp.hca ^
-input_audio#02=voice_en.hca



resize: リサイズ
[書式]-resize="rw,rh"
[入力]rw:  リサイズ後画像の横幅
    rh:  リサイズ後画像の高さ
[機能]元画像にピクセル値の平均化によるリサイズ処理を施します。


【例】640x480にリサイズします。

"sofdec2encVP9.exe" -in="sample.mov" -output_video="sample.264" -vbitrate=10000000 -acodec=hca -hca_quality=4 -input_audio#00="sample.mov" -num_b_pictures=0 -slices=1 -maxgop=30 -resize="640,480"
"sofdec2encVP9.exe" -input_video="sample.264" -input_audio#00="sample#00.hca" -out="sample.usm" -usm_disp_width=640 -usm_disp_height=480



h264_profile: H.264プロファイルの指定
[書式]-h264_profile=profile
[入力]profile:  プロファイル名
          high : H.264 High Profile
          main : H.264 Main Profile
          baseline: H.264 Baseline Profile
[機能]エンコード時のH.264プロファイルを指定します。


【例】H.264プロファイルを Main Profile に設定します。

"sofdec2encVP9.exe" -in="sample.mov" -output_video="sample.264" -vbitrate=10000000 -acodec=hca -hca_quality=4 -input_audio#00="sample.mov" -num_b_pictures=0 -slices=1 -maxgop=30 -h264_profile=main
"sofdec2encVP9.exe" -input_video="sample.264" -input_audio#00="sample#00.hca" -out="sample.usm" -usm_disp_width=1920 -usm_disp_height=1080


このサブコマンドを省略した場合、H.264プロファイルを自動設定し、エンコードします。
H.264では以下の利用ケースに応じて明示的に値の設定を行うようにしてください。
(a) ゲーム機向け:high
(b) スマホ向け:main


slices: スライス数
[書式]-slices=slices
[入力]slices:  スライス数
[機能]1枚のフレームを指定数の処理単位に分けて並列処理します。


本オプションを指定しない場合、解像度に応じて自動的に値が決定されます。
H.264では以下の利用ケースに応じて明示的に値の設定を行うようにしてください。
(a) ゲーム機向け
   PS4、PS5が対象な場合、4を指定してください。
   並列処理を行い、フルHDなどの大きな解像度で再生負荷を下げられます。
(b) スマホ向け
   1を指定してください。
   SofdecでiOSは複数スライスによる並列処理は未対応です。

【例】スライス数を4に設定します。

"sofdec2encVP9.exe" -in="sample.mov" -output_video="sample.264" -vbitrate=10000000 -acodec=hca -hca_quality=4 -input_audio#00="sample.mov" -num_b_pictures=0 -slices=4 -maxgop=30
"sofdec2encVP9.exe" -input_video="sample.264" -input_audio#00="sample#00.hca" -out="sample.usm" -usm_disp_width=1920 -usm_disp_height=1080



num_b_pictures: Bピクチャの枚数
[書式]-num_b_pictures=num_b_pictures
[入力]num_b_pictures:  Bピクチャの枚数
[機能]Bピクチャの枚数を指定します。


Bピクチャの枚数を指定します。
SofdecではBピクチャ有りのH.264データの再生には未対応です。
必ず0を指定してください。

【例】Bピクチャの枚数を0に設定します。

"sofdec2encVP9.exe" -in="sample.mov" -output_video="sample.264" -vbitrate=10000000 -acodec=hca -hca_quality=4 -input_audio#00="sample.mov" -num_b_pictures=0 -slices=1 -maxgop=30
"sofdec2encVP9.exe" -input_video="sample.264" -input_audio#00="sample#00.hca" -out="sample.usm" -usm_disp_width=1920 -usm_disp_height=1080



acodec: オーディオコーデックの指定
[書式]-acodec=acodec
[入力]acodec:  オーディオコーデック名
          none/adx : ADX
          hca : HCA
[機能]エンコード時のオーディオコーデックを指定します。


マルチプレクス処理の音声コーデックADX/HCAの違いについて
 (a) -input_audioでエンコード用に指定した音声元素材は以下のような中間ファイルとして出力されます。
   - none/adx:sample#00.sfa
   - hca :sample#00.hca
 (b) (a) の出力ファイルはマルチプレクス処理部で-input_audioで指定する必要があります。

【例】オーディオコーデックを ADX に設定します。

"sofdec2encVP9.exe" -in="sample.mov" -output_video="sample.264" -vbitrate=10000000 -acodec=adx -input_audio#00="sample.mov" -num_b_pictures=0 -slices=1 -maxgop=30
"sofdec2encVP9.exe" -input_video="sample.264" -input_audio#00="sample#00.sfa" -out="sample.usm" -usm_disp_width=1920 -usm_disp_height=1080

【例】オーディオコーデックを HCA に設定します。

"sofdec2encVP9.exe" -in="sample.mov" -output_video="sample.264" -vbitrate=10000000 -acodec=hca -hca_quality=4 -input_audio#00="sample.mov" -num_b_pictures=0 -slices=1 -maxgop=30
"sofdec2encVP9.exe" -input_video="sample.264" -input_audio#00="sample#00.hca" -out="sample.usm" -usm_disp_width=1920 -usm_disp_height=1080