C#とWPFとOpenCVSharpでTrimViewer開発日記 0.3.3β

c#

(C#)ボケ防止勉強用自作ソフト更新。
ガラクタツール置き場はこちら→ https://nln.jp/software/

バグ修正と微調整が続いています
色々見えなくなっているような気がします。

強風で家が飛びそうなの。

—-ReadMeより

============================================================
【ソフト名】Trim Viewer
【動作環境】Windows 10 64bit + Microsoft .NET 4.8(以降)
【サポート】ありません。自己責任でお使いください
============================================================

Trim Viewer(以下本ソフトウェア) の概要
———–

・本ソフトウェアは Windows10上で動く、「Trimは動画ではどこじゃろ?」ってときに確認するプログラムです。
・スクリプトいじるほどでもない単発のTrim調整にどうでしょ?(笑) – 基本的にAmatsukazeのCM解析の後に使います。
・このソフトウェアは作者の C#,WPF,OpenCVSharp の勉強のため、機能試験のために作られたフリーソフトウェアです。
・自動処理とは逆行していますが、「join_logo_scp」勉強したくない&「avisynth」も入れたくないって感じの「壁を感じる」人向け。
・おま環で最低限動くチェックしかしていません。環境によっては動きません。自己責任でお使いください。

既知の不都合など(Trim範囲を疑う前に)
——————-
◆症状:シーンチェンジぴったり指定したのに前後に余計な1~2フレームが付いて「見える」。
→エンコード設定によって消せる場合がある。
対策:Trim指定が本編のみの場合、Amatuskazeの「出力選択」を「CMをカット」にしてみる。

例)「出力選択」で「本編とCMを分離」を選んでいる場合にWO●OW、ス●ーチャンネルに発生をしているときがある。
同じ設定でもA●-Xでは出ないなど、おま環設定で場合によりTrimの範囲を修正しても反映されません。

そのほかの対処法:
1:Trim指定で5フレーム程度の余裕を取る(短くする^^;CMのみやCM分離などでは効果がなかったような記憶が…)
2:Trim指定をやめて「TMPGEnc MPEG Smart Renderer 5」でカットしてからエンコードする。前後のGOPをきれいに編集してくれます(丸投げヘ(゚∀゚ヘ)アヒャ)

・Amatuskazeの「出力選択」の設定によりTrimの優先(有効)度が変わります。
例)TrimでCM範囲のみを指定して、「CMのみ」を選択した場合など、Trim範囲以外も処理されます

※こんなツールつくた後で気が付いた…il||li _| ̄|● il||li っ「CMをカット」
あちこちバグが残っていますが開発も収束方向で…

◆「このTSファイルでは正常に動作できません」とエラーが出る場合
・ログファイルにエラーが残っています※error,warn,aacなどをリスト表示しています。
先頭パケット/GOP破損やドロップ、音声chチェンジでエラーまたは警告がログに残っています。

回避例)MurdocCutter19g1以降などでTSファイルの先頭をエラー個所を含む5秒くらいを取り除くことで読み込める場合があります。この場合先頭フレームが変わるので、再度CM解析が必要です。(先頭GOPだけでなく前番組の録画マージンを丸ごと切り落とした方が読み込み成功率は上がります)

・CM解析で警告が出ずに読み込める場合でも、先頭フレームと動画フォーマットが違っている場合や、ドロップがあってデータの整合性が取れていない場合などに処理速度が極端に落ちます。
(TrimCheckボタンを押して、プレビューが出ているのにスクロールサムネイルの表示が遅れているときなど)
画像SD/HDや音声2ch/5.1など含みます。CMと本編で不都合が起きることもありm(__)m
OpenCVSharp機能で読めれば表示を行いますが、SEEKに時間がかかる場合はOSから強制終了されます

