HOME → 1 Raspberry Pi → 03 作品集 → 

Volumio プレイリストの文字化け

Raspberry Pi 運用・管理
Volumio
プレイリスト 日本語の文字化け
 
「NAS」の【mp3】フォルダを選択してプレイリストを作成すると、日本語が文字化けする。
 
Volumio のプレイリストに追加した「mp3ファイル」の、日本語が文字化けする。
 
以下、文字化けの原因と解決策を記録。
 
 

 

スポンサー リンク

 

 
 
 
 
 
1. 文字化けの状況
 
Volumio の「Sources」に NASドライブ を設定し、「音楽ライブラリ」から「NAS」の【mp3】フォルダを選択して、プレイリストを作成している。
 
作成したプレイリストの、タイトル名・アルバム名・アーティスト名が英数字であれば正しく表示されが、日本語だと文字化けする。
Volumio のプレイリストに追加した「mp3ファイル」の、日本語が文字化けする。
 
全てのファイルが文字化けするのでは無く、正しく表示されるファイルもある。
 
補足:タイトル名の前にある「n - 」はトラック番号で、Volumio が自動で付加しており、トラック番号がなければ付加はされない。
 
トラック番号を非表示にするには、「設定」→「Music Library Setting」の「Show Track Numbers」を【Off】にする。
トラック番号を非表示にするには、「設定」→「Music Library Setting」の「Show Track Numbers」を【Off】にする
 
「Show Track Numbers」を【Off】にしたプレイリスト。
「Show Track Numbers」を【Off】にしたプレイリスト
 
【Mp3tag】という「MP3 音楽ファイルのタグ情報が編集できるタグエディター」を使って、タグの内容を参照してみる。
【Mp3tag】という「MP3 音楽ファイルのタグ情報が編集できるタグエディター」を使って内容を見てみる
 
■ タグが【ID3v1(ID3v1)】のファイルは、文字化けしている。
■ タグが【ID3v2.3 (ID3v1 IDV3v2.3)】のファイルは、「正しく表示されているもの」と「文字化けしているもの」が混在している。
 
 
 
2. mp3ファイルの構造
 
以下、mp3(MPEG Audio Layer 3)ファイルの構造(フォーマット)を調査。
 
ID3v1(ID3v1)】ファイルの構造
 
【ID3v1(ID3v1)】ファイルは、ファイル末尾に【ID3v1】タグが配置され、128 バイトの固定長となっている。
【ID3v1(ID3v1)】ファイルは、ファイル末尾に【ID3v1】タグが配置され、128 バイトの固定長となっている
 
【ID3v1(ID3v1)】ファイルの内容を、16進数で表示してみる。
【ID3v1(ID3v1)】ファイルの内容を、16進数で表示してみる
 
ファイルの末尾に ”TAG” という文字が現れ、 ID3v1 タグが配置されている。
 
aiko-桜の時 ID3v1(ID3v1) の、【ID3v1】タグの詳細。
aiko-桜の時 ID3v1(ID3v1) の、【ID3v1】タグの詳細
 
この ID3v1 タグに、曲名・歌手名・アルバム名などが【Shift_JIS】で記述されている。
 
Volumio のプレイリストには、アーティスト名の「aiko」は英数字なので表示されているが、曲名・アルバム名などの【Shift_JIS】は文字化けしている。
 
 
ID3v2.3 (ID3v1 IDV3v2.3)】ファイルの構造
 
【ID3v2.3 (ID3v1 IDV3v2.3)】ファイルは、
 ・ファイルの先頭に【ID3v2】タグを配置し、
 ・ファイルの末尾に【ID3v1】タグを配置して、
この間に【MPEG Frame】をサンドウィッチする構造になっている。
【ID3v2.3 (ID3v1 IDV3v2.3)】ファイルは、  ・ファイル先頭に【ID3v2】タグが配置され、  ・ファイル末尾に【ID3v1】タグが配置される、 【MPEG Frame】をサンドウィッチする構造になっている
 
