わいえむねっと

Contents
Categories
Calendar
2014/08
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Monthly Archives
~2000/01
Recent Entries
RSS1.0
Templates
Information
Processed: 0.050 sec
Chashed: -
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のアンカータグから動画プレーヤーに連携しようとした場合に、マルチバイト文字を含むファイル名だと再生できない。
  1. アンカータグ経由の場合、動画プレーヤーにはエンコードされたURLが渡される。
  2. RTMPのパラメータもエンコードされた文字列になる。
  3. サーバーはデコードせずにそのままファイルを探しにいってnot found。
  • サーバーを改造するか…と思ったけど、それ以前にパラメータが欠損しているような。
  • パケットキャプチャを眺めた感じ、playコマンドのパラメータが255byteで切られているような。
  • 対象で一番長そうなパスをエンコードしてみたら837byteとかあった。

駄目だこりゃ。