nekopanda / Amatsukaze

Automated MPEG2-TS Transcoder
https://jbbs.shitaraba.net/computer/44736/
265 stars 26 forks source link

WOWOWで本編のみ分離ができないことがある #6

Closed supertoppo7 closed 6 years ago

supertoppo7 commented 6 years ago

お世話になっております。

WOWOWで前後のカットがうまく行かない場合のログを挙げておきます。

Tssplitterの「-SEP2 -SEPA」オプションを使うと、うまく分離できます。

すみませんが、もしできましたらどうかよろしくお願いいたします。

C:\Tool_Program\Video\Amatsukaze\exe_files\AmatsukazeCLI.exe -i "R:\Rec\ERⅩⅤ 緊急救命室 #2 木曜は厄日.ts" -s 191 --drcs "C:\Tool_Program\Video\Amatsukaze\drcs\drcs_map.txt" --resource-manager 3708:3948 --affinity 0:65280 -w "C:\Temp" --chapter-exe "C:\Tool_Program\Video\Amatsukaze\exe_files\chapter_exe.exe" --jls "C:\Tool_Program\Video\Amatsukaze\exe_files\join_logo_scp.exe" --cmoutmask 2 -o "V:\ドラマ\ERⅩⅤ 緊急救命室 #2 木曜は厄日.mp4" -et x265 -e "C:\Tool_Program\Video\Amatsukaze\exe_files\x265_2.8+19_x64.exe" -j "V:\ドラマ\ERⅩⅤ 緊急救命室 #2 木曜は厄日-enc.json" --mp4box "C:\Tool_Program\Video\Amatsukaze\exe_files\mp4box.exe" -t "C:\Tool_Program\Video\Amatsukaze\exe_files\timelineeditor.exe" -eo "-P main10 --preset fast --crf 24 --asm avx2" -fmt mp4 -m "C:\Tool_Program\Video\Amatsukaze\exe_files\muxer.exe" -bcm 0.25 --chapter -f "C:\Tool_Program\Video\Amatsukaze\avs\メイン_インタレ解除KFM-24p-UCF-NR(CUDA).avs" -pf "C:\ToolProgram\Video\Amatsukaze\avs\ポスト(インタレ解除前提)デバンド(CUDA).avs" --subtitles --jls-cmd "C:\Tool_Program\Video\Amatsukaze\JL\JL_標準.txt" --no-delogo --logo "C:\Tool_Program\Video\Amatsukaze\logo\SID191-1.lgd" Amatsukaze - Automated MPEG2-TS Transcoder Built on Jul 28 2018 13:19:20 Copyright (c) 2017-2018 Nekopanda AMT [info] [設定] AMT [info] 入力: R:/Rec/ERⅩⅤ 緊急救命室 #2 木曜は厄日.ts AMT [info] 出力: V:/ドラマ/ERⅩⅤ 緊急救命室 #2 木曜は厄日 AMT [info] 一時フォルダ: C:\Temp\amt6091849 AMT [info] 出力フォーマット: MP4 AMT [info] エンコーダ: C:\Tool_Program\Video\Amatsukaze\exe_files\x265_2.8+19_x64.exe (x265) AMT [info] エンコーダオプション: -P main10 --preset fast --crf 24 --asm avx2 AMT [info] 自動ビットレート: 無効 AMT [info] エンコード/出力: 1パス/CMをカット AMT [info] チャプター解析: 有効(ロゴ必須) AMT [info] logo1: C:\Tool_Program\Video\Amatsukaze\logo\SID191-1.lgd AMT [info] ロゴ消し: しない AMT [info] 字幕: 有効 AMT [info] DRCSマッピング: C:\Tool_Program\Video\Amatsukaze\drcs\drcs_map.txt AMT [info] サービスID: 191 AMT [info] デコーダ: MPEG2:default H264:default AMT [info] エンコーダでのインタレ解除: なし AMT [info] [PAT更新] AMT [info] サービス 191 を選択 AMT [info] [PMT更新] AMT [info] PID: 0x0140 TYPE: MPEG2-VIDEO TAG: MPEG2 映像(0x00) AMT [info] PID: 0x0141 TYPE: ADTS AAC TAG: MPEG2 AAC 音声(0x10) AMT [info] PID: 0x0145 TYPE: 字幕 TAG: 字幕(0x30) AMT [info] PID: 0x0146 TYPE: 字幕 TAG: 文字スーパー(0x38) AMT [debug] 必要な情報は取得したのでTSを最初から読み直します AMT [info] 開始Clock: 2000413777774 AMT [info] 音声パーサ 0 を追加 AMT [info] [音声0フォーマット変更] AMT [info] チャンネル: ステレオ サンプルレート: 48000 AMT [info] [映像フォーマット変更] AMT [info] サイズ: 1920x1080 (16:9) FPS: 30000/1001 AMT [info] [PMT更新] ストリーム時刻: 0分6.21秒 AMT [info] PID: 0x0140 TYPE: MPEG2-VIDEO TAG: MPEG2 映像(0x00) AMT [info] PID: 0x0141 TYPE: ADTS AAC TAG: MPEG2 AAC 音声(0x10) AMT [info] PID: 0x0142 TYPE: ADTS AAC TAG: MPEG2 AAC 音声(0x11) AMT [info] PID: 0x0145 TYPE: 字幕 TAG: 字幕(0x30) AMT [info] PID: 0x0146 TYPE: 字幕 TAG: 文字スーパー(0x38) AMT [info] 音声パーサ 1 を追加 AMT [info] [音声1フォーマット変更] AMT [info] チャンネル: ステレオ サンプルレート: 48000 AMT [info] [PMT更新] ストリーム時刻: 43分41.19秒 AMT [info] PID: 0x0140 TYPE: MPEG2-VIDEO TAG: MPEG2 映像(0x00) AMT [info] PID: 0x0141 TYPE: ADTS AAC TAG: MPEG2 AAC 音声(0x10) AMT [info] PID: 0x0142 TYPE: ADTS AAC TAG: MPEG2 AAC 音声(0x11) AMT [info] PID: 0x0145 TYPE: 字幕 TAG: 字幕(0x30) AMT [info] PID: 0x0146 TYPE: 字幕 TAG: 文字スーパー(0x38) AMT [info] [PMT更新] ストリーム時刻: 55分6.20秒 AMT [info] PID: 0x0140 TYPE: MPEG2-VIDEO TAG: MPEG2 映像(0x00) AMT [info] PID: 0x0141 TYPE: ADTS AAC TAG: MPEG2 AAC 音声(0x10) AMT [info] PID: 0x0145 TYPE: 字幕 TAG: 字幕(0x30) AMT [info] PID: 0x0146 TYPE: 字幕 TAG: 文字スーパー(0x38) AMT [info] [映像フレーム統計情報] AMT [info] 時間: 55分6.503秒 AMT [info] FRAME=0 DBL=0 TLP=0 TFF=99099 BFF=0 TFF_RFF=0 BFF_RFF=0 AMT [info] (PTS_Diff,Cnt)=(3003,99098) AMT [info] TS解析完了: 72.68秒 AMT [info] [フォーマット切り替え解析] AMT [info] 0.00 -> 0 AMT [info] 5.71 -> 1 AMT [info] 3305.74 -> 0 AMT [info] [CM判定用音声構築] AMT [debug] 音声-1-0は41フレーム目から開始 AMT [info] [ロゴ解析] FFMPEG [warn] Multiple frames in a packet. AMT [info] 0/99097 AMT [info] 5000/99097 AMT [info] 10000/99097 AMT [info] 15000/99097 AMT [info] 20000/99097 AMT [info] 25000/99097 AMT [info] 30000/99097 AMT [info] 35000/99097 AMT [info] 40000/99097 AMT [info] 45000/99097 AMT [info] 50000/99097 AMT [info] 55000/99097 AMT [info] 60000/99097 AMT [info] 65000/99097 AMT [info] 70000/99097 AMT [info] 75000/99097 AMT [info] 80000/99097 AMT [info] 85000/99097 AMT [info] 90000/99097 AMT [info] 95000/99097 AMT [info] Finished AMT [debug] logo1: 0.051675 * 1.083501 = 0.055990 AMT [info] 完了: 143.16秒 AMT [info] [ロゴ解析結果] AMT [info] マッチしたロゴ: C:\Tool_Program\Video\Amatsukaze\logo\SID191-1.lgd 0 S 0 ALL 0 0 80347 E 0 ALL 80347 80348 81249 S 0 ALL 81248 81249 99096 E 0 ALL 99096 99096 AMT [info] [無音・シーンチェンジ解析] AMT [info] "C:\Tool_Program\Video\Amatsukaze\exe_files\chapter_exe.exe" -v "C:\Temp\amt6091849/amts0.avs" -o "C:\Temp\amt6091849/chapter_exe0.txt" [aac @ 000001c1d18cdce0] Multiple frames in a packet. AMT [info] 完了: 8.51秒 AMT [info] [無音・シーンチェンジ解析結果] Setting video: C:\Temp\amt6091849/amts0.avs audio: (within video source) out: C:\Temp\amt6091849/chapter_exe0.txt mute: 50 seri: 10 bmute: 60 emute: 1 Movie data Video Frames: 99097 [29.97fps] Audio Samples: 158694400 [48000Hz]

