Xperia とDLNA(DTCP-IP)連携で発生した問題2点

Xperia UL SOL22と、Xperia Tablet Zを使い、同じくソニー製のBDレコーダーBDZ-EW500と連携させているが、問題点が2点あり、やっとその問題が解決したのでメモ代わりにまとめる。

リビングのテレビと接続したBDZ-EW500は、無線ブリッジ(Planex)で家庭内LANに接続している構成。
この状態で、Xperiaシリーズの標準アプリ「ムービー」で「おでかけ転送」による録画番組持ち出しと、ライブチューナー視聴が可能な状態であった。

この後、「ムービー」アプリのアップデートと、SDXCメモリカードの導入で問題が発生した。

とりあえず答えから書いておく

問題:SDXCメモリカードに番組転送できない
解決:SDXCをFAT32でフォーマットし直す

問題:「ムービー」をアップデートするとDLNA機器でBDZ-EW500がみつからなくなる
解決:無線APを変える

自宅内Wi-Fi構成

我が家は壁がコンクリートであるため、特殊事情があり、Wi-Fiを基本にしている家庭内LANは普通と少し異なる。

wlan

外部回線の引き込みの関係から、Wi-Fi付ブロードバンドルータ(以下BBルータ)はA室にある。当然ながらA室での利用は何ら問題ない。

BDレコーダーはC室(リビング)にあり、そことBBルータは、無線ブリッジ(PlanexのMZK-W300NH3)で接続している。

壁がコンクリートなため、BBルータとWi-Fiで接続できるのはA室と、C室の一部くらいで、B室は不安定でほとんどつながらない。

もちろん宅内全部でWi-Fiは使いたいと考えるのが普通なので、C室にも無線AP(BuffaloのWHR-HP-GN)を設置した。
BDレコーダーは外部通信よりも屋内通信でスマホやタブレットと連携利用したいと考え、無線ブリッジではなく、この無線APに接続することにした。
ブリッジとAPの両方の機能を持つ高級機はもっていないので、安い無線ルータを2台使ったわけだ。

当初はこれでうまくいっていた。

アプリをアップデートすると使えなくなった

Xperiaを使っているとアプリの更新のお知らせが来る。
普通は機能改善がみられると期待して、躊躇せずにアップデートするだろう。
「ムービー」を購入時の初期インストールのまま使っていたが、これをアップデートした。
Video Unlimitedや、デザインの変更など、良さそうな感じである。しかし、致命的な問題が発生した。

BDZ-EW500が認識されなくなったのである。スマホを再起動しても、無線APを再起動しても変わらない。
もしやと思い、「ムービー」のアップデートをアンインストールすると、再び認識されるようになった。

これらの状況から、「ムービー」の新しいバージョンではバグが混入したに違いないと思い、初期状態のまま使用することにした。
アップデートがリリースされるたびに直っていることを期待して試したが、やはり駄目であった。

SDXCを導入

動画や音楽を入れる時、メモリ残量が少ないとエラーになるようになってきた。
確認すると、昔から使ってるmicroSDHCは8GBであった。これだけ「ムービー」おでかけ転送し、音楽を入れ、写真や動画を撮影しまくっていたら足りなくなるのも当然であった。

実は16GBや32GBのmicroSDHCを使っていたこともあるが、前に使っていたARROWS ZはSDドライバ周りに問題を抱えているらしく、クラッシュされてしまったため、グレードダウンしていた。
また32GBのmicroSDHCに増やそうかと思い、Amazonを見てみると、TOSHIBA製microSDXC64GBが3000円ちょいで売ってるではないか。32GBのmicroSDHCよりも安い。
というわけで64GB SDXCを導入した。

これで容量不足から解放されると思ったが、そう簡単にはいかなかった。
SDXCは初期時にexFATでフォーマットされているのだが、どうやらこれとAndroidの相性が悪いようである。

1時間番組が転送できない

BDZ-EW500からの「おでかけ転送」(録画番組の持ち出し)をSDXCドライブに指定して行うと、30分番組くらいは問題なくできるのだが、1時間番組になると30%前後で転送がフリーズしてしまう。
同じ番組を何回かやると、だいたい同じくらいで止まるのだが、全く同じではなく、不安定である。24%で止まることもあれば、29%まで行くこともあるという具合だ。

「これは、ムービーアプリのバグであろう。最新バージョンにすると直っているかもしれない」と考えて、「ムービー」をアップデートすることにした。
すると、やっぱり前述のBDZ-EW500が見れなくなるという不具合が発生した。
まず、BDZ-EW500が見れなくては話にならない。
今回は本気で解決策を探してみる。

Wi-Fi辺りを疑う

Xperiaではないが、「DLNAで無線APをアップデートするとできるようになった」という話を見つけた。このパターンかと思って、無線APのファームのアップデートを試みる。
ところが、使っている無線APは最新バージョンであった。
しょうがないので、ものは試しと、BDZ-EW500を無線ブリッジのほうに繋ぎかえてみた。するとどうだろう、BBルータの無線接続でBDZ-EW500が見えるようになった。

どうやら、DTCP-IPのプロトコル上の相性で、この無線APでできる、できないという問題が発生するらしい。
無線ルータを買う場合、きちんとDLNA(DTCP-IP)対応しているかどうかという問題も注意すべきか。

