7

プロローグ。Web上でデスクトップ画面を共有するためのソリューションを作成する方法を尋ねたかったのですが、そのような質問がたくさんあることがわかりました。そして、そのタスクは、いくつかの文字列でそれに答えるのは非常に複雑です。それで、私は適切な解決策を見つけるために時間を費やしました。見つけたようです–共有したいだけです。

最初のタスク:Webアプリケーションがあります。ユーザーが自分の画面を他のユーザーと共有する方法を見つける必要があります。実装先:Win 7 x64、Java、Wowza-3.5.0。

どうすればこれを達成できますか?

4

1 に答える 1

16

簡単に言うと、プロセス全体: JavaWebStart(jlnp)を使用してWebページのリンクを介して、ユーザーはJavaで記述されたSwingアプリケーションを起動します。これにより、デスクトップのスクリーンショットが毎秒作成されます。この後、ビデオストリームとしてエンコードし、このストリームをWowzaサーバーに送信します。Wowzaは、このストリームを任意の数のユーザーに再ストリーミングでき、フラッシュプレーヤーを介してストリームにアクセスできます。

詳細な手順:

1. Wowza(必須)をインストールします。

さらに、wowzaインストールディレクトリを[wowza-root]と呼びます。

ステップチェック:インストールが完了した後–起動–すべてのアプリケーション– Wowza Media Server 3.5.0 –Wowzaの起動。サーバーが起動し、メッセージが表示されるタイミング

“Wowza Media Server is started!”

ブラウザを開いて次のように入力します。

http://localhost:1935/

次のように表示されます。

Wowza Media Server 3 Developer Edition (Expires: авг 03, 2013) 3.5.0 build2989

もしそうなら–私たちは最初のステップで完了です。


2. Wowzaでサンプルムービーを起動します(オプション)。

次のステップ–実際にコンテンツをストリーミングすると、[wowza-root]に必要なものがすべて揃っています。

  • ディレクトリ[wowza-root]\examplesを入力してください
  • RightMouseはinstallall.batをクリックし「管理者として起動」を選択して、必要なすべてのプレーヤーをインストールします。
  • dir [wowza-root] \ examples \ VideoOnDemandStreaming \ FlashHTTPPlayer **と入力し、** player.htmlをクリックして、ブラウザーでこのファイルを起動します。[接続]をクリックします。 ステップチェック:ウサギについての面白い映画を見る必要があります。この映画をここで提出できます:[wowza-root] \ content \ sample.mp4

3. SWING-デスクトップを共有するためのアプリ(必須)。

