【发布时间】:2010-09-18 10:45:21
【问题描述】:
我有一个 PHP/AJAX/MYSQL 聊天应用程序。我想在我的应用程序中添加视频聊天。如何在 PHP 应用程序中创建用于实时视频会议/聊天的实时视频流。如果我想构建这样一个系统,我需要知道哪些关键术语?首先使用 PHP 是个好主意吗?有什么我没有考虑的吗?我可以使用哪些其他语言,也许与 PHP 结合使用?
【问题讨论】:
我有一个 PHP/AJAX/MYSQL 聊天应用程序。我想在我的应用程序中添加视频聊天。如何在 PHP 应用程序中创建用于实时视频会议/聊天的实时视频流。如果我想构建这样一个系统,我需要知道哪些关键术语?首先使用 PHP 是个好主意吗?有什么我没有考虑的吗?我可以使用哪些其他语言,也许与 PHP 结合使用?
【问题讨论】:
PHP/AJAX/MySQL 不足以创建实时视频流应用程序有一个类似的线程here。它主要建议使用 Flex 或 Silverlight。
【讨论】:
PHP 将允许您构建构成视频会议和聊天应用程序的站点页面,但它不会为您提供或流式传输视频 - PHP 仅在服务器上运行并将 HTML 呈现给客户端浏览器。
对于视频,您首先需要一个直播帐户,其中包含 akamai 或该领域的众多其他人。使用此帐户可为您的视频提供一个入口点 - 即:您将流式传输实时视频的服务器。
接下来,您希望将视频发送到浏览器 - windows 媒体播放器、flash 或 silverlight 将让您实现这一目标 - 将适合您选择的技术的控件嵌入到您的页面中(使用 PHP 或其他)并给出地址您的实时视频源。
PHP(或其他脚本语言)将用于构建应用程序的聊天部分并将整个内容(聊天和嵌入式视频播放器)结合在一起。
希望这会有所帮助。
【讨论】:
我并不是说你必须放弃 PHP,但你需要不同的技术。
让我们从简单的开始(没有 Akamai :-))并考虑这里的含义。视频、聊天等 - 一开始都是客户端。用户有一个网络摄像头,您想以某种方式获取信号并将其发送到服务器。目前还没有 PHP。
我知道 Flash 支持这一点(请查看 tutorial on webcams and flash),因此您可以使用 Flash 将内容传输到服务器。我认为如果您继续使用 Flash,那么 Flex (flex and webcam tutorial) 可能是个不错的选择。
所以这些只是基础知识,也许它可以让您了解需要研究的地方,因为显然这不会让您在应用程序中进行完整的视频聊天。对于初学者,您将需要某种方式来记录流并重新发布它们,以便其他人从聊天中看到其他人,等等。
我也不确定这会消耗多少流量和带宽,一般来说,解决这个问题需要的不仅仅是 Stackoverflow 问题。最好是对您的应用做一个完整的规范,然后聘请一些人来帮助您构建它。
HTH!
【讨论】:
对于实时视频会议,您不能忽视流媒体服务器的需求。
是的,flash 可以让您在本地 flash 控件中显示来自网络摄像头的视频,但这不会让您通过网络发送该视频 - 因为您需要一个流媒体服务器将其发送到。
如果您要构建这样的东西,请谨慎考虑如何从一开始就托管视频,因为这会影响您构建应用程序的方式。 Flash/Flex/Silverlight/Windows Media……等等……
【讨论】:
有很多“现成的”“服务器”将在您的环境中运行。 其中大部分使用上述 Flex 或 Silverlight 来实现实际视频本身,但我很确定所有这些都将在 LAMP/PHP 下运行。
挑战将是从所有可用的软件中挑选出最好的软件,并让您的托管服务提供商让您流式传输视频(不用说流式传输占用大量带宽)。
【讨论】:
同样的问题/答案here,引用如下
我假设您的意思是要运行自己的私人视频 呼叫,而不是简单地链接到 Skype 呼叫或类似呼叫。你真的有2 此处的选项:自己托管,或使用托管解决方案并集成 将其融入您的产品中。
自托管 ----------------- 这很乱。这都可以用 PHP 完成,但这可能不是最可取的解决方案,因为它是 不是所有方面工作的最佳工具。闪存更多 在用户端有效地进行音视频捕获和传输。你可以尝试 无需闪光灯即可执行此操作,但您会头疼。 HTML5 可能使 你的生活更轻松,但如果你想获得最大的兼容性, flash 是创建客户端的最简单方法。那么,就目前而言 作为将中继音频/视频的实际服务器端,您可以 用php写一个聊天服务器,但你最好使用开源 项目,比如 janenz00 的提及 red5 的,已经建成并且 通过您的客户端与它交互(如果它还没有 一)。或者你可以像之前提到的那样自制一个 Flash 客户端, 将其连接到两侧的闪存流服务器......无论哪种方式 快速变得复杂,超出我的专业知识可以帮助您 全部。
托管服务 ----------------- 全部,我的建议,除非你想管理许多复杂服务器和故障的荒谬设置 要点是使用托管服务,例如 UserPlane 或类似并卸载所有 处理和技术工作交给擅长的人,然后 担心与他们的 api 接口并让他们的客户很好 集成到您的网站中。如果你这样做,你会成为一个更快乐的开发者。
【讨论】:
请注意,以下描述的服务不再作为 它基于 FLV 媒体 (Flash)
该项目利用 Red5、Flex 和 PHP 进行实时视频流和录制,具有许多功能
向观众流式传输实时视频
将视频流从您的摄像头或其他视频输入设备录制到服务器
预览录制的流和文件,并缩略图您要为视频显示的帧。
从您的计算机上传视频并将其转换为可使用 Red5 流式传输的 FLV。
从任何分辨率中选择
可以插入任何脚本
每个网站用户都可以有一个单独的目录来存储他们的视频和缩略图使用这个链接 http://code.google.com/p/red5-flex-streamer/
【讨论】:
您可以根据要求轻松构建网站。 PHP 将在那里处理网站开发部分。所有托管和正常的网站开发都将按原样工作。但是,对于流媒体部分,您必须选择一个好的流媒体服务。无论是 Red5 还是 Adobe,您都可以从众多服务中进行选择。
选择一项提供专用存储的服务以正确完成某事。如果您不知道如何正确配置服务器,您可以选择流媒体服务。良好的服务通常会提供有助于有效广播流的 CDN。只需在 PHP 中启动您的网站并将 YouTube 播放器嵌入到所述网页中即可使其正常工作。
【讨论】: