SVX日記
2020-04-10(Fri) mp3のタグに画像を組み込みたくてなんとかする
先日「ネット上がバカの見本市のようになっていて不快だ」と書いたが、恐ろしいことに未だ続いている。
なぜニュースサイトは、芸人やキャスターや野党の党員など、頭の悪い連中の無責任な持論を記事にするのだろうか。クソの役にも立たないばかりか、同程度に頭の悪い輩が扇動されるではないか。もはやヘッドラインが目に入ることすら辟易しているが、頭の悪い発言をした芸人やキャスターや野党の党員などの名前は覚えておくからな。
結局、伝染病なんて、誰のせいでもないんだから、政府を含め、誰を責めても何の解決にもならないことくらい、何故わからないかね。発言が取り上げられるような立場なら、せめて皆を勇気づけたり、和ませる発言をしてほしいもんだ。頭の悪い素人のオマエラの考えた無責任な方策なんて、決して採用されることなんてないのだから。
などといいつつ、先日、いつものカラオケ屋に練習に向かったところ「今日は早く閉めることになったので1時間半までです」と言われたばかりか「明日から長期休業に入ります」などという最後通告を受けてしまった。ガーン……コロナの影響が遂にここまで……長らく週2のペースで練習してきて、一度丸1週間空けたら喉がナマったくらいだったのに、長期休業なんて想像もつかないぞ。まぁ、店を閉める側のダメージこそ想像もつかない大きさなのんだろうけれど。ひとりカラオケ以外はバッチリ三密だからねぇ……。
ラスト1時間半のつもりで、ブッ通しで17曲。最近、グッとピッチの精度を向上しつつ、無理に出していたhi-A#の制御率も上がりつつ、シャウトの声色も鮮やかさを増しつつ、なにせすべてにおいて登り調子なのになぁ。まぁ、別の店を探すか……県外も視野に入れつつ。
で、頭の方はプログラミングだ。ちょっと前に突然、mp3ファイルにアルバムのジャケットイメージを組み込みたくなってタマらなくなってしまったのだ。mp3ファイルへのタグ付けといえば、ずっと前にツールを自作しているのだが、そいつを機能拡張する形がいいだろう。久々にコードを見直したら、自ら直接にmp3バイナリを書き出すコードになっていて驚いた。なかなかやるな、過去のオレ。ネット上にあったID3v2.3タグの仕様書を見つつ、APICタグで画像を組み込んだり、APICタグから画像を抽出したりするコードを書く。できた。PSPに転送して動作を確認。成功。
PSPも悪くないが、スマホを持ち歩かない自分が、もうちょっと軽く音楽を持ち歩けないかと、アレコレmp3プレイヤを物色していたところ、イイ感じのアイテムが見つかり、ポチったものが届いた。いわゆる中華プレイヤ。RUIZUのX52。これだ。
ところが、立派なカラー液晶を搭載しているのに、ジャケットイメージが出ない。それはアリエナイだろう……せっかくタグ付けツールを自作したのに……いや、でも、PSPだと出てるんだよなぁ。市販のジャケットイメージ付きのダウンロードmp3ファイルはどうか、と、Amazonで購入したギャラクティックストームのmp3をそのまま転送してみたところ……出るぞ!? なんだこれ? 何が条件だ?
微妙なタグの仕様をアレコレしても変化なし。そこで、ギャラクティックストームのジャケットイメージを抽出して、別のmp3に組み込んだところ……出る!画像形式か! ……てなわけで、オチは「progressiveなjpeg形式には対応していない」なのでした。gimpでprogressive形式を落としてやるとバッチリ……ところが、こんどはヘタな縮小処理が気になりだした。えーい、ドットバイドットで表示できるように事前処理してやんよ。
「64x64」と当たりをつけ、格子模様のmp3を転送してみたがモアレた。モアレの様子を見つつ、あれこれ試行錯誤したら「76x68」であることが判明。なんと中途半端な。結局、progressive形式の落としついでに、convertで変換するのがベストな方法のようだ。アスペクト比を保ちつつ、黒縁を足す処理を入れたら、以下のコマンドになった。
$ convert -resize 76x68 -unsharp 12x6+0.5+0 -quality 95 -extent 76x68 -gravity center -background black jacket0.jpg jacket.jpg
これでバッチリだ。パッケージを置いておく。
情報を探し回りロシアまで訪れて、さんざん試行錯誤したところ、ffmpeg-amvというツールで変換でき、再生することに成功した。しかし、変換ツールの使い方の問題なのか、画質がワルプルギスの夜である。
$ ffmpeg -i madoka01-01-13.mp4 -vcodec msmpeg4v2 -s 128x72 -acodec wmav2 madoka01-01-13.wmv
$ ffmpeg-amv -i madoka01-01-13.wmv -f amv -s 128x72 -r 15 -ac 1 -ar 22050 madoka01-01-13.amv