• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:phpからflashplayerにflvファイルを配信する方法について)

phpでflvファイルをflashplayerに配信する方法

このQ&Aのポイント
  • phpでflvファイルをflashplayerに配信する方法についてお尋ねします。
  • flvファイルをURL直叩きで見られなくするために、一旦PHPでセッションを確認してから非公開のflvファイルを読みだしています。
  • PHPのURLにセッションID付きでアクセスすると、ファイルが読みだされるがflashplayerでは再生されず、進捗バーがダウンロード中のままです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

あまり自身がないですが 検証にXAMPP + JW Playerで試してみました。 そのほかのプレイヤーでもそうだと思いますが、embedタグのflashvars属性などに、「file=xxxxxx.flv」などと設定すると思います。 JW Playerの場合、「file="http://www.example.com/xxxx.flv"」とやってやると該当URLよりFLVを取得し、ロードします。 この際、拡張子が「.php」だった場合、正常に読み込めませんでしたが、mod_rewriteで書き換えを行ってみたところ、ロードしました。 .htaccess--------- <IfModule mod_rewrite.c> RewriteEngine on RewriteRule ^(.*)\.flv$ $1.php [QSA] </IfModule> ------------------ ※私が検証したのは、「hogehoge.flv」というものにアクセスされたら、「hogehoge.php」にリダイレクトというものです。 適時変更してみてください。

aO_Ob
質問者

お礼

domain.com/session_id/path/to/movie.flv を domain.com/GetMovie.php?path=/path/to/movie.flv&SESSID=session_id に書き換えるルールを設定したところ 無事flashplayerから再生することができました。 ありがとうございました。

aO_Ob
質問者

補足

別件でばたばたしており、お返事が遅れて申し訳ありませんでした。 まだ試していませんが、大変有力な情報だと思います。 今日か、来週頭までには試して結果をご報告させていただきます。 ありがとうございました。

その他の回答 (2)

回答No.2

どのように読み出しをしているか、によるのですが、 ドキュメントルート外ということですので、fread関数なりで、出力している前提で話を進めますが、 flvファイルがソレであると判別するためのContent-Typeは送出してますか? 例) <?php header('Content-Type: application/flv'); //flvファイルのコンテントタイプが分からないのでコレは適当です。 ?> また、flvファイルのファイルサイズも通知してないとだめだったりしませんか? 例) <?php $path = 'path/to/hoge.flv'; $size = filesize($path); header('Content-Length: '.$size); ?> もし上記二点、行っていないなら一度行ってみてはいかがでしょうか。

aO_Ob
質問者

補足

$type = 'application/flash-video'; (中略) $size = filesize($absPath); (中略) Header('Content-Type: ' . $type); Header('Content-Length: ' . $size); のようにしています。 'application/flash-video'は、静的なファイルを直接 見に行った時に返されるタイプに合わせています。

回答No.1

はっきりした事は言えませんが、“ドキュメントルートの外”というのが少し気になります、、、。 仮にドキュメントルート内にflvファイルを置いてたらどうなりますか?

aO_Ob
質問者

補足

お世話になります。 ファイルはphpのfread関数で読みだしています。 読みだされるファイルの位置が外から見えるかどうかは 関係ないと考えています。 もちろん、ドキュメントルートの中に入れたファイルに PHPを介さずに直接アクセスすれば再生されます。

関連するQ&A