「正しく表示されている【コブクロ-桜】」と「文字化けしている【森山直太朗-さくら (独唱) 】」のファイル内容を16進数で表示してみる。
「正しく表示されている【コブクロ-桜】」と「文字化けしている【森山直太朗-さくら (独唱) 】」のファイル内容を16進数で表示してみる
 
ファイルの先頭に ”ID3” という文字が現れ、 【ID3v2】タグが配置され、ファイルの末尾に ”TAG” という文字があり、 ID3v1 タグが配置されている。
 
文字化けしている「森山直太朗-さくら (独唱) ID3v2.3 (ID3v1 IDV3v2.3)」の、【ID3v2】タグの内容。
文字化けしている「森山直太朗-さくら (独唱) ID3v2.3 (ID3v1 IDV3v2.3)」の、【ID3v2】タグの内容
 
【ID3v2.3】タグには、アーティスト名・曲名・アルバム名が【Shift_JIS】で記述されている。
 
尚、文字化けしている「森山直太朗-さくら (独唱) ID3v2.3 (ID3v1 IDV3v2.3)」の末尾にある【ID3v1】タグは、値が全て “20” NULL になっている
 
 
正しく表示されている「コブクロ-桜 ID3v2.3 (ID3v1 IDV3v2.3) 」の、【ID3v2】タグの内容。
正しく表示されている「コブクロ-桜 ID3v2.3 (ID3v1 IDV3v2.3) 」の、【ID3v2】タグの内容
 
【ID3v2.3】タグには、曲名が【UTF-16】で記述されており、アルバム名は英数字で、アーティスト名のフレームは無い
 
↑↑↑:上記は間違い
各フレームは、ファイルの先頭に配置されるものと思っていたが、ファイルの中間辺りにも多くのフレームが配置されていた。
各フレームは、ファイルの先頭に配置されるものと思っていたが、ファイルの中間あたりにも配置されていた
 
上記のアドレス「00050F」からのフレームの内容。
上記アドレス「000510」前後からのフレームの内容
 
ここに、演奏者やアーティスト名が【UTF-16】で記述されていた。
 
 
正しく表示されている「コブクロ-桜 ID3v2.3 (ID3v1 IDV3v2.3) 」の、末尾にある【ID3v1】タグの内容。
正しく表示されている「コブクロ-桜 ID3v2.3 (ID3v1 IDV3v2.3) 」の、末尾にある【ID3v1】タグの内容
 
この ID3v1 タグには、曲名・歌手名が【Shift_JIS】で記述されており、アルバム名と年は英数字となっている。
 
 
上記の結果からの推測。 
①.【ID3v1(ID3v1)】ファイルの【ID3v1】タグは、
  【Shift_JIS】で記述されている。
②.【ID3v2.3 (ID3v1 IDV3v2.3)】ファイルの【ID3v2】タグは、
  【Shift_JIS】か【UTF-16】で記述されている。    
③.【Shift_JIS】のタグは文字化けするが、【UTF-16】のタグならOK。
 
 
結論:日本語を正しく表示するには、MP3ファイルを・・・。
【ID3v2.3 (ID3v1 IDV3v2.3)】タグにし、
 エンコードを【UTF-16】で記述する。・・・必要がある。
 
 
 
3. ID3v2 の フレームID と UTF-16 について
 
【ID3v2.3】タグの詳細。
【ID3v2.3】タグの詳細
 
エンコーディングについて。
00:ISO-8859-1
01:BOMありUTF-16
※:ISO-8859-1と称して、Shift-JISが埋め込まれる例(Windows系)が多い。
 
 
ID3v2 主なフレーム ID。
ID3v2 主なフレーム ID
 
UTF-16で『A』を表現したときの5つのエンコード。
UTF-16で『A』を表現したときの5つのエンコード
 
