2011-12-07 9 views
1

私はサーバーにRed5を実装し、Webページを通じて、ユーザーがWebカメラを通じてサーバーにファイルを記録できるRed5Recorderを統合しました。Red5とFLVファイルのユニークな名前付け

しかし、私がよく理解できないことは、結果ファイルをサーバ上で一意に命名する方法です。

Red5Recorderにはパラメータ "fileName"があり、これはJavaScriptを使用して新しい値を入力することで変更できますが、クライアント側のセキュリティ(別名:存在しない)に依存します。悪用されると(難しくない)、ユーザーはビデオを別のユーザーとして記録することができます。

ビデオを録画するすべてのユーザーがログインしている(アクティブな$ _SESSION []変数を持つ)場合、この入力に基づいてファイル名を作成する方法があれば完璧です。

ここにお住まいの方はこれに関する経験がありますか?アイデア?回避策?私はRTMPやそれを管理する方法に精通していません(私がこれまでに持っていたことは、それ自体で、私にはかなり印象的です)。

ご協力いただけるご提案、ご提案、またはお手数ですがありがとうございます。

EDIT -

質問はまだ立って、私は現時点では、このための回避策に取り組んでいます。概念は、 'fileName'属性を設定するためにJavaScriptに挿入されたPHPによって生成されたランダムトークンをWebページにロードすることです。このトークンは、DBにも挿入され、ユーザーのアカウントに帰属します。 .flvがストリームディレクトリに到達すると、それはDB内のトークンと一致し、そのユーザーに関連付けられます。その時点でトークンは破棄されます( 'use once'トークンであることを保証します)。

メールアカウントを確認するのは、私たちが確認しているアカウントを確認するのではなく、ほぼ同じコンセプトです。

答えて

0

uniqid()session_name()とするとどうですか?

+0

Red5のはそのようなPHPでネクタイしていますか? Red5がバックエンドでどのくらい正確に動作しているかわからないため、2つをリンクする方法はわかりません。 – user1075581

0

これは確かに複雑に聞こえますが、これはRed5を介して完全に可能です。あなたは、RTMP urlを介してクエリ文字列を渡し、サーバー側でそれを傍受してカスタムファイル名を構築することができます。これにより、使用しているRed5アプリの修正が必要になります。そのように接続

rtmp://yourserver/yourapp/room?streamName=mystream

がアプリケーションにアクセスすることでした:このとの接続

 
    public boolean appConnect(IConnection conn, Object[] params) { 
    Map connParams = conn.getConnectParams(); 
    if (connParams != null) { 
     String streamName = connParams.get("queryString") != null ? connParams.get("queryString").get("streamName") : null; 
    } 
    } 
関連する問題