PT4K + Bondriver_BDAdantto4kBonDiverProxy/BonDriverProxyEXEDCBでBS4K/8Kを順調にTS録画できる環境が整ったので、エンコード作業の覚え書き的メモ。

 略図にすると、地デジやBS/CSの場合は
ts(H.264 + AAC )━[DGIndex]━┳━d2v ━━━━━━┳━avs━┳━[ENCODER]━h264,HEVC,AV1━┳━Muxser[ffmpeg,mp4box]━mp4
                             ┗━aac━[FAW]━wav ┛       ┗━[Aviutl] ━wav━[FAW]━aac┛
だったのを、BS4K/8Kだと、
ts(HEVC + AAC)━┳━[ffms2]━ffindex ━━━━━━┳━avs━┳━[ENCODER]━h264,HEVC,AV1━┳━Muxser[ffmpeg,mp4box]━mp4
                ┗━[ts_parser]━aac━[FAW]━wav ┛       ┗━[Avs2wav]━wav━[FAW]━aac┛
にするってこと。

●録画ファイル

record.ts ---①

●インデックスを作成(ffms2)

ffmsindex.exe "①"
record.ts.ffindex が作成される(作成しなくても、avsでFFVideoSourceを使ってTSを読み込む際に自動生成される)

●音声分離(ts_parser : MPEG-API_UtilsBinary)

ts_parser.exe --mode da -o out "①"
out PID XXX DELAY -YYYms.aac がPIDごとに作成されるので必要なファイルだけ残す(PID 110など)---②

▲AACファイル先頭(前番組)が2ch(ステレオ)で、途中音声チャンネルが切り替わって、本編の5.1chが認識されない場合(aactool : up0551.zip)

aactool.exe -i "②" -c 2 -n null6ch.aac -o "mod PID XXX DELAY -YYYms.aac"

前番組が5.1chで、途中音声チャンネルが切り替わって、本編の2chが認識されない場合
aactool.exe -i "②" -c 6 -n null2ch.aac -o "mod PID XXX DELAY -YYYms.aac"

前番組が22.2chの場合は、-c 5 とすればいいようだ

mod PID XXX DELAY -YYYms.aac が作成される---③

●疑似wav化とディレイ調整(FAW : up1009.zip)

fawcl.exe "②"または"③" out_aac.wav
out_aac.wav が作成される---④

Avisynth+

infile.avs ---⑤

SetFilterMTMode("DEFAULT_MT_MODE", MT_MULTI_INSTANCE)
v=FFVideoSource("①")
a=WavSource("④")
audiodub(v,a)
#適宜Trim
Trim(433,18415)
#適宜ロゴ消しなど
DelogoHD(logofile="NHK BSP4K.lgd", start=60, end=17682)
#適宜スレッド指定
Prefetch(8)
return last

●WAV切り出しとAAC復元(avs2wav & FAW)

avs2wav64.exe "⑤" OUTPUT.wav
OUTPUT.wav が作成される---⑥

fawcl.exe "⑥"
OUTPUT_out.aac が作成される---⑦

●映像エンコード

適宜エンコード
ffmpeg.exe -y -f avisynth -probesize 40M "⑤" -an -c:v libx265 -crf 26 -maxrate:v 6M -bufsize 12M -x265-params "colorprim=bt2020:colormatrix=bt2020nc:transfer=bt2020-10" OUTPUT.mp4
OUTPUT.mp4 が作成される---⑧

●Mux

ffmpeg.exe -y -i "⑧" -i "⑦" -c:v copy -c:a copy -map 0:v:0 -map 1:a:0 -f mp4 ENCODED.mp4
ENCODED.mp4 が作成される