- 2014/08/24 Sun
-
ファミリーマートにK&Kのウインナーソーセージ缶があったので全部買ってくる。4缶。
Androidの動画プレーヤーからだとサブディレクトリに置いたファイルが再生できない件の確認。
playコマンドで渡しているパラメータから、- Windows + JW Player
mp4:subdir/foo.mp4
- Android + MX動画プレーヤー
mp4:foo.mp4
のようにサブディレクトリが落ちてしまってますね。
駄目だこりゃ。
あれこれ試した結果、URL指定をrtmp://host:1935/mp4:subdir/foo.mp4
ではなくrtmp://host:1935/bar/mp4:subdir/foo.mp4
のように、「mp4:」の前に階層を挟めば期待するコマンドが発行されるという結果に行き着く。
「bar」は任意で、それどころか、rtmp://host:1935/bar/baz/mp4:subdir/foo.mp4
のように複数階層あってもいけます。
なんだそれ。
どう解釈されてるのこれ…
釈然としないけど、これでAndroidから再生できるようにはなった。
と思いきや、新たな問題が。- HTMLのアンカータグから動画プレーヤーに連携しようとした場合に、マルチバイト文字を含むファイル名だと再生できない。
- アンカータグ経由の場合、動画プレーヤーにはエンコードされたURLが渡される。
- RTMPのパラメータもエンコードされた文字列になる。
- サーバーはデコードせずにそのままファイルを探しにいってnot found。
- サーバーを改造するか…と思ったけど、それ以前にパラメータが欠損しているような。
- パケットキャプチャを眺めた感じ、playコマンドのパラメータが255byteで切られているような。
- 対象で一番長そうなパスをエンコードしてみたら837byteとかあった。
駄目だこりゃ。
キンミヤ一升瓶補充。
ウインナーソーセージかじりながらパケットキャプチャを眺める。