整个过程简单说一下:在 JavaWebStart (jlnp) 的帮助下,通过网页上的链接,用户启动用 Java 编写的 Swing 应用程序,该应用程序每秒都会截取桌面的屏幕截图。之后,它将其编码为视频流并将该流发送到 Wowza 服务器。 Wowza 能够将此流重新传输给任意数量的用户,这些用户可以通过 flash 播放器访问该流。
详细步骤:
1.安装Wowza(强制)。
- 从这里获取适当的安装程序(在我的例子中是 Win):http://www.wowza.com/pricing/installer http://www.wowza.com/pricing/installer
- 从这里获取免费的开发者许可证:http://www.wowza.com/pricing/Trial http://www.wowza.com/pricing/trial(您需要提供电子邮件,180 天有效的密钥将发送到那里)。
- 请关注有关流程的精彩视频:http://www.wowza.com/forums/content.php?288-入门-(视频教程) http://www.wowza.com/forums/content.php?288-Getting-Started-(Video-Tutorial)
此外,我将把 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]\示例
- 鼠标右键单击安装程序并选择“以管理员身份启动”以安装所有必需的播放器。
- 输入目录[wowza-root]\examples\VideoOnDemandStreaming\FlashHTTPPlayer** 并单击 **player.html在浏览器中启动此文件。单击连接。步骤检查:你应该看一下关于兔子的有趣电影。您可以在这里提交这部电影:[wowza-root]\content\sample.mp4
3. 用于共享桌面的 SWING 应用程序(强制)。
很好,我们的服务器已启动并正在运行(WOWZA 正在运行)。现在是时候启动应用程序来制作我们的桌面屏幕截图了。幸运的是,它已经是德勒·奥拉吉德写的,上帝保佑这个人。检查此链接了解详细信息(http://code.google.com/p/red5-screenshare/ http://code.google.com/p/red5-screenshare/),这个可供下载(http://code.google.com/p/red5-screenshare/downloads/list http://code.google.com/p/red5-screenshare/downloads/list) – 您需要下载 screenshare.zip 文件。
将其解压到任意目录。我们将首先从 bat 文件启动这个应用程序。解压后的目录中已经有两个bat文件 -do_run1.bat and do_run2.bat。我刚刚复制了其中一个文件并将其命名为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
where
- “C:\Program Files\Java\jdk1.6.0_26\bin\java” – java 的正确路径
- screenshare.jar – 我们应该使用什么jar(可以在解压文件夹中找到)。
- org.redfire.screen.ScreenShare – 主类
- localhost – Wowza 的主机
- 屏幕共享 – 应用程序名称(重要)
- 1935 年 – 沃扎港
- ss1 – 流名称(重要)
- flashsv1 – 视频流的编码。
您唯一需要更改的就是设置 java.util.concurrent.java 的正确路径。您现在就可以启动它!
步骤检查:您应该看到应用程序屏幕。巨大的成功!但是,如果您单击“开始共享”按钮,您将在控制台中收到错误消息,Wowza 中缺少该屏幕共享应用程序文件夹。没关系,这意味着我们现在正走在正确的轨道上。退出 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. 配置 WOWZA 以接受来自我们的 SWING APP 的流(强制)。
步骤检查:通过 bat 文件再次启动 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. 在网页上启动 flash-player(可选)伟大的!现在我们有了可行的解决方案,只有一件事尚未完成 - 我们正在从 Windows 目录启动播放器,并且网络上的其他人无法访问它。那么,有什么问题,让我们部署一个吧。
- 首先您需要阅读以下内容:http://www.wowza.com/forums/content.php?49 http://www.wowza.com/forums/content.php?49
- 接下来前往http://www.osmf.org/configurator/fmp/# http://www.osmf.org/configurator/fmp/#
- 在“Videosource”字段中插入指向您的流的链接(当然,SWING-APP 应该在共享模式下工作):rtmp://localhost:1935/screenshare/ss1
- 单击预览。你应该看到你的直播。
- 现在,只需将“预览嵌入代码”中的整个代码复制到实际部署在应用程序服务器上的任何网页 - 仅此而已。您可以向任何用户提供此页面的链接,他将能够看到您的直播。
7. 使用动态流名称而不是静态(可选)
您可能已经注意到,现在我们的屏幕共享正在运行,但由于我们通过配置向 SWING-APP 提供流名称,因此无法同时为多个用户使用它。我不会详细描述如何处理,只是简单说明一下。
如果你检查屏幕共享.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 的帮助下,我从请求字符串中提取了参数,并将提取的参数放在我的 html 页面上应该位于的位置,并嵌入了 p.6 中的代码
<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>
就这些。我希望它能为某人节省一些时间。祝你好运