torum

主に開発中のアプリにまつわる技術系の事。

MP4ファイルの「タグ」にまつわる混迷と謎

音楽ファイル形式のMP3や、動画のファイル形式であるMP4には、「タグ」と呼ばれる情報を付加するデータ項目が含まれます。

特に音楽ファイルのMP3においては、「ジャンル」や「アルバム」「アルバムのカバー画像」「アーティスト」「作曲家」、などなど音楽を整理するには欠かせないものであり、iTunesなどでも意識せずともこの「タグ」情報が使われているところです。

MP3では、「ID3タグ」という規格が標準で使われるのですが、これがまたバージョンによってソフトウェア側が対応するバージョンが微妙で、最新バージョンはWindowsエクスプローラーで表示される・されない、なんてのがあったりします。音楽ファイルにおいてはまぁ色々とありながらも、情報は多く、広く標準「ID3タグ」が使われているわけです。つまり、色々なソフトウェアのサポートも充実しています。

一方で、動画ファイルにおいてはまったくと言って良いほど「タグ」情報が使われていません。比較的新しいMP4やMKVでもそれぞれ一応「タグ」は使えることになっていたりするのですが、出回っているファイルを見ても、ほぼ誰も「タグ」を使っていません。

MP4やMKVにカバー写真を追加するアプリを作ってふと思ったのですが、この動画ファイルの世界における「タグ情報砂漠」は何故なんだろう、と思うわけです。

調べてみると、MP4の「タグ」利用は極々限られた項目に限られるようです。そもそも標準規格というものすら存在しない、というのもあるのですが・・・。MKVはさらに情報が少ない。

映像なのですから、「出演者」といった項目があって然るべきですし、ドラマだったら「シーズン」「何話」みたいのも欲しい。ディスク由来のだったら一意に識別するために「制作会社」と「レーベル」や「品番(型番)」も欲しい。

また、音楽ファイルのように、レーティング(五つ星評価)みたいのも欲しいですが、これがまた謎で、あるのかないのか。あったとしても、どういう数値を入れるのか、まったく不明です。(因みに、iTunesは内部DBにレーティング情報を保存しており、Windowsエクスプローラーで表示するプロパティ画面にあるレーティングはWindowsが別管理しているファイルのプロパティ情報の一部)

何故、動画のファイルでは「タグ」情報の利用が広まらず、発展もなく標準化も進まないのか。

ひょっとしたら、個人でメディアファイルを沢山管理するというよりか、ストリーミングサービスを利用する時代になってしまったからかもしれませんね。

あと、これはニワトリが先かタマゴが先かみたいな話にもなりますが、動画ファイルに「タグ」付けをしても、現状なんの役にも立たないので、誰もやらない、というのもあるかもしれません。つまり、動画の世界では、MP3プレーヤーであるiTunesなどのキラーアプリが存在せず、楽曲をアプリで管理する音楽ファイル再生と違って、動画ファイル管理アプリはコレ、といったのが無いので、現状動画に「タグ」をつけても意味がない、ということです。(iTunesで動画をすべて管理するなんていやだし到底考えられない)

MKVなんて、カバー写真追加してもWindowsエクスプローラーでは表示すらしてくれないですしね。Windows11の公式メディアプレイヤーは「タグ」何それ?状態です。VLCでさえも、タグ情報の編集画面のバグを何年も放置したまま。

個人的にはメディアファイルをローカルに溜め込むのが趣味の化石人間なので、困ったなぁ、残念だなぁ、と思うこの頃です。ストリーミングサービスなどは、直近ではGyaoなどでもありましたが、サービス終了とともに購入したコンテンツまで消えて無くなりますしね。Amazonですらアカウント停止くらって同様な目にあったというケースも話題になりました。自分は基本的にオンラインサービスは信用していません。古いタイプのデジタル人間なので。

そんなこんなで、MPD(Music Player Daemon)の動画版のようなものがあれば良いのに、と思うわけです。バックグラウンドで動画ファイルの情報をデータベース化してくれてサーバーとして振る舞い、「ガワ」というかUI、フロントエンドは好きに作れる、みたいなの・・・。

自分で何か作っちゃおうかなぁ・・・

 

追記1:こんなページを見つけました。破綻しとるなぁ。

Tag Mapping - Hydrogenaudio Knowledgebase

 

追記2:さらに丸一日かけて色々と調べて試した感じでは、MP4では「4バイトの識別子+データ」という感じで「moov atom」に「タグ」情報を保存する模様。MP4自体の仕様に「atom」やら「box」みたいな話が出てきますね。ただし、この「4バイトの識別子+データ」には、標準規格も存在せず、具体的にどういう内容のもので流通しているかというのは分からず、QuickTime時代からのAppleが使うタグ形式が非公式に参考として参照されることがある程度、という・・・。

具体的には、

tvnn : テレビネットワーク名
tvsh : テレビショー名
tvsn : シーズン番号
tves : エピソード番号
tven : エピソードID
©nam : タイトル
©st3 : サブタイトル
desc : 短い概略
ldes : プロット内容
©cmt : コメント

等々。非公式なんでちゃんとした一覧も存在しません。

しかし、この「©」って何よ、みたいな。

このいわゆる「AppleTags」では項目が全然足りないですね。しかも、入力すべきデータの仕様が存在しないから、文字コードから始まり日付形式も不明な上に、BooleanなのかEnumなのかデータ長の制限があるのかどうかすらも分からない。てか現状iTunesですらまともにすべては使ってないし。

酷い話しだ・・・。

試したけど、結局、好き勝手に識別子でっち上げて適当なデータをぶっこめるみたいだから、勝手にタグ名を作って実装して流行ればやったもの勝ちでデファクト標準とれそうだw

ただし、タグ名を独自定義するにしても4バイト制限だと厳しすぎるでしょ、これ・・・。

 

追記3:さらに調べて行くと、英語版のウィキペディアのMP4のページに、XMP(Extensible Metadata Platform)というXML形式のメタデータ記述フォーマットを埋め込める、との一文を発見。しかし、具体例が見つからないし、てか動画では誰も使ってないんじゃ・・・。「xmp_」識別子のデータとしてXMLをぶっこめばよいのかな・・・。そもそもXMPで動画関連の項目すら見当たらないし・・・。

うーん。