サーバーが稼働しています(WOWZA IS RUNNING)。次に、デスクトップのスクリーンショットを作成するアプリケーションを起動します。幸いなことに、それはすでにDele Olajideによって書かれています、神はこの男を祝福します。詳細についてはこのリンクを確認してください(http://code.google.com/p/red5-screenshare/)。ダウンロードするにはこのリンクを確認してください( http://code.google.com/p/red5-screenshare/downloads/list)– screenshare.zipファイルをダウンロードする必要があります。

任意のディレクトリに解凍します。bat-fileからこのアプリを起動することから始めます。解凍されたディレクトリには、すでに2つのbatファイル(do_run1.batdo_run2.bat )があります。このファイルの1つをコピーして、do_run_my.batという名前を付けたところ、内容は次のようになります。

"C:\Program Files\Java\jdk1.6.0_26\bin\java" -classpath screenshare.jar org.redfire.screen.ScreenShare  localhost screenshare 1935 ss1 flashsv1
pause

どこ

  • "C:\ Program Files \ Java \ jdk1.6.0_26 \ bin \ java" –Javaへの正しいパス
  • screenshare.jar –使用する必要のあるjar(解凍されたフォルダーにあります)。
  • org.redfire.screen.ScreenShare –メインクラス
  • localhost –Wowzaのホスト
  • screenshare –アプリケーション名(重要)
  • 1935年–ウォウザ港
  • ss1 –ストリーム名(重要)
  • flashsv1 –ビデオストリームのエンコーディング。

変更する必要があるのは、Javaへの正しいパスを設定することだけです。今すぐ起動できます!

ステップチェック:アプリケーション画面が表示されます。大成功!ただし、[共有の開始]ボタンをクリックすると、コンソールでエラーが発生し、そのscreenshareアプリケーションフォルダーがWowzaにありません。それはOKであり、今私たちが正しい軌道に乗っていることを意味します。SWINGアプリケーションを終了します。

[ERROR] [New I/O client worker #2-1] org.redfire.screen.ScreenClientHandler - closing channel, server resonded with error: [0 COMMAND_AMF0 c3 #0 t0 (0) s207] name: _error, transactionId: 1, object: null, args: [{level=error, code=NetConnection.Connect.Rejected, description=Connection failed: Application folder ([install-location]/applications/screenshare) is missing., clientid=8.87236417E8}]

4. SWING APPからのストリームを受け入れるようにWOWZAを構成します(必須)。

  • [wowza-root] \ Applicationsと入力し、そこにscreenshareという名前のフォルダーを作成します(注–これはSWING-appのapplication-nameとまったく同じ名前です)
  • [wowza_root] \ confと入力し、フォルダーscreenshare を再度作成します。
  • [wowza_root] \ confには、 Application.xmlという名前のファイルがあります。このファイルを、作成した[wowza_root] \ conf\screenshareフォルダーにコピーします。
  • Application.xmlのいくつかのプロパティを変更します。次の値を設定します。

    StreamType = live HTTPStreamers = cupertinostreaming、smoothstreaming、sanjosestreaming LiveStreamPacketizers = cupertinostreamingpacketizer、smoothstreamingpacketizer、sanjosestreamingpacketizer PlayMethod = none

  • Wowzaを再起動します。

ステップチェック: bat-fileを介してSWING-APPを再度起動します。エラーの代わりに、次のようなものが表示されるはずです。これは、サーバーとの接続が確立されていることを意味します。

[INFO] [New I/O client worker #1-1] org.redfire.screen.ScreenClientHandler - onStatus code: NetStream.Publish.Start
+++ [0 VIDEO c5 #1 t166 (0) s255355]
+++ [1 VIDEO c5 #1 t1169 (1003) s116522]
+++ [1 VIDEO c5 #1 t2171 (1002) s53049]
+++ [1 VIDEO c5 #1 t3178 (1007) s53667]

5.ストリームを監視します(オプション)。 今、最も楽しい部分–このすべてのスタッフがどのように協力しているかを確認します。- [wowza-root] \ examples \ LiveVideoStreaming \ FlashRTMPPlayer **と入力し、**player.htmlを起動します。以下の両方のパラメーターで、アプリケーション名とストリーム名が使用されていることに注意してください。これは、SWING-APPで構成したものとまったく同じです。

Server: rtmp://localhost/screenshare
Stream: ss1

そして、「接続」ボタンをクリックします。

ステップチェック:共有デスクトップが表示されます!これでタスクは完了です–少なくともその初期段階。


6. Web上でFlash-Playerを起動する(オプション) すばらしい!これで、実用的なソリューションができました。まだ実行されていないことが1つだけあります。それは、Windowsディレクトリからプレーヤーを起動しており、Web上の他のユーザーがアクセスできないことです。だから–何が問題なのか、それを展開しましょう。

  • まず、これを読む必要があります:http: //www.wowza.com/forums/content.php?49
  • 次に、http://www.osmf.org/configurator/fmp/#にアクセスします
  • ストリームへの「ビデオソース」フィールドリンクに挿入します(もちろん、SWING-APPは共有モードで動作するはずです):rtmp:// localhost:1935 / screenshare / ss1
  • [プレビュー]をクリックします。ストリーミングが表示されます。
  • ここで、コード全体を「プレビュー埋め込みコード」からアプリケーションサーバーに実際に展開されている任意のWebページにコピーするだけです。これですべてです。このページへのリンクをすべてのユーザーに与えることができ、そのユーザーはあなたのストリームを見ることができます。

7.静的ではなく動的ストリーム名に移動する(オプション)

お気づきかもしれませんが、現在、画面共有は機能していますが、構成を介してSWING-APPにストリーム名を提供しているため、複数のユーザーに同時に使用する方法はありません。取り扱い方法については詳しく説明しませんが、簡単に説明します。

screenshare.jarを確認すると、このjarには実際にSWINGアプリケーションのコンパイル済みおよびソースコードがすべて含まれていることがわかります。ソースを変更し、必要に応じて初期アプリを作り直すことができます。私の場合、提供されたストリーム名とメッセージウィンドウに現在の時刻をミリ秒単位で追加しました。このウィンドウには、[ストリームの開始]ボタンをクリックすると次のように表示されます。

Send this link to any person you want to share you screen with:
http://localhost:8080/player.htm?src=rtmp%3A%2F%2Flocalhost%3A1935%2Fscreenshare%2Fss1360243745881

リンクにあるように、プレーヤーコードが埋め込まれたHTMLページが配置されているURLに、クエリ文字列としてストリームアドレスを追加するだけです。また、このページのコードを提供したいと思います。その非常に単純な– javascriptの助けを借りて、リクエスト文字列からパラメータを抽出し、抽出されたパラメータをp.6の埋め込みコードを含むHTMLページのどこに配置するか

<html>
<head></head>
<body>

<SCRIPT LANGUAGE="JavaScript">

    var myQueryString = document.location.search;

    // remove the '?' sign if exists
    if (myQueryString[0] = '?') {
        myQueryString = myQueryString.substr(1, myQueryString.length - 1);
    }


    document.write(
        '<object width="600" height="409">\n' +
            '<param name="movie" value="http://fpdownload.adobe.com/strobe/FlashMediaPlayback.swf" />\n' +
            '</param>\n' +
            '<param name="flashvars" value="' + myQueryString +'" />\n' +
            '</param>\n' +
            '<param name="allowFullScreen" value="true" />\n' +
            '</param>\n' +
            '<param name="allowscriptaccess" value="always" />\n' +
            '</param>\n' +
            '<embed src="http://fpdownload.adobe.com/strobe/FlashMediaPlayback.swf" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="600" height="409" flashvars="' + myQueryString +'"></embed>\n' +
            '</object>'
    );

</SCRIPT>

</body>
</html>

以上です。誰かの時間を節約できることを願っています。幸運を

于 2013-02-07T16:08:12.403 に答える