使用带有 RTMP 的 Flash Media Server (FMS) 进行实时视频聊天

Posted

技术标签:

【中文标题】使用带有 RTMP 的 Flash Media Server (FMS) 进行实时视频聊天【英文标题】:Using Flash Media Server (FMS) with RTMP for live video chat 【发布时间】:2011-03-01 21:27:05 【问题描述】:

我正在尝试获取一个非常基本的实时视频聊天示例以与 Flash Media Server 一起使用,但无论我多么努力,它都对我不起作用。

我正在使用此网页中的教程和代码:http://www.derekentringer.com/blog/fms-video-chat/

我有两个服务器:一个 Web 服务器和一个媒体服务器。在媒体服务器上,我安装了 FMS,并确保端口 1935 已打开以在 Web 和媒体服务器之间进行通信。

我认为我的问题是如何设置我的 FMS 实例。在本教程中,他使用了 Influxis.com 的托管 FMS 解决方案。我正在使用我自己的安装了 FMS 的媒体服务器。有谁知道如何设置我的 FMS 实例以便我可以让它工作?

在网络服务器上,我有两个不同的文件夹(user1 和 user2),每个文件夹都有一个 html 文件和一个 swf 文件来连接网络摄像头,然后通过 rtmp 将网络摄像头的流连接到媒体服务器。

这是我在 SWF 文件上的代码。

//setup the camera and mic for streaming
mycam = Camera.get();
mycam_audio = Microphone.get();

//control the cameras mode and quality
mycam.setMode(320,240,30);
mycam.setQuality(10000,100);

//attach a live preview of the camera to the 
//video object that is setup on the stage
cam_feed.attachVideo(mycam);
cam_feed.attachAudio(mycam_audio);

//connect to the Flash Media Server
client_nc = new NetConnection();
client_nc.connect("rtmp://corpwebdevmedia1/test"); // I've tried server name and IP
cam_ns = new NetStream(client_nc);

//attach our camera video and audio to the net stream
cam_ns.attachVideo(mycam);
cam_ns.attachAudio(mycam_audio);

//publish to our Flash Media Server as a 
//live stream called user_2
cam_ns.publish("user_2", "live");
// user_1 for the other one

//bring in user_1's video/audio
in_ns = new NetStream(client_nc);
in_ns.play("user_1");  
// user_2 for the other one

//attach user_1's published audio and video
//so we can see them in the larger chat window
live_feed.attachVideo(in_ns);
live_feed.attachAudio(in_ns);

完成所有操作后,我转到本地计算机并将浏览器导航到 Web 服务器上的 html 文件。该页面在每个页面上都连接到我的相机,但它们从未连接在一起。

有什么建议吗?

谢谢。

【问题讨论】:

尝试在您的 fms 应用程序文件夹中创建/编辑main.asc。服务器端动作脚本参考可以在这里找到:livedocs.adobe.com/flashmediaserver/3.0/hpdocs/… 嗨 vipergtsrz,我也面临同样的问题。如果您已解决问题,请建议我。谢谢。 【参考方案1】:

我不确定这是否适用于所有相机,但至少在我开发类似的应用程序时,我遇到了同样的问题,问题的原因是两个应用程序不能共享同一个相机。

换句话说,您不能同时使用 Skype 和 Flash 播放器应用程序进行视频聊天。 两个 Flash 播放器应用程序也是如此——它们不能都使用相同的相机输入。所以尝试连接另一台相机,或用两台电脑进行测试(这就是我所做的)。如果您使用单个系统进行测试,您将在音频设置方面遇到更多问题(虽然我不完全记得出了什么问题,但在尝试模拟完整的音频时尝试静音或更改音量确实有很多问题2人在一个系统上聊天)

另一个问题可能是您对两个应用程序使用相同的流名称,您是否在其中一个应用程序中切换了“user_2”和“user_1”?

【讨论】:

以上是关于使用带有 RTMP 的 Flash Media Server (FMS) 进行实时视频聊天的主要内容,如果未能解决你的问题,请参考以下文章

Flash Media Server 可以通过 RTMP 流式传输 H264 吗?

带有 adobe flash player 的 RTMP 流

在 Ant Media Server 中使用 WebRTC 观看带有 B 帧的 rtmp 流时出现抖动问题

如何在浏览器中使用 Flash 客户端将网络摄像头流式传输到 RTMP 服务器?

如何播放 SoundCloud RTMP 流?

不使用 Flash 在 WebView Android 中播放 RTMP