とりあえず、これで行ってみる。

最新バージョンでもSDXCに転送できず

BDZ-EW500が見れるようになったので、さっそく1時間番組をSDXCに転送してみるが、結論から言うと問題は同じであった。

全く別のハックで、SDXC未対応のAndroidで64GBのSDXCを使う方法として、SDXCをFAT32でフォーマットすれば使えるというものがあった。
一応、UL SOL22はSDXC対応なのだが、もしかして~という感覚で試してみた。

SDXCのフォーマットをFAT32で行うためにWindowsを使う。しかし、実は最近のWinodwsは標準でFAT32のフォーマットをすることができなくなっている。
また、古いWindowsでフォーマットしても、32GBまでしか認識できないらしい。
そこで、BuffaloのDiskFormatter2を使う。(ダウンロード

間違ってHDDをフォーマットしないように注意しつつ、64GB SDXCメモリカードをFAT32でフォーマットする。たぶん、1ファイル4GBまでに制約はされると思うが、64GB使えるようになった。

ちなみにSDXC未対応の機器でexFATフォーマット状態のSDXCメモリカードを挿すと、メモリカードを壊してしまうことがあるので要注意らしい。

解決編

いよいよFAT32でフォーマットしたSDXCメモリカードへ1時間番組を転送する。
24%, 25%…29%, 30%と、そこまでは普通に行く。
そして、39%突破。まだまだ油断ならん。
50%, 60%超える。これは行けたか。

99%…100%! 転送終了。

というわけで、転送できるようになりました。でめたしでめたし。

DLNAとDTCP-IPとDTCP+

DLNAは、Digital Living Network Allianceの略で、まぁ、家庭用の電化製品のネットワークの何かを示すもの。
家庭用AV機器では、最近そのDLNAに対応している物が多い。しかし、ちゃんと説明されてるモノは少ない。
DTCP-IPは家庭内LAN利用を前提に決められた著作権保護方式の一つ。主に日本でしか使われていないタコ規格。
さらにDTCP-IPの使い勝手をちょっと良くしたDTCP+というものが登場し、これはインターネット経由で自宅内のDLNAへアクセスできる著作権保護方式。

DLNA上でDTCP-IPに対応したメディアサーバ(レコーダーとか)とプレイヤー(スマホやタブレット、テレビ)があると、例えばリビングにあるレコーダーで録画したデジタル放送の番組や放送中の番組が、別の部屋のテレビで見れたりする。
DTCP-IPは家庭内でのみ使うように制限するため、RTTが7msとか、TTLが3までとかいう制限がある。

最近登場したDTCP+では、これに対してインターネット経由でも見れるようにした規格だ。
ロケーションフリーテレビみたいな、Slingbox, VULKANO FLOWと似たようなことができる。

今回の問題を解決する策を調べているとき、ソニーがリリースしているTV SideViewというアプリをみつけた。
これをインストールし、有料のドライバを入れるとリモートから自宅のレコーダーにアクセスし、予約設定や番組視聴ができる。
TV SideViewはXperia以外でも使えそうだ。

ということはだ、ちゃんと説明されていないが、BDZ-EW500はDTCP+に対応しているのかもしれない。(もしくは似たような別のサービス、機能があるのか)
ちなみにTV SideViewはWi-Fiで接続していないとリモート視聴はできないらしい。直接の3G/LTEでは視聴できない。Wi-Fi経由のLTEではできそうな気がする。

考察とまとめと注意点

SDメモリカードは、最大容量2Gで、フォーマットはFAT16。
SDHCメモリカードは、最大容量32GBで、フォーマットはFAT32。
SDXCメモリカードは、最大容量2TBで、フォーマットはexFAT。

SD/SDHC/SDXCの形状は同じなので、同じスロットに挿すことができるが、exFATでフォーマットされたSDXCメモリカードを非対応機器に挿すのは非常に危険で、破損の恐れもある。
さらに要注意なのは、SDXC対応の機器に挿した状態で、その機器を非対応の機器に接続するのも危ないらしい。
例えばSDXC非対応のAndroid端末に、SDXCメモリカードを挿したSDXC対応のデジカメを接続しただけでも壊れる可能性があるらしい。
基本的に、Android機やLinuxはexFATに非対応な環境が多いので、SDXCを買ってきたらFAT32にフォーマットし直すというのが正しいかもしれない。

Xperiaシリーズも元々はSDXC非対応だったものの、SDXCを挿すことでトラブルになるケースがあり、その後アップデートと言う形で対応したらしい。
AndroidはLinuxをベースにしているので、Linuxのドライバが開発中ということもあってか不安定で、バグを持っているのかもしれない。

「ムービー」アプリをアップデートするとBDZ-EW500が見えなくなる(DLNA機器が見つからなくなる)現象については謎が残る。
DTCP-IPの制限、TTL3, RTT7msが関係するかと思ったが、同じC室の無線APに繋げてもダメなのである。

とりあえずわかったことは、無線APによってはDLNAがダメなものがある、アプリ搭載のDTCP関連モジュールによっては使えなくなることがあるということ。
概ね、無線ルータ(AP)を買う時に「DLNA対応」とか「DTCP-IP対応」「DTCP+対応」とされている物を選択すれば安全じゃないだろうか。