◆音声付きの再生機能はありません。
画像の「連続表示」はおまけ機能です!
もともとOpenCVSharp拾えるフレームを「重い処理を加えた後」続けて表示トライした手抜きです(^◇^;
音声同期もやる気がないのでカットしています。再生はTVTestなどでどうぞ。

◆30000/1001fps前提の処理になっています
映画や海外ドラマやアニメなどうまく表示できませんm(__)m

※動画の「テレシネ」「逆テレシネ」の意味と違い – AviUtlの易しい使い方
このあたりに詳しく解説がありました^^;
https://aviutl.info/teresine-gyakuteresine/

◆テストモードでエンコード行った場合はエンコードログからも確認できる場合があります。
通常モードでエンコードした場合、TSファイルが移動されるので処理を継続できません。
対応していません。

開発・デバッグ環境 など
——————-

本ソフトウェアでは以下の開発環境/パケージ/ライブラリ/ソースを使用しています。
各ライセンスについては公式サイトを参照してください。

・Microsoft VisualStudio 2019
・Microsoft .NET 4.8

・OpenCvSharp
shimat - Overview
shimat has 79 repositories available. Follow their code on GitHub.

・3条項BSDライセンス(https://opensource.org/licenses/BSD-3-Clause)

※開発開始時点で最初にフレーム位置が調整できたので[OpenCvSharp]を使うことにします。
※目的の機能が実装出来たらver1.0.0になりますので気長に生暖かく忘れてください。

動作確認環境 など
——————-

・OS Windows 10 May 2019 64bit
・CPU Intel i7-6700
・RAM 16GB
・Amatsukazeが動く環境

※なるべく最新環境でビルド&テストするようにしています
-32bit(x86)版はテスト環境がないので対応していません。

■ 読み込めそうなTrim情報
・Amatsukaze ver0.9.1.3(https://github.com/nekopanda/Amatsukaze) Automated MPEG2-TS Transcoder の「CM解析」のログ(sjis)

■ 読み込めそうな動画
・MPEG2-TSの音声2ch/モノラルの動画

※マルチ放送/SD・HD混在/ワンセグ動画には対応していません。
※音声5.1chの動画は処理が重くて追いつかないため対応していません。
OpenCVSharpのハードウェア支援対応のDLLに差し替えることで改善できるかも?という情報をいただきましたが理解不能^^;
(現時点で作者の知識が及ばない世界)

ファイル構成
————

TrimViewer_README.md ——— このテキストファイル

[TrimViewer] ——— ビルド生成物: 通常は実行ファイルがあればOK。

TrimViewer.exe ——— 実行ファイル(生成ファイル一式)
TrimViewer.application
TrimViewer.exe.config
TrimViewer.exe.manifest
TrimViewer.xml ——— 環境保存ファイル(後で作られます)

※DLL同梱版ではOpenCVSharpのDLLが付属します。差分だけは動かないので、DLL同梱版に差分を上書きしてください。

アンインストール方法
——————–
・Windows10の例
[プログラム] 解凍したプログラムフォルダを削除してください。

ご利用にあたり
————–

・本ソフトウェアはフリー・ソフトウエアです。個人使用、業務使用のいずれでも、利用者の責任においてご自由にご利用ください。

・ソフトウエアは制作環境で動作テストをしていますが、お使いのパソコン環境や、プログラムの不具合などによって問題が生じる場合があります。
それにより損害が生じても、損害に対する保証は出来かねますので、あらかじめご了承ください。

・詳細はライセンスをご覧ください。

ソースコードの配布について
————–

・VisualStudio2019の命名規則にすら従わないような、エラー処理が未完の可能性が高い、他人が真似したら困る汚いソースなので基本的に非公開です。
・作者が必要とした場合のみ、一部公開または配布して意見を求める時がります。
・私のソースコードが読める実力がある人なら、もっとスマートで奇麗に自分で作れると思いますので 🙂

ライセンス
———-

本ソフトウエアおよびそのソースコードは、修正BSDライセンス(2条項:The BSD 2-Clause License)に従うものとします。

Copyright (c) 1998-2019, Moatensuke & Nightmarish Library of noctiluca.
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1.Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
2.Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

*** 以下は日本語訳(参考) ***

Copyright(C) 1998-2019 Moatensuke & Nightmarish Library of noctiluca.

1.ソースコード形式かバイナリ形式か、変更するかしないかを問わず、以下の条件を満たす場合に限り、再頒布および使用が許可されます。
2.ソースコードを再頒布する場合、上記の著作権表示、本条件一覧、および下記免責条項を含めること。

書面による特別の許可なしに、本ソフトウェアから派生した製品の宣伝または販売促進に、名前またはコントリビューターの名前を使用してはならない。
本ソフトウェアは、著作権者およびコントリビューターによって「現状のまま」提供されており、明示黙示を問わず、商業的な使用可能性、および特定の目的に対する適合性に関する暗黙の保証も含め、またそれに限定されない、いかなる保証もありません。著作権者もコントリビューターも、事由のいかんを問わず、 損害発生の原因いかんを問わず、かつ責任の根拠が契約であるか厳格責任であるか(過失その他の)不法行為であるかを問わず、仮にそのような損害が発生する可能性を知らされていたとしても、本ソフトウェアの使用によって発生した(代替品または代用サービスの調達、使用の喪失、データの喪失、利益の喪失、業務の中断も含め、またそれに限定されない)直接損害、間接損害、偶発的な損害、特別損害、懲罰的損害、または結果損害について、一切責任を負わないものとします。

使用方法など
——————–

■ アジャスト画面のショートカットキー設定(暫定)
◇Adjust画面◇
※15フレーム以上になる場合は根本的に対応できない動画だと思います。
「TMPGEnc MPEG Smart Renderer 5」で書き出したキーフレームと「0フレーム」の表示を合わせるときに使う程度。

[ボタン操作設定]
・Reset:Trimの先頭範囲の最初のフレームを中央にして、調整フレーム数0にして再描画
・ReLoad:現在の選択位置(調整位置)を中央にして再描画
・Adjust(Set):調整位置を確定して調整フォームを終了
・Cancel:選択情報を破棄して調整フォームを終了

[追加キー操作設定]
・PageUp,PageDownで1画面前後のページを読み込みます
・カーソルキーはサムネイル画面内で選択位置を移動します
・先頭フレーム調整は±6000フレーム(約20秒)の範囲を想定
・Homeキーで0フレーム、Endキーで+6000フレームを指定します

■ プレビュー画面のショートカットキー設定(暫定)
・全般
[S]キーでスクロールサムネイルの更新のON/OFF切り替え
[Space]or[Enter] 連続再生のON/OFF切り替え(遅延はスキップしてなるべく実時間処理を行います)
※音声は再生されません

◇Preview操作時◇
・プレビューサイズの変更
[テンキー+] 拡大
[テンキー-] 縮小
※プレビューイメージサイズ(320x180px,640x360px,960x540px,1280x720px,1920x1080px,Fit)
※フォーム内に収まらないときは「Auto」表示となりFitモードと同じ動作をします。

・Trim位置の変更
‘[‘キー(OpenBrackets):Top位置の変更
‘]’キー(CloseBrackets):End位置の変更
※エンターキーの左のキーです

・フレーム移動
[←] -1フレーム移動
[→] 1フレーム移動
[↑] -30フレーム移動(CTRL+でTrim選択を-1)
[↓] 30フレーム移動(CTRL+でTrim選択を+1)
[PageUp] -150フレーム移動(CTRL+で3倍移動:-15秒)
[PageDown] 150フレーム移動(CTRL+で3倍移動:+15秒)

[Home] Trimの開始位置に移動(Topボタン)
[End] Trimの終了位置に移動(Endボタン)
[Home+R-CTRL] 開始「0」フレームに移動
[End+R-CTRL] 終了「最終」フレームに移動(※エラー回避で最終フレームは-60となっています)

※取り扱う最終フレームについて:録画終了時のTSパケットの破損対策で60フレームのマージンを取っています
(このソフトでは最終フレームから60フレーム分までは指定できません。録画時は前後5秒以上のマージンを取って録画することをお勧めします)

◇連続再生時◇
[↑] -30フレーム移動(1秒)
[↓] 30フレーム移動(1秒)
[PageUp] -150フレーム移動(CTRL+で3倍移動:-15秒)
[PageDown] 150フレーム移動(CTRL+で3倍移動:+15秒)

[Home] Trimの開始位置に移動
[End] Trimの終了位置に移動
[Home+R-CTRL] 開始「0」フレームに移動
[End+R-CTRL] 終了「最終」フレームに移動(※エラー回避で最終フレームは-60となっています)

※取り扱う最終フレームについて:録画終了時のTSパケットの破損対策で60フレームのマージンを取っています
(このソフトでは最終フレームから60フレーム分までは指定できません。録画時は前後5秒以上のマージンを取って録画することをお勧めします)

Ver 0.33bでの変更点
——————-
・TS読み込み時にCMList移動の操作を行うと強制終了していたので修正
・ファイル読み込み時の初期化タイミング等細かい修正

Ver 0.32bでの変更点
——————-
・Trim位置変更時にCM解析情報に同じフレームが登録されている場合に追従するようにした
・古い[.ts.trim.avs]がある場合表示するようにした。(ログ読み込み時→Oldに表示)

—-
◆本来の使用目的ではないので、Trimの先頭位置がほかのツールとずれてもチェックすらできません
・TSファイルを直接読めるようにした
・TSファイル読み込み時に[.ts.trim.avs]がある場合は読み込むようにした(TS読み込み時→ログからの取得の代わりに表示)
※破損ファイルなど読み込めないファイルを選択したり、標準の形式でないファイル構成などがある場合強制終了します

Ver 0.31bでの変更点
——————-
・カラーバーの表示がおかしかったので修正
・現在フレームの枠を表示した
(だいぶ処理が重くなってきた…)

Ver 0.30bでの変更点
——————-
・ログにエラーが出ている場合は警告するようにした
(正常に動画を読めない可能性が高いので)

Ver 0.29bでの変更点
——————-
・TrimListの色調整(選択色と通常色が逆だった)
・サムネイル表示でフレームに対応したTrimRangeのカラーバーを追加

Ver 0.28bでの変更点
——————-
・ログ情報を読み込むときに、前の情報がクリアされていなかったので修正
・詳細ログ判定パターンを増やした
・プレビュー画面でCM解析の詳細情報の表示[I]とスクロール情報の更新設定[S]を保存するようにした

Ver 0.27bでの変更点
——————-
・Trim情報が1つしかないときに削除すると強制終了するバグの修正。

Ver 0.26bでの変更点
——————-
◎諸事情により、うちの環境で当面の存在理由がなくなったので…この程度にしておいてやろうというヘ(゚∀゚ヘ)アヒャ
※本日中に手軽に実装できなところはとりあえず全部突っ込んで初期開発は終了です。

・[CM解析結果 – 詳細]の情報を使えるようにした。
・[I]キーで詳細情報を表示ます。
 詳細情報をクリックするとそのフレームに移動します(詳細情報表示中のみ)
 R-CTRL + [←][→]キーで次の詳細情報を選択します(詳細情報表示中のみ)
 選択Trim範囲以外のリスト番号を表示します。緑色のカラーの時(詳細情報表示中のみ)
・プレビューのマウス左クリックで連続再生ON/OFF。
・センターホイールで表示プレビューの番号を増減するように追加。
・移動量増加部分で、R-CTRLキーが3倍、L-CTRLキーがそれぞれ12倍増加します。
例)PageDownが+150(5秒),+450(15秒:R-CTRL+),+1800(1分:L-CTRL+),+5400(3分:両CTRL+)に変化します。

バグは使っていて気が付いたら直します。バグ報告は99%仕様ですって返しますので特にいらないっす
今後出るものは、今の知識では多分直せません(^◇^;

Ver 0.25aでの変更点
——————-
・Trimの挿入ボタン(Insertキー)と削除ボタン(Deleteキー)を追加した
Insert(挿入)処理:現在の表示フレームを開始位置としてTrim範囲を追加。終了フレームは次のTrim範囲の開始-1フレーム
Delete(削除)処理:現在選択されているTrim範囲をリストから削除する
・キー操作の追加/変更/記載をした
・先頭Trim変更時、メインフレームのサムネイルを変更
・Trim範囲変更時に動作音を出すようにした。(Windowsバルーン)
※バグ:Trim範囲がほかの範囲と被ってもエラー処理されてない^^;

Ver 0.24bでの変更点
——————-
・スクロールサムネイルの更新/停止の切り替えを「S」キーに変更
・スライダー操作の調整

Ver 0.23bでの変更点
——————-
・Adjust設定が反映されないバグの修正
・ウィンドウサイズ変更時にスクロールセンターを再計算するように修正
・Trimの合計フレームと合計時間を表示するように修正
・複数Trimの選択変更時の動作を変更、現在位置を保持するように修正
・Trim範囲の変更時の動作を調整
・いろいろ最適化(1/30秒以内の画面更新を調整、前よりはスムーズにキー移動しているように見える…はず…)

Ver 0.22bでの変更点
——————-
・Main画面でサムネイル表示がされるまで他のウィンドウを開けないように変更
※ここでOpenCVSharpのDLLを先読みさせています
・連続再生時にTrim選択ができないように変更
・バッファ格納するデータを表示に使うサムネイルのみに変更
・バッファ総数を256→128に減らした

・デバッグコードを減らして、ソースがまだ読める範囲で最適化してみた
数字キーの[4]キーでサムネイル更新のオン/オフのみ残してます
・全体的に重かった処理が、連続再生やキー処理で負荷の高いところで描画更新が止まったように見えるくらい最適化が進んだ^^;

Ver 0.21bでの変更点
——————-
・Trim位置変更時、スライダーの範囲が変更されていなかったので修正
・ts.trim.avs保存時に上書き前に.bakファイルに1世代残すように修正
・バッファ格納するデータを減らした
・サムネイル読み込み&作成の負荷を減らした
※負荷にばらつきが出るようになったのでカーソル移動時がスムーズじゃなくなった^^;

Ver 0.20bでの変更点
——————-
・Trim位置の変更を保存できるように変更
・Play中もサムネイルスクロールできるようにしてみた
数字4キー:Play中もサムネイルの更新をする/しない

Ver 0.20aでの変更点
——————-
・Trim位置の変更
[キー(OpenBrackets):Top位置の変更
]キー(CloseBrackets):End位置の変更
※エンターキーの左のキーです

Ver 0.19bでの変更点
——————-
・古いPC(i7-3770T)で再生時の負荷を調べてみた。AnyCPUは58%x64では49%。x64版中心で行きます。
※AnyCPUでは32bitが優先で使われるためと思われる。

・開始位置をTrimの1番を初期値に変更(戻した)
・サムネイルのスクロール表示対応のため、いろいろ変更。

[メモリ負荷テスト]
・スクロール表示用にバッファを増やしてみた。
・バッファサイズは256フレームに倍増。サムネイルは1/30のみ。(1920×1080フル画面で2GB前後)

[メモリ負荷テスト]
・最下部スクロール表示してみた。

今回のデバッグ用のキー
数字1キー:バッファの先頭ブロック表示
数字2キー:スクロール用バッファの表示
数字3キー:フレームのカーソル移動時にスクロールバッファも更新する/しない
※スクロールサムネイル書き込みを毎回作成しているのでかなり重いです(・・ゞポリポリ

Ver 0.18bでの変更点
——————-
[設定保存]
・設定ファイルの拡張子を.xmlに合わせた(もともと中身はセクションINIからxmlに変わってただったわけですが^^;)
・読み込みエラー対処コード入れた。

[プレビュー画面]
・連続再生時のフレームの1秒間の最大読み込み数を動画のFPSにした(先読みをやめた。カーソル移動は別。)
・プレビューがトリム範囲の時は背景色を変えるようにした。余裕ができたら色指定できるようにしたいです…。

・開始位置をTrimの1番ではなく0フレームに変更
・バッファをサムネイルのみにしてメモリ使用量など負荷を減らすテスト。
(調整中:今の仕様だとプレビューもサムネイルの引き延ばしになってしまう(^◇^;)

・空きバッファ先読み処理を削除。サムネイルの読み込みである程度はOpenCVSharpとOSのキャッシュに貯まるので無くてもいいかなと。
※表示しない部分も読み込んだり、CPU使用率跳ね上がったり、レスポンスが悪くなっていた。
・CUDA周りはビルドのDLLのサイズなど諸事情を見ていろいろ断念。手軽の範囲を超える気がした。
※フレームの表示程度では使わない(使えない)部分のほうが大きい。サイズも機能も。(笑)

Ver 0.17bでの変更点
——————-
・再生の遅延対策(Skip表示)※画像のみ
・Bufferの効率テスト。遅い。’`,、’`,、(ノ∀`)’`,、’`,、
・先読みテスト。遅い。(バッファ埋めるくらい先読みさせて高速化してみたいかと・・・甘かった)
メモリコピーとサイズ変更でうちのCPUじゃ読み込んだ方が速そう…CPU負荷は激減するけど。
ここで情報が少ないCUDAか!(笑)

Ver 0.16bでの変更点
——————-
・しばらく内輪の要望対応で、ほぼほぼデイリーアップデートになります。
・Bufferを付けてみた。128フレーム分。
・右カーソルキーでのフレーム表示が毎回フレームを読みに行っているので、再生実時間より遅いです。
(バッファ埋めるくらい先読みさせて高速化してみたいかと・・・)

Ver 0.15bでの変更点
——————-
・Trim範囲のスライダーを付けてみた
・全体的にもっさりしてるので速度改善に努める
・プレビュー画面でショートカットキーの管理に手が回らない&キーを変更したいので、一度リセット
・簡易再生機能オフ

Ver 0.14bでの変更点
——————-
・音声確認用に簡易再生を付けてみた(ボツ)

※簡易再生はMediaElementを使っていて、Trim指定で1フレームの処理をしようとしているのに、
現時点では同期できないって時点で使い物にならないわけですが(^◇^;
まぁそのうち何か考えます。優先順位は「サムネイル表示」と「1フレーム単位の画像確認」が先なんで(^_^)v

Ver 0.13bでの変更点
——————-
・複数Trim読み取りの修正

Ver 0.12bでの変更点
——————-
・サムネイルの更新タイミングの変更
・Adjust反映
・複数Trimのテスト
・TrimListで選択されたTopにHomeキー、EndにEndキーを割りあて

Ver 0.11bでの変更点
——————-
・単一のTrim表示テスト(※複数非対応)
・仮フレーム表示版

Ver 0.10bでの変更点
——————-
◆先頭フレームがずれているときの調整部分で処理を軽くしました
[ボタン操作設定]
・Reset:Trimの先頭範囲の最初のフレームを中央にして、調整フレーム数0にして再描画
・ReLoad:現在の選択位置(調整位置)を中央にして再描画
・Adjust(Set):調整位置を確定して調整フォームを終了
・Cancel:選択情報を破棄して調整フォームを終了

[追加キー操作設定]
・PageUp,PageDownで1画面前後のページを読み込みます
・カーソルキーはサムネイル画面内で選択位置を移動します
・先頭フレーム調整は±6000フレーム(約20秒)の範囲を想定
・Homeキーで0フレーム、Endキーで+6000フレームを指定します

※メモリ開放周りの例外処理が永遠に続きます。バッファ処理は外しました。OSやDLL側が持っている分だけです。

Ver 0.09bでの変更点
——————-
・サムネイルのフレーム数変更
・フレーム読込の最適化/メモリ開放の調整
・画像読込・画像表示ほぼ作り直し(笑)
・他環境での起動確認人柱版
※メモリ開放周りの例外処理がまだです。

Ver 0.07bでの変更点
——————-
・OpenCVSharpのお勉強が続いています(一か月ぶりでもう忘れてます^^;)
・数値入力例外処理追加
・画像読込・画像表示作り直し
・他環境での起動確認人柱版
・「[mpeg2video @ 0000000000000000] Invalid frame dimensions 0x0. 」エラーはソースや環境が原因なのでスルーしてます
※メモリ開放周りの例外処理がまだです。

Ver 0.06bでの変更点
——————-
・Adjustテスト
・数値入力テスト

Ver 0.05bでの変更点
——————-
・続・OpenCvSharpでサムネイルのテスト
・Trimの開始位置の調整テスト

Ver 0.04bでの変更点
——————-
・OpenCvSharpでサムネイル作成のテスト

Ver 0.03bでの変更点
——————-
・Windows Presentation Foundation (WPF)でMainWindowを書き直す
・表示位置の保存機能追加

Ver 0.02bでの変更点
——————-
・ログファイルの表示も行う
・「.ts.trim.avs」の保存機能追加
・Trim情報を表示する

その他(商標、登録商標など)
————–
・「Microsoft」,「Windows」,「Microsoft VisualStudio」,「Microsoft .NET」 は米国 Microsoft Corporation の、米国およびその他の国における登録商標です。
・「TMPGEnc MPEG Smart Renderer 5」,「TMPGEnc」は株式会社ペガシスの登録商標です。
その他、本書に記載されている各種名称,商品名,社名などは、各社の商標または登録商標です。

いつもお世話になってます!
感謝ですヽ(*^。^*)ノ
————–
・Amatsukaze を公開している nekopanda氏、 OpenCVSharp を公開している shimat氏 ありがとうございます

・nekopanda/Amatsukaze
https://github.com/nekopanda/Amatsukaze

・shimat/opencvsharp
https://github.com/shimat/opencvsharp

・Murdoc Cutter 1.9g1 – Mpeg2 Transport Stream Cutter
http://itsadirect.site90.com/M_cut.html

その他いろいろなフリーツール公開の皆様ありがとうございます。

あとがき。
————–
イレギュラーな数本のためにスクリプトいじるのは面倒だけど、全200話とかあるようなものはスクリプトをちゃんと設定しましょ。局単位に数パターン用意すればほとんど対応できるよ^^;
JL.txt書き出してくれるGUIツールがあればいいのに…どこかでフラグが立つ音が聞こえた!ような気がする(;^_^A アセアセ・・・

※CM解析の詳細と除きたいフレームや残したいフレームの分類や位置を確認をするためのツールです
※Trim以外の書き出し機能とかはありません。直接読み込みもありません。今後も対応予定はありません。すべてLGPL等経由です。大人の事情です(笑)