- 本項では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のサブコマンドと仕様が異なり、注意が必要なものについて説明します。
サブコマンド一覧
- ファイルサブコマンド
- ビデオ編集サブコマンド
- ビデオエンコード設定サブコマンド
- オーディオエンコード設定サブコマンド
サブコマンド名 | 内容 |
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