ThumbnailCityの仕組み

この記事では、ThumbnailCityの仕組みについて技術的な解説をしています。

mp4やFLVのような一般的な動画ファイルは、mp3とは異なりサムネイルをファイル内に格納する標準仕様が存在しません*1。したがってExplorerのようなファイラーは、動画から映像を1枚抜き出して表示用のサムネイルを作っています。Windowsの場合、この機能を持ったソフトウェアを「サムネイルプロバイダー」と言います。つまり、「動画ファイルのサムネイルを変更」することは、「サムネイルプロバイダーが映像を選ぶ方法を変える」ことを意味します。「動画ファイル内のサムネイルを書き換える」という考え方は成り立ちません。

*1: Appleのカバーアートboxのようなベンダ依存仕様は存在します。

サムネイルプロバイダーとは

サムネイルプロバイダーは拡張子毎に置き換えが可能で、mp4やwmv等のサムネイルプロバイダーはOSの一部として提供されていますが、FLV等のそれは3rdパーティのソフトウェアとして提供されています。

Explorer等のアプリは、サムネイルキャッシュを経由してサムネイルプロバイダーにサムネイルを要求しますが、動画のどの位置を画像化するかを要求しません。そのため、一般に提供されているサムネイルプロバイダーは、動画の固定された位置の画像を生成するなど、分かりにくい画像をサムネイルにしてしまいがちです。

ThumbnailCityは、動画ファイル毎にサムネイルの位置をADSと呼ばれるファイルに付随する領域に記録し、位置情報の有無や拡張子の種類に応じて元のサムネイルプロバイダー、DirectShow又はMediaFoundationを使用してサムネイルを生成しています。

こうした仕組みにより、ThumbnailCityは以下の機能を実現しています。

  • サムネイルキャッシュが消えても、指定したサムネイルが再び表示される。
  • サムネイルを指定しない場合は、元のサムネイルが表示される。
  • 動画ファイルを移動やコピーしても、位置情報も一緒に移動やコピーされる。(シェアウェア版のみ)

一方で、以下のような制限事項も存在します。

  • FLV等のOSが標準でサポートしていない動画は、それ用のSplitterやDecorderが必要になる。
  • サムネイル位置情報は、NTFS又はReFS上でしか記録できない。(Version 1以前)

ThumbnailCity Version 2以降では、MP4コンテナ動画へのサムネイル位置情報とカバーアート画像の埋込み機能を追加しています。

これによりMP4コンテナ限定ではありますが、以下が可能になっています。

  • 埋込みしたサムネイル画像は、ThumbnailCityをインストールしていないWindows 10以降のPCでも表示されます。
  • macOS、iOS等のApple社製デバイス上でも表示されるようになります。
  • FAT等のADS機能が無いメディアに格納された動画ファイルにも、サムネイルやブックマークを指定することができます。
  • 指定した動画を、CDFS等の光学メディアに書き込んだ場合でも、サムネイルやブックマークが表示されます。