対策
Windows版VLCで作ったプレイリスト書き換えて相対参照にする。
共有する条件として、SMB等で共有されたコンテンツのサーバ内にプレイリストファイルを置き、プレイリストからコンテンツを相対的に参照できる場合だけで、DLNAサーバ等のコンテンツは相対参照にならない。
準備
- プレイリストファイルは、Windows版VLCの【㎡3u8】形式をベースにする。何故かxspf形式では上手く行かなかった。m3u8形式で書き出したら、URLエンコードされていないファイル名がコメントとして追加されていたので【㎡3u8】形式をベースとした。
- 文字コードは【UTF-8】
- UTF-8等を扱えるエディタ。サクラエディタ+マクロ(decodeURI.js/encodeURI.js)がお勧め。
- プレイリストファイルを置くディレクトリを決める。
相対参照のイメージ
c:¥ーDATA
+ーー画像フォルダ
| +画像ファイル1
| +画像ファイル2
+動画フォルダ
| +動画ファイル1
| +動画ファイル2
+音楽フォルダ
| +音楽ファイル1
| +音楽ファイル2
+プレイリストフォルダ
+プレイリストファイル
こんな感じに書き換える。
絶対参照
C:¥DATA¥動画フォルダ¥動画ファイル2
相対参照(プレイリストファイルから見た)
..¥動画フォルダ¥動画ファイル2
具体例
プレイリストを置くディレクトリは【file://smbfs/Public/PlayList/】とする
変更前
#EXTM3U #EXTINF:10,Folder.jpg file://smbfs/Public/Photo/Folder.jpg #EXTINF:113,井上堯之バンド - 太陽にほえろ!メインテーマ file://smbfs/Public/Music/%E5%A4%AA%E9%99%BD%E3%81%AB%E3%81%BB%E3%81%88%E3%82%8D%EF%BC%81%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%86%E3%83%BC%E3%83%9E.mp3 #EXTINF:1701,壊れれかけのラジオ.mp4 file://smbfs/Public/Video/%E3%82%A2%E3%83%8B%E3%83%A1/__%E7%9F%AD%E7%B7%A8/%E5%A3%8A%E3%82%8C%E3%82%8C%E3%81%8B%E3%81%91%E3%81%AE%E3%83%A9%E3%82%B8%E3%82%AA.mp4
変更後
共通部分は【file://smbfs/Public】となる
#EXTM3U #PLAYLIST:プレイリストの例 #EXTINF:10,Folder.jpg ../Photo/Folder.jpg #EXTINF:113,井上堯之バンド - 太陽にほえろ!メインテーマ ../Music/%E5%A4%AA%E9%99%BD%E3%81%AB%E3%81%BB%E3%81%88%E3%82%8D%EF%BC%81%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%86%E3%83%BC%E3%83%9E.mp3 #EXTINF:1701,壊れれかけのラジオ.mp4 ../Video/%E3%82%A2%E3%83%8B%E3%83%A1/__%E7%9F%AD%E7%B7%A8/%E5%A3%8A%E3%82%8C%E3%82%8C%E3%81%8B%E3%81%91%E3%81%AE%E3%83%A9%E3%82%B8%E3%82%AA.mp4
諸注意
- この共有方法は、SMB等のネットワークファイル共有と、ディレクトリ構造を丸ごとコピーした構造が前提である。
- VLCがm3u8ファイルを書き出した時点で日本語のディレクトリ名やファイル名は【URLエンコード】され、パスの区切り文字は【/】である。
- DLNAサーバでは使えない。
- 作ったプレイリストの再修正は、Windows版VLCで可能。相対パスが絶対パスに書き換えられるため、再度相対パスへの修正が必須。
- コンテンツ削除等でプレイリストで示す場所にファイルが存在しない場合、容量や再生時間等が表示されなくなる。
- Android版VLCでは、共有されたプレイリストに対して、修正・書出しの機能機能は無く削除だけが出来る。
- Android版では一見プレイリスト修正は可能に見えるが、共有されたプレイリストには反映されず独自に管理され「メディアデータベースをクリア」すると元に戻る。