TrimVewerが強制終了するときや「Message: [AMTSource] デコードできないフレーム数が多すぎます -> ○○フレームがデコード不可」の対処法

Amatsukaze

現在確認しているトラブルの対処法です。
今回かいた方法は、動画のデコードできないフレームやDROPが頭やお尻で発生しているときです。

(C#)ボケ防止勉強用自作ソフト。TrimViewerのバージョンはver0.5.1β。
ガラクタツール置き場はこちら→ https://nln.jp/software/

■ 動画ファイル(*.ts)が以下の場合に発生しやすい傾向があります。

・音声が5.1chの動画部分がある
・音声がステレオやモノラルなどの切り替えがある
・EDCB録画で録画マージンが5秒以上ある
・TvTestで再生すると、タイトル名が前の番組名から始まる
・録画時に番組をまたがっている
・日付をまたいで録画している
・タイムスタンプがリセットされている

などの場合に起きているようです。

※TsAccess目安でランダムアクセス速度を試すことができます。
ここで遅い場合は最終フレームまでシークする間に、OSからタイムアウトで強制終了になる場合があります。
これは現状の実装(フレームの読み込みが外部プログラムを利用している)では回避できないため、仕様となります。

TrimCheckを開いて、CTRL+ENDを押して5秒以内にフレームが表示されない場合がこれにあたります
(右上の「×」印を押して強制終了させてください)

■ 対処法(MurdocCutterを使います)
先頭の番組に必要ない不要なマージン部分をカットします。

テストでは8秒のマージンで録画したものから約7.5秒を切っています。
ここでの処理は、フレーム単位ではなくGOP単位のカットになります。


FHD1時間分の同一HDD内コピーで3分かかりませんが、長いと思う方はほかのツールを使ってください
うちの簡易ツールと違って、avisynth系のavspmodという正統派ツールがありますので(笑)


番組のお尻までシークできるようになりますヽ(*^。^*)ノ

うちで発生したシーク落ちに関してはこれで全部対処できています。
※すべての環境で動作するわけではございませぬ

毎週の番組だと解析結果もほぼ同じなので、手作業でTrim編集でもいいんじゃないかと思います。
そもそもCM解析のスクリプトを正しく設定するのが王道なので

※言い訳~;OpenCVSharpのフレーム取得プログラムを呼び出しているだけなので猫の部分はどうなってるかわからんどす。

■ うまくいかず、どーしても読み込ませーんだよ!っていうときは。
 番組情報を捨ててタイムコードを整えてくれる「TMPGEnc MPEG Smart Renderer 5」で読んでノーカットで書き出すだけでこのツール読めるようになります。ここまでの努力は何?(^◇^; 動作保証するわけでもないので試用版で試して自己責任で購入してみてはいかがでしょうか。フレーム位置はずれるので何かの処理はされているのでしょう。少し長め手に書き出して前後をトリムしてあげるときれいに整います。CM位置情報も「TMPGEnc MPEG Smart Renderer 5」である程度書き出してくれるので参考に設定してみてはいかがでしょうか。

※.tsで保存。余計なことをしなければAmatsukzeに渡せるファイルになります。番組情報が保存されないため、Amatsukazeに読ませるときは、チャンネル不明となります。CMカットやロゴ消しを行いたい場合は不明チャンネルでロゴ登録を行う必要があります。