mute 1: 153 - 41フレーム SCPos: 179 mute 2: 1064 - 30フレーム SCPos: 1079 ★★ mute 3: 1208 - 240フレーム SCPos: 1228 ○ SCPos: 1388 ○ SCPos: 1443 ○ mute 4: 9090 - 40フレーム SCPos: 9089 _ mute 5: 25822 - 36フレーム SCPos: 25821 _ mute 6: 43264 - 23フレーム SCPos: 43263 _ mute 7: 58394 - 25フレーム SCPos: 58393 _ mute 8: 67671 - 11フレーム SCPos: 67682 mute 9: 67845 - 13フレーム SCPos: 67848 _ mute10: 67859 - 25フレーム SCPos: 67869 _ mute11: 67892 - 55フレーム SCPos: 67892 _ mute12: 68019 - 10フレーム SCPos: 68030 _ mute13: 68381 - 11フレーム SCPos: 68393 _ mute14: 78338 - 228フレーム SCPos: 78551 mute15: 79427 - 41フレーム SCPos: 79450 ★★ mute16: 80333 - 32フレーム SCPos: 80349 ★★ SCPos: 80362 @ mute17: 80782 - 33フレーム SCPos: 80799 ★ mute18: 81233 - 31フレーム SCPos: 81248 ★ mute19: 83018 - 44フレーム SCPos: 83047 ★★★★ mute20: 83922 - 41フレーム SCPos: 83945 ★★ mute21: 84380 - 31フレーム SCPos: 84395 ★ mute22: 84679 - 31フレーム SCPos: 84695 mute23: 85578 - 31フレーム SCPos: 85594 ★★ mute24: 86478 - 30フレーム SCPos: 86493 ★★ mute25: 86926 - 33フレーム SCPos: 86943 ★ mute26: 88717 - 39フレーム SCPos: 88741 ★★★★ mute27: 89626 - 29フレーム SCPos: 89640 ★★ mute28: 90522 - 32フレーム SCPos: 90539 ★★ mute29: 91424 - 33フレーム SCPos: 91438 ★★ mute30: 92310 - 42フレーム SCPos: 92337 ★★ mute31: 92769 - 33フレーム SCPos: 92787 ★ mute32: 93667 - 34フレーム SCPos: 93686 ★★ SCPos: 93692 @ mute33: 95470 - 31フレーム SCPos: 95484 ★★★★ SCPos: 95499 @ mute34: 97269 - 29フレーム SCPos: 97282 ★★★★ mute35: 98164 - 32フレーム SCPos: 98181 ★★ mute36: 98613 - 34フレーム SCPos: 98631 ★ mute37: 99055 - 41フレーム SCPos: 99081 ★ AMT [info] [CM解析] AMT [info] "C:\Tool_Program\Video\Amatsukaze\exe_files\join_logo_scp.exe" -inlogo "C:\Temp\amt6091849/logof0.txt" -inscp "C:\Temp\amt6091849/chapter_exe0.txt" -incmd "C:\Tool_Program\Video\Amatsukaze\JL\JL_標準.txt" -o "C:\Temp\amt6091849/trim0.avs" -oscp "C:\Temp\amt6091849/jls0.txt" auto detect CutMrgIn=1 CutMrgOut=2 current set CutMrgIn=1 CutMrgOut=2 AMT [info] 完了: 0.05秒 AMT [info] [CM解析結果 - TrimAVS] Trim(179,80348) ++ Trim(81248,99080) AMT [info] [CM解析結果 - 詳細] 0 178 6 -1 6 :Nologo 179 1078 30 1 30 :L 1079 78550 2585 -1 2585 :L 78551 79449 30 0 30 :L 79450 80348 30 0 30 :L 80349 80798 15 0 0 :CM 80799 81247 15 -1 0 :CM 81248 83046 60 1 60 :L 83047 83944 30 -1 30 :L 83945 84394 15 0 15 :L 84395 84694 10 0 10 :L 84695 85593 30 0 30 :L 85594 86492 30 0 30 :L 86493 86942 15 0 15 :L 86943 88740 60 0 60 :L 88741 89639 30 0 30 :L 89640 90538 30 0 30 :L 90539 91437 30 0 30 :L 91438 92336 30 0 30 :L 92337 92786 15 0 15 :L 92787 93685 30 0 30 :L 93686 95483 60 0 60 :L 95484 97281 60 0 60 :L 97282 98180 30 0 30 :L 98181 98630 15 0 15 :Trailer(add) 98631 99080 15 0 15 :Sponsor(add) 99081 99096 1 -15 0 :Nologo AMT [info] [チャプター生成] AMT [info] ファイル: 0-1 本編 AMT [info] 0: A AMT [info] 900: A AMT [info] 78372: A AMT [info] 79271: A AMT [info] 80170: B60Sec AMT [info] 81969: B AMT [info] 82867: B AMT [info] 83317: B AMT [info] 83617: B AMT [info] 84516: B AMT [info] 85415: B AMT [info] 85865: B60Sec AMT [info] 87663: B AMT [info] 88562: B AMT [info] 89461: B AMT [info] 90360: B AMT [info] 91259: B AMT [info] 91709: B AMT [info] 92608: B60Sec AMT [info] 94406: B60Sec AMT [info] 96204: B AMT [info] 97103: B15Sec AMT [info] 97553: B15Sec AMT [info] ロゴ・CM解析完了: 151.76秒 AMT [info] [字幕構築] AMT [info] [音声構築] AMT [debug] 音声0-0は41フレーム目から開始 AMT [debug] 音声1-0は305フレーム目から開始 AMT [debug] 音声1-1は13フレーム目から開始 AMT [debug] 55分5.754秒で音声0-0にずれがあるので154689フレームスキップ AMT [info] 出力音声フレーム: 309630(うち水増しフレーム0) AMT [info] 未出力フレーム: 54(0.017%) AMT [info] 音ズレ: 平均 5.19ms 最大 5.19ms AMT [info] [字幕ファイル生成] AMT [info] 字幕ファイル生成完了: 0.02秒 FFMPEG [warn] Multiple frames in a packet. AMT [info] フィルタパス1 予定フレーム数: 19599 AMT [info] フィルタパス1 完了: 122.39秒 FFMPEG [warn] Multiple frames in a packet. AMT [info] フィルタ入力: 97993フレーム 30000/1001fps (インターレース) AMT [info] フィルタ出力: 78395フレーム 24000/1001fps (プログレッシブ) AMT [info] [エンコード開始] 2/2 本編 AMT [info] 入力映像ビットレート: 18011 kbps AMT [info] 1/1パス エンコード開始 予定フレーム数: 78395 AMT [info] [エンコーダ起動] AMT [info] "C:\Tool_Program\Video\Amatsukaze\exe_files\x265_2.8+19_x64.exe" --colorprim bt709 --transfer bt709 --colormatrix bt709 -P main10 --preset fast --crf 24 --asm avx2 --frames 78395 -o "C:\Temp\amt6091849/v0-1-main.raw" --no-opt-qp-pps --no-opt-ref-list-length-pps --y4m --input - AMT [info] y4m format: YUV420p10 progressive 1920x1080 SAR 1:1 24000/1001fps y4m [info]: 1920x1080 fps 24000/1001 i420p10 sar 1:1 unknown frame count raw [info]: output file: C:\Temp\amt6091849/v0-1-main.raw x265 [info]: HEVC encoder version 2.8+19-bcdc610cf5f0 x265 [info]: build info [Windows][GCC 7.3.0][64 bit] 10bit x265 [info]: using cpu capabilities: MMX2 SSE2Fast LZCNT SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2 x265 [info]: Main 10 profile, Level-4 (Main tier) x265 [info]: Thread pool created using 16 threads x265 [info]: Slices : 1 x265 [info]: frame threads / pool features : 4 / wpp(17 rows) x265 [info]: Coding QT: max CU size, min CU size : 64 / 8 x265 [info]: Residual QT: max TU size, max depth : 32 / 1 inter / 1 intra x265 [info]: ME / range / subpel / merge : hex / 57 / 2 / 2 x265 [info]: Keyframe min / max / scenecut / bias: 23 / 250 / 40 / 5.00 x265 [info]: Lookahead / bframes / badapt : 15 / 4 / 0 x265 [info]: b-pyramid / weightp / weightb : 1 / 1 / 0 x265 [info]: References / ref-limit cu / depth : 3 / on / on x265 [info]: AQ: mode / str / qg-size / cu-tree : 1 / 1.0 / 32 / 1 x265 [info]: Rate Control / qCompress : CRF-24.0 / 0.60 x265 [info]: tools: rd=2 psy-rd=2.00 rskip signhide tmvp fast-intra x265 [info]: tools: strong-intra-smoothing lslices=6 deblock sao x265 [info]: frame I: 926, Avg QP:22.48 kb/s: 8088.75 x265 [info]: frame P: 15782, Avg QP:24.15 kb/s: 3963.90 x265 [info]: frame B: 61687, Avg QP:29.36 kb/s: 1094.91 x265 [info]: Weighted P-Frames: Y:1.6% UV:1.3% x265 [info]: consecutive B-frames: 6.1% 1.1% 1.1% 1.0% 90.7% encoded 78395 frames in 2899.33s (27.04 fps), 1755.09 kb/s, Avg QP:28.23 AMT [info] Total: 2899.98s, FilterWait: 2086.43s, EncoderWait: 140.58s AMT [info] エンコード完了: 3023.39秒 AMT [info] [Mux開始] 2/2 本編 AMT [info] "C:\Tool_Program\Video\Amatsukaze\exe_files\muxer.exe" -i "C:\Temp\amt6091849/v0-1-main.raw?fps=24000/1001" -i "C:\Temp\amt6091849/a0-1-0-main.aac" -i "C:\Temp\amt6091849/a0-1-1-main.aac" --chapter "C:\Temp\amt6091849/chapter0-1-main.txt" --optimize-pd -o "V:/ドラマ/ERⅩⅤ 緊急救命室 #2 木曜は厄日.mp4" MP4 muxing mode [HEVC: Info]: IDR: 1, CRA: 851, BLA: 0, I: 74, P: 15782, B: 61687, Unknown: 0 Track 1: H.265 High Efficiency Video Coding Track 2: MPEG-4 Audio Track 3: MPEG-4 Audio Muxing completed! AMT [info] Mux完了: 35.27秒 AMT [info] [出力ファイル] AMT [info] 0: V:/ドラマ/ERⅩⅤ 緊急救命室 #2 木曜は厄日.mp4 AMT [info] 1: V:/ドラマ/ERⅩⅤ 緊急救命室 #2 木曜は厄日-1.mp4 AMT [info] [入力->出力マッピング] AMT [info] 0分0.000秒 - 0分5.706秒 -> 1 AMT [info] 0分5.706秒 - 55分5.736秒 -> 0 AMT [info] 55分5.736秒 - 55分6.537秒 -> 1

