それなりに色々試して、それなりに自分なりのやり方が決まったので、
忘れないように纏める
手順は以下の2通りで、ほぼ問題なくエンコードできた。
手順A・・通常はこちらで問題ない
使用アプリ BonTsDemux、ToWave、aviutl
1.BonTsDemuxでTSをW2Vファイルとaacファイルに分離
2.ToWaveでaacをDelay修正wavに変換
3.aviutlでw2vとwavを読み込んで、編集してエンコード
それぞれのアプリの詳細な手順は割愛
手順B・・5.1chでエンコードする場合、手順1でうまくいかない場合
使用アプリ BonTsDemux、aviutl、TsSplitter、Yamb、Avidemux
(1.TsSplliterで5.1ch部分を分割)
2.BonTsDemuxでm2vとaacに分離
3.aviutlでm2vのみをMP4にエンコード
(解像度などの変更のみ。CMカットのような動画時間が変わる編集はしない)
4.YambでMP4とaacを合成
5.Avidemuxで音声Delay補正とCMカットなどの編集をして保存
5.1ch対応する場合はBonTsDemuxで分離時に音声出力方式を[強制5.1ch]を選択
それ以外はStereo
5.1ch放送だが5.1ch必要ない場合は、Stereo選択して手順Aでもいい
前番組、後番組が5.1ch放送で少しでも録画されていると、
ToWaveの変換で失敗することがあるので、
TsSplitterを使って音声5.1ch部分を分割する
Tssplliterのパラメータは
-SEPAC(音声チャンネル切替で分割、個々に出力)
を使い、音声5.1ch部分だけを抜き出す
CMまたぎなどで2つ3つに分割される場合でもTssplliterで合成しない
合成すると、合成した後半部分のDelay補正ができなくなるので、
個別に上記5までのMP4エンコードとDelay補正を行い、
個別に作成したMP4を最後にaviutlで合成する
AvidemuxのDelay補正はBonTsdemuxで分離したaacファイル名のdelay値を
そのまま入力すればよい
・その他
BonTsdemuxで分離したあとのaacファイル名のDelay値が8桁くらいになることがある
その場合にMurdocCutでTSの先頭部分を少しカットすると修正できる
手順Aでうまくいかない場合は大抵Towaveのwav変換で失敗しているので、
動画のみをMP4にしてからaacと合成する手順Bにすると回避できる
ファイル名にコンマなどの記号があるとToWaveの変換で失敗することがある
TSのDropが多くて音ズレが修正できないときはあきらめる
時間かかるし、多少は劣化もするのでエンコードは1回のみが妥当
手順Aは結構あちらこちらで紹介されていて、手間があまりかからないが、
音ズレが修正できないことも多々ある
手順Bは5.1chにも利用できるし、大抵の音ズレの問題は回避できると思う
ただ、手順Aより手間がかかるのと、AvidemuxはGOP単位の編集になるので、
aviutlよりは大雑把な編集になる