テキストの前に「FF FE」を付ける【UTF-16LE】パターンが使われている。
 
 
 
4. タグを【ID3v2.3 の UTF-16】に変換
 
【Mp3tag】を使って、全ての mp3ファイルのタグを【ID3v2.3 の UTF-16】に変換して見る。
 
ファイルを読み込んで、「ツール」から「オプション」を選択する。
ファイルを読み込んで、「ツール」から「オプション」を選択する。
 
オプション設定の画面で、「書込」を【ID3v2.3 UTF-16】にし、「削除」で【ID3v2】以外にチェックを入れ「OK」をクリックする。
オプション設定の画面で、「書込」を【ID3v2.3 UTF-16】にし、「削除」で【ID3v2】以外にチェックを入れ「OK」をクリックする
 
「編集」で「全てのファイルを選択」をクリックする。
「編集」で「全てのファイルを選択」をクリックする。
 
「ファイル」から「フィールド全てを保存」をクリックする。
「ファイル」から「フィールド全てを保存」をクリックする。
 
全てのファイルのタグが「ID3v2.3(ID3v1 ID3v2.3)」に変更される。
全てのファイルのタグが「ID3v2.3(ID3v1 ID3v2.3)」に変更される。
 
【ID3v1(ID3v1)】から【ID3v2.3 (ID3v1 IDV3v2.3)】への変換結果。
【ID3v1(ID3v1)】から【ID3v2.3 (ID3v1 IDV3v2.3)】への変換結果

【ID3v1(ID3v1)】から【ID3v2.3 (ID3v1 IDV3v2.3)】への変換結果

【ID3v2.3】タグが作成され、アルバム名・アーティスト名・ジャンル・曲名等、全てのフレームのコンテンツが【UTF-16】で設定された。
 
 
元々【ID3v2.3 (ID3v1 IDV3v2.3)】タグだが、内容が【Shift_JIS】のファイルを変換した結果。
元々【ID3v2.3 (ID3v1 IDV3v2.3)】タグだが、内容が【Shift_JIS】のファイルを変換した結果
 
・【ID3v2.3】タグ内のフレームが、先頭に集められた。
・【ID3v1】タグに変化はない。
 
変換後の【ID3v2.3】タグの詳細(一部)。
変換後の【ID3v2.3】タグの詳細(一部)
 
変換前には先頭になかったフレームが先頭に集められ、日本語のコンテンツは【UTF-16】で、英数字のコンテンツは【ISO-8859-1】で設定されている。
 
 
元々【ID3v2.3 (ID3v1 IDV3v2.3)】タグで、内容が【UTF-16】のファイルを変換した結果。
元々【ID3v2.3 (ID3v1 IDV3v2.3)】タグで、内容が【UTF-16】のファイルを変換した結果
 
このケースでも【ID3v2.3】タグ内のフレームが先頭に集められ 、【ID3v1】タグには変化なし。
 
変換後の【ID3v2.3】タグの詳細(一部)。
変換後の【ID3v2.3】タグの詳細(一部)
 
同じく、変換前には見当たらなかったフレームが先頭に集められ、コンテンツは【UTF-16】のままで、変更はされていない。
 
 
 
5. Volumio プレイリストの再作成
 
文字化けしているプレイリストは削除しておく。
 
「音楽ライブラリ」の該当フォルダを選択し、「Update Folder」を実行する。
「音楽ライブラリ」の該当フォルダを選択し、「Update Folder」を実行する
 
該当フォルダの文字化けが解消される。
該当フォルダの文字化けが解消されている
 
該当フォルダを「プレイリストに追加」する。
該当フォルダを「プレイリストに追加」する。
 
プレイリストの内容を見ると、文字化けが解消されている。
プレイリストの内容を見ると、文字化けが解消されている
 
 
参考:Volumio に Synology NAS を接続。
 
以上。
(2022.06.30)
 

 

スポンサー リンク

 

             

 

 

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください