=================================================
ソフト名       ：PANDA重複動画削除ソフト
バージョン    ： 1.1.1
動作環境     ： Windows10、Windows8、Windows Vista、Winodows7
ライセンス   　 ：フリーソフト。
必要なランタイムなど ：.net framework
サポートurl https://shimarisu.ie-t.net/

=================================================
■このソフトの説明

ローカルPC上の重複動画ファイルを検出して削除するソフトです。
解像度やサイズなどが異なっても同じ動画なら重複検出できます。
動画ファイル専用です。

私が作った「PANDA重複ファイル削除ソフト」の方は全く同じファイルしか検出しません。
ファイルサイズや解像度が異なる動画ファイルは検出できないのです。

ですが、このソフトを使えば、
ファイルサイズや解像度が異なっても同じ動画ファイルならば、
重複を検出できます。
例えばサイズの小さい動画とサイズの小さい動画があって、
最大の動画だけを残して小さい動画を一括で削除したい場合などに使える。


1.異なるサイズや解像度の動画でも重複を検出できる。
2.ファイルやフォルダをドラッグ&ドロップにより入力できる。
(複数可）
今までに取得したフォルダをテキストファイルに書き出し
再登録する時にコンボボックスで選択で登録もできる。
3.重複検出した場合、最大サイズのファイルを残すか、
最小サイズのファイルを残るか、日付が古いファイルを残すか、
新しいファイルを残すかの選択ができる。
4.重複検出するとテーブルに名前、フルパス、日付、ハッシュ、サイズが表示されて、
重複一覧が並ぶのでので本当に重複ファイルかどうかが分かりやすい。
削除するファイルはチェックしてあり、
残すファイルはチェックは無いので、
確認してから「削除」ボタンで一括削除できる。
削除してもゴミ箱に入るので取り消しは可能。
5.mftを使ってドライブを一括チェックもできる。

■使い方
PANDA類似動画削除ソフト.exeを起動します。

登録するには、
メインタブに動画ファイルが入ったフォルダかテキストファイルを
ドラッグ&ドロップします。
（複数可。テーブルタブD&Dでも良い。）

サブフォルダも取得します。

「開く」ボタンはクリックするとダイアログが出るので、
フォルダを選択するとそのフォルダを登録します。

一度登録するとfolder.txtに書き出されます。
起動時にfolder.txtをコンボボックスに読み込みます。
「folder.txtを一括で取得」チェックを外して、
コンボボックスを選択して「開始ボタン」を押すと、
そのフォルダを取得できます。
（再取得する場合に、D&Dするのが面倒なら、
コンボボックスで選択できる機能です。）

「folder.txtを一括で取得」チェックを入れると、
folder.txtに書かれたフォルダ内のファイルを全て一括で登録します。

取得する画像形式はjpg、png、gif、bmpだけです。
ファイルの拡張子で判別します。

「フォルダ内のファイル取得方法」はフォルダ内のファイルの取得方法でうｓ．
「System.IO.Directory.GetFiles」をチェックすると、
System.IO.Directory.GetFilesで取得します。
「 Directory.EnumerateFiles」をチェックすると、
Directory.EnumerateFilesで取得します。
「dirコマンド」をチェックすると、
dirコマンドで取得した文字列からファイルパスを取得して
ファイルを取得します。
（サブフォルダも含む。
dirコマンドには/s /bオプションを付けてます。）
どれを選択しても作業時間は大して変わらないです。
どれでも良いです。

「Directory.GetFilesで拡張子指定する」をチェックすると、
Directory.GetFilesで拡張子指定して指定拡張子のファイルのみを取得します。
異なる拡張子を取得しないので早くなります。
mp4を取得しようと思ったら「*.mp4」になります。
「.mp4」ではないので注意。
また、複数の拡張子を指定できないので注意。
一つの拡張子しか指定できません。
「 Directory.EnumerateFiles」や「dirコマンド」をチェックした場合でもこの設定は適用されます。

登録できなくなった場合は
「Directory.GetFilesで拡張子指定する」を外して見ると良いです。

「取得したフォルダをテキストに書き出す」チェックは
チェックすると、取得したフォルダをfolder.txtに書き出します。


[プログレスバー]チェックは有効にするとプログレスバーが表示されます。

[アニメ]チェックは有効にすると登録時に回転するアニメのアイコンが表示されます。


 [日付の設定]は日付が更新日か最終アクセス日か作成日かの設定です。

重複チェックに使うハッシュはPerceptual Hashです。

[削除対象]で[サイズが大きいのを残す]をチェックすると。
最大サイズの動画を残して他の小さいサイズを削除します。
[削除対象]で[サイズが小さいのを残す]をチェックすると。
最小サイズの動画を残して他の大きいサイズを削除します。
[削除対象]で[日付が古いのを残す]をチェックすると。
日付が一番古い動画を残して他の画像を削除します。
[削除対象]で[日付が新しいを残す]をチェックすると。
日付が一番新しい動画を残して画像を削除します。

[削除対象]で[解像度が大きいのを残す]をチェックすると。
最大サイズの解像度を残して他の小さいサイズを削除します。
[削除対象]で[解像度が小さいのを残す]をチェックすると。
最小サイズの解像度を残して他の大きいサイズを削除します。

[解像度が大きいのを残す]と[解像度が小さいのを残す]は
[解像度を取得]チェックが必要になります。

ファイルは動画だけを取得します。
このソフトは動画ファイルかどうかの識別を拡張子でします。
「取得する動画の拡張子(正規表現)」に取得する動画の拡張子を入れます。

設定2タブの「取得する画像の拡張子(正規表現)」に取得する動画の拡張子を正規表現で入れます。
デフォルトは.(avi|mp4|flv|wmv|mov|3gp|webm|mpg|ts)
例えばwebm、mp4、aviだけなら(webm|avi|mp4)。



ffprobe.exeで「外部実行ファイルの待ち時間」に設定した時間がすぎると、
スルーされます。ミリ秒単位です。
10000なら10秒でスルーされます。

■アルゴリズムについて

画像のハッシュ取得のアルゴリズムを
メインタブの「アルゴリズム」で設定できます。

aHash(Average Hash)
    画像の平均輝度からの差分を使った方法。

pHash（Perceptive Hash） 
    DCTを適用してハッシュ値を算出
dHash(Difference Hash)
    隣接領域との差分を使った方法。

この設定は変えても大して変わらないと思います。

■「切り取り方法」についての注意点

動画から画像を切り取る方法はWindowsThumbnailProviderとffmpegの2つあります。
WindowsThumbnailProviderは処理が早いですが、
サムネイル画像を取得する秒数を指定できなくて自動のおまかせになるので
信用性は低いので推奨しません。
結果を盲信しないでください。
WindowsThumbnailProviderはエクスプローラーのサムネイル画像と同じ画像です。
なので異なる動画でもサムネイルが同じ動画だと重複検出してしまうのです。
（映画会社のロゴ、アニメのOP、EDなどがある場合。）
そういう特性を知った上で使ってください。

flvなどはwindowsのデフォルトでサムネイル表示できないので
ここにあるIcarosでサムネイル表示できるようにすれば良いです。
https://www.gigafree.net/media/codecpackage/icarossetup.html
https://www.majorgeeks.com/files/details/icaros.html

「切り取り方法」を「ffmpeg」にすると
ffmpegで画像を切り取ります。

ffmpegで「切り取る画像数」を二枚か三枚にすれば、
一つの動画で二枚か三枚切り取とります。
それにより誤検出を防ぎます。
切り取る画像が一枚だけだと条件によっては異なる動画を重複として検出することもありえます。
何故、異なる動画を重複として検出する可能性があるかというと、
シリーズ物のアニメでOP、ED、CMが入る場合は、
異なる話数でも全く同じ時間に全く同じ映像が表示されるからです。
映画の上映前の映画会社のロゴ映像でもありえます。
twitterなどのオリジナルの動画ならその心配は無いと思います。

二枚か三枚の画像のハッシュを取得すると余分に時間が掛かります。

再生時間で重複チェックしてるので、
再生時間が異なる動画は重複検出できないです。

明らかに同じ動画なのに重複として検出しない動画もありますが、
画像のハッシュの一致度が高いが100%一致でない動画は
重複として検出しません。
100%完全一致のみを重複として検出します。



■[コピー時にダイアログを表示(推奨）]について

[コピー時にダイアログを表示(推奨）]をチェックすると
コピーと移動で経過ダイアログを表示します。
エクスプローラーでコピーした時のと同じ奴です。

動画はサイズが大きくて時間がかかるので、
チェックしとけば良いです。

■動画重複検出の仕組み

GetDetailsOfで動画の総時間を取得する。
GetDetailsOfで取得できない動画はffprobe.exeで動画の総秒数を取得する。
ffprobe.exeはGetDetailsOfで取得できなかった場合の予備です。
同じ総時間の動画を抽出する。
WindowsThumbnailProviderで動画から特定の画像を切り取って保存。
画像のハッシュを読み取って、
他の動画と比較して重複検出する。
画像を取る秒数は同じなので同じ動画なら同じ画像になるので重複判別できる。

■動画の解像度の取得方法について

[解像度を取得]をチェックで解像度を取得します。

「取り出し方法」が「ffmpeg」の場合は、
取り出した画像の解像度から取得します。

「取り出し方法」が「WindowsThumbnailProvider」の場合は
 ffprobe.exeで動画の解像度を取得します。

■[削除でゴミ箱を使わない]チェックについて

[削除でゴミ箱を使わない]チェックすると
削除する時にゴミ箱に入れません。

ゴミ箱を使わない方が削除が早いです。
大量に削除する場合に有効にすると良いです。

ゴミ箱を使うとメモリの消費が激しく増えるみたいです。


■[サイズや時間の取得でGetDetailsOfを使う]チェックについて

問題なければチェック入れとけば良いです。

[サイズや時間の取得でGetDetailsOfを使う]をチェックすると、
ファイルのサイズをGetDetailsOfで取得する。
どうなるかというと、
50.5kや20.2Mなどサイズの表示が分かりやすくなる。

[サイズや時間の取得でGetDetailsOfを使う]チェックを外すと
バイト単位での表示になる。

サイズを表示出来ない場合はチェックを外してください。

このチェックを無効にすると、
動画の時間はGetDetailsOfでなくffprobe.exeで取得するようになります。
（チェックを外した場合でもGetDetailsOfで取得できない場合は
ffprobe.exeで取得する。）


■ドライブを一括チェックする機能

この機能は管理者権限が必要です。
管理者権限で起動してください。
（管理者権限で起動した場合はD&D機能は使えないみたいです。）

[開始で実行する機能の設定]で[ドライブを選択]をチェック。

メインタブの「入力ドライブ名」に入力ドライブ名を入れます。
Cを入れれば良いと思います。。
デフォルトはC。
C:\のような:\は不要なので注意。
アルファベット一文字のみを入れてください。
大文字小文字はどちらでも良いです。

[開始]ボタンで開始されます。

HDDのファイル数によってはそうとう時間がかかるので注意。

[ドライブの一括取得でリミット数以上を取得しない]チェックは
チェックすると、[ドライブを選択]した場合で、
取得ファイル数にリミットを付けて途中で終了します。
[ドライブの一括取得で取得リミット数]にリミット数を入れます。
時間がかかるので途中までで良いのでやってみたいって人は
チェックすると良いです。

[プログレスバーを更新する間隔]はプログレスバーを更新する間隔です。
適用されるのはドライブ取得で最初のファイル取得の時のみです。
間隔は[件に一度更新]のとこに入れます。
ファイルが多すぎると、プログレスバーの更新が多すぎて
時間がかかるのでつけた。
デフォルトは10000。
10000だと1万件に一度、プログレスバーを更新します。
ファイル数が少ないHDDだと、もっと数値を小さくしないといけないです。
数値が小さすぎると登録作業が遅くなるので注意。
自分で調節してください。
この設定はドライブ取得のみです。
[コンボボックスの選択]やドラッグ&ドロップの入力では適用されません。
一つのファイルずつプログレスバーが更新されます。


■削除テーブル
重複が検出されると
[テーブル]タブに入ります。
「削除」ボタンを押すとチェックされたファイルが一括削除されます。

削除したファイルはゴミ箱に入ります。

[削除対象]で[日付が古いのを残す]にチェックすると、
ファイルの日付が新しいのを削除して一番古いファイルを残します。
[日付が新しいのを残す]にチェックすると、
ファイルの日付が古いのを削除して一番新しいファイルを残します。

[日付の設定]で重複チェックに使う日付を何にするか設定できます。
[最終更新日]。[最終アクセス日]、[作成日]  のどれかを選択できます。

 [削除ログ]は削除したファイルのログです。
delete_log.txtに削除したファイルのパスが入ります。

[1日以上前の古いファイルを削除しない] は間違って削除しないための安全装置です。
チェックすると、ファイルの日付を確認して1日以上前の古いファイルは削除しません。
通常、重複チェックして削除するのは、
ダウンロードしてフォルダに入れた新しいファイルの方だと思うので
この機能を付けた。
チェックを外せば古いファイルも削除出来ます。

 テーブルサイズはフォームのサイズに合わして
ある程度、縦に可変します。


■正規表現で削除ファイルを選択する機能


日付の新しいか古いか以外にファイル名で
削除対象を判定する機能をつけた。

設定2の「削除判定」の
「正規表現にヒットしたファイルを残す」をチェックすると、
正規表現にヒットしたファイルを残す。
「正規表現にヒットしたファイルを削除」をチェックすると、
正規表現にヒットしたファイルを残す。

「削除判定のファイル名(パス)の正規表現」に正規表現を設定する。

正規表現の対象のテキストはファイル名とファイルのパスです。
ファイル名だけでなくフォルダ名でもできます。

例えば、ファイル名が
G0SoaplbsAAJBTk.jpg
1982358197408268339_1.mp4
の同じファイルがあるとして、

[0-9]+_[0-9]+.mp4を入れて、
「正規表現にヒットしたファイルを残す」をチェックすれば、
G0SoaplbsAAJBTk.mp4が削除される。
「正規表現にヒットしたファイルを削除す」をチェックすれば、
1982358197408268339_1.mp4が削除される。


■複数フォルダをチェックする機能

2つの方法があります。

[開始で実行する機能の設定]で[複数フォルダ(folder.txt)]をチェックして
「開始」ボタンを押した場合、
folder.txtに書かれたフォルダを複数のフォルダを一括チェックします。

[開始で実行する機能の設定]で[複数フォルダ(テキストボックス)]をチェックして
「入力フォルダ」タブに複数のフォルダをD&Dします。
「開始」ボタンで一括チェックします。

■テーブルを保存する機能

テーブルに入った状態で「保存」ボタンを押すとテーブルを保存できます。
「テーブル保存設定」でCSVかJSONかを設定できます。

「保存ファイル名」で保存されるファイル名を設定できます。
(拡張子不要）

「保存ファイル名」が空の場合は日付と時間のファイル名で保存される。




■ライブラリ

CoenM.ImageHash
NtfsReader.dll




■動作環境
windows10、windows8、、Windows7 (32bit&64bit)、windows11

■インストール
任意のフォルダに圧縮ファイルを展開してください。

■アンインストール
レジストリは一切使っていないでの、
ゴミ箱に捨てれば良いです。

★更新履歴
2026/1/18
ver 1.1.1
取得する動画の拡張子の設定。
2026/1/17
ver 1.1.0
CSVやJSONでテーブルを保存できる機能。

2026/1/16
複数のフォルダを重複チェックできる機能。
削除対象を正規表現で選べる機能。
「切り取り方法」のチェックが保存されなかった問題を修正。

ver 1.0.9
2021/2/15
ver 1.0.8
2021/2/9
ver 1.0.7
2021/2/4
ver 1.0.6
サイズの大きい方だけ残す機能で間違ってたのを修正。
削除でゴミ箱に入れない機能。
削除でプログレスバー。
解像度の大きいのを残す機能。
テーブルに動画の解像度を表示。
2020/3/26
ver 1.0.5
2020/2/24
dhashやphashで取得できるようにする。
削除対象の設定が反映してなかったのを修正。
ver 1.0.4
2020/1/19
ver 1.0.3
ffmpegで切り取る方法を復活させる。
ffmpegで取得失敗や取得に時間がかかることが無くなる。
ffprobe.exeとffmpeg.exeのバージョンを新しくする。
2020/1/16
ver 1.0.2
2020/1/15
ver 1.0.1
取得できない動画はほぼ無くなる。
ffmpegとffprobeを止めたので処理が速くなる。
ffprobeでなくGetDetailsOfで動画の秒数を取得するようにする。
ffmpegを止めてWindowsThumbnailProviderで画像を切り取りするようにする。
削除の代わりに移動やコピーする機能。
サイズ表示&動画の時間表示を分かりやすくする。
PANDA類似動画削除ソフトからPANDA重複動画削除ソフトに改名。
2019/12/21
ver 1.0.0
初公開