nekopanda commented 6 years ago

これってどこがカットされるのが正解なのですか?

PMTによる分離だと6.21秒、43分41.19秒、55分6.20秒にPMT更新があるので、ここで切れそうです。このうち6.21秒と55分6.20秒は音声チャンネル数が変わるので強制的に分離されてますね。

前後ということなので、前と後ろにカットできなかった部分があるということですが、 後ろは43分41.19秒以降は全部カットして欲しいということですか。 前のカットできなかった部分はどこですか?

supertoppo7 commented 6 years ago

返答くださり、ありがとうございます。

今回のケースですと、前は音声チャンネル変更と重なったので、無事にカットされていました。間違った指摘ですみません。 後ろは、43分41.19秒以降は全部カットして欲しいです。

勝手な希望ですが、冒頭と最後の指定秒数か分数以下でPMT更新がある場合は、カットできるオプションを、プロファイルで指定できるととても助かります。というのは、PMT更新が複数回生じる番組があるためです。カットしてほしいのは、冒頭とPMT更新前と最後のPMT更新後だけです。

いろいろ勝手なお願いですみません。これができたら、本当に言うことがありません。どうかよろしくお願いいたします。

supertoppo7 commented 6 years ago

入力ミスをしてしまいました。 「冒頭とPMT更新前」ではなく、「冒頭のPMT更新前」です。 いつも要望を聞いてくださり、本当にありがとうございます。プロファイルの件といい、プロファイル自動検索の件といい、想像以上の反映、本当に感謝します。

