|
■No89644 (よっしー さん) に返信 > タイトルやコメントの文字数制限を知りたいのですが > 最大何文字まで使えるのでしょうか?
フォーマットによって異なるんじゃないですかね。(自信無し)
> 検索しても意外とそういう情報が見つかりませんでした
こちらでもざっくり調べてみましたが、もともと動画形式には詳しくないですし、 TagLib を使ったことも無いので、良くわからなかったです。
とりあえず、以下は眉唾情報と言うことで。
---- MPEG4 コンテナの場合、メタデータ "moov" ボックスが 32bit 上限らしいので、 そうすると、全体で 4GB までかもしれません。
一方、メディアデータ "mdat" 自体に埋め込まれるものについては、たとえば MP3 音声部なら ID3v1 ……… タイトル 30 バイト、コメント 30 バイト、文字コード定義なし ID3v1.1 …… タイトル 30 バイト、コメント 28 バイト、文字コード定義なし ID3v2.2 …… 各項目最大 16 MB、全タグ合計 256MB まで、UTF-16 サポート ID3v2.3 …… 各項目最大 16 MB、全タグ合計 256MB まで、UTF-16 サポート ID3v2.4 …… 各項目最大 16 MB、全タグ合計 256MB まで、Unicode サポート などがあるそうです。
TagLib ライブラリを眺めていたところ、TagTypes という物があったので、 明示的に形式指定が必要な場合は、こんな感じになるのかな…。
実験に使えそうなファイルが手元に用意できないので未検証です。
Using f = TagLib.File.Create(filePath) Debug.WriteLine(f.TagTypes) f.Tag.Comment = TextBox1.Text
'誤った TagTypes を GetTag メソッドに渡すと、GetTag が Nothing を返す模様
'DirectCast(f.GetTag(TagLib.TagTypes.Ape, True), TagLib.Ape.Tag).Comment = TextBox1.Text
'DirectCast(f.GetTag(TagLib.TagTypes.Apple, True), TagLib.Mpeg4.AppleTag).Comment = TextBox1.Text
'DirectCast(f.GetTag(TagLib.TagTypes.XMP, True), TagLib.Xmp.XmpTag).Comment = TextBox1.Text
'DirectCast(f.GetTag(TagLib.TagTypes.Asf, True), TagLib.Asf.Tag).Comment = TextBox1.Text
'DirectCast(f.GetTag(TagLib.TagTypes.Id3v1, True), TagLib.Id3v1.Tag).Comment = TextBox1.Text
'Dim t = DirectCast(f.GetTag(TagLib.TagTypes.Id3v2, True), TagLib.Id3v2.Tag) 't.Comment = TextBox1.Text 'Dim p = TagLib.Id3v2.PrivateFrame.Get(t, "OriginalKey", True) 'p.PrivateData = System.Text.Encoding.Unicode.GetBytes(TextBox1.Text)
f.Save() End Using
|