- ベストアンサー
PHPでWebに動画埋め込みを行うには?
HTMLで、<embed></embed>タグを使うことによって、動画などをWebに埋め込み再生できると思うのですが、同じようなことをPHPで記述したいと思っています。 理由は、<embed></embed>タグだと、ソースを見ることで、動画ファイル名や格納先フォルダがわかってしまうので。 PHPで記述して、それらを見られないようにしたいと思っています。 ストリーミングで行うには、環境とか揃えるのにいろいろ大変なので、PHPで行いたいと思っています。 どなたか、PHPでの記述例をご教授下さいませ。 よろしくお願い致します。
- みんなの回答 (12)
- 専門家の回答
質問者が選んだベストアンサー
<embed>にtype属性を指定したらどうなりますか?推測ですが、ブラウザ側でプラグインを起動する時、contents-typeだけじゃなくて拡張子で判断してるかも知れないなぁなんて思いました。エクスプローラーで普通にローカルのファイルをクリックした時って、拡張子で立ち上げるソフトを判別するじゃないですか。だからもしかしたら・・・なんて思ったんですが。 ま、今回は一問一答のようになってしまいましたが、何か期待通りの動きをしない時には、その原因を一生懸命想像して色々試してみて下さい。試行錯誤した事はなかなか忘れませんし、深く理解する事ができます。
その他の回答 (11)
- wakame0729
- ベストアンサー率32% (245/765)
質問の本質ではないかも知れないのですが、PHPはあくまでスクリプトによる処理でHTMLを吐き出すというものです。あくまでHTMLを出力するというだけですからHTMLで行えないからPHPで、という事はできません。 もしファイル名、格納先フォルダがわかるのを避けたいのでしたら、パラメータを受け取って動画ファイルを読んでそのまま出力するスクリプトを組んで、<embed>タグでこのPHPスクリプトを指定するという方法があります。これなら動画ファイルのディレクトリをWEBに公開する必要もありません。 パラメータを受け取ってファイルを特定する事、contents-typeをheader関数で指定する事、そしてreadfile()関数を実行するって感じです。これで目的は果せるのかな、と思いますがどうでしょう?
補足
ありがとうございます。 そうでした・・PHPでHTMLの代わりにはならないので、あくまでPHPを駆使してHTML内に記述してあげる必要があるんですね。 ここで言うパラメータとは、動画ファイル名、格納先フォルダ名ということでしょうか? contents-typeを指定したheader関数は使ったことがないので良くわからないのですが、readfile()関数に、ファイル名と格納先をパラメータで渡せば良いのでしょうか?
- 1
- 2
お礼
http://www.interq.or.jp/blue/inside/tech/embedtype.html を参考に、<embed>タグのType属性を調べて、 <embed src="./movie.php?f=filename" type="application/x-mplayer2"></embed> あるいは、 <embed src="./movie.php?f=filename" type="video/mpeg"></embed> という具合に指定してみました。 すると、ブラウザに埋め込まれた形の動画画面までは表示されました。 しかし、再生されず。。。再生ボタンを押しても再生されないです。 ん~、、、、残念・・ でも、何か一歩だけ進んだような気がしました。