nekopanda commented 6 years ago

「冒頭のPMT更新前」と「最後のPMT更新後」だと、今回のログの場合は、音声チャンネル数の変更で強制的に分離されていますが、音声チャンネル数の変更がなくても、join_logo_scpの結果から、冒頭179フレームまでと、最後の99080フレーム以降はCM認識されてカットされています。でも、これだと、「43分41.19秒以降は全部カット」という目的が全然達成されてないので、このやり方だとダメだと思います。

「終わりからN分前から最初のPMT更新」以降をすべてカットならできそうですが、今回の場合少なくとも13分前からとなるので、誤認識する可能性もありそうですが、どうしたらいいのか・・・

supertoppo7 commented 6 years ago

ご考慮くださり、ありがとうございます。もし構わなければ、全体時間の指定%以降の最初のPMT更新以降は全てカット、という処理にしていただけませんか。 TSSplitterで「PMTで分割」で処理していたときは、ごくたまに番組の中盤でPMTが更新されることがあって余分な分割が入るくらいでした。ですので、上記の方法で私の要望は叶いそうです。 勝手なお願いですみません。どうかご検討、よろしくお願いいたします。

supertoppo7 commented 6 years ago

度々すみません。もし先の方法がご面倒でしたら、音声チャンネル数の変更時と同じく、PMT変更時にも分割という処理を選べるようにしていただけるだけでもとても助かります。

supertoppo7 commented 6 years ago

PMT更新時のCMカット、実装してくださって本当にありがとうございます。おかげさまで、当方の希望以上の処理ができました。PMT更新かつシーンチェンジがあるときのみ、対象にしてくださっているのですね。誤爆もなさそうです。本当にありがとうございました。