基于浏览器的流媒体视频/音频(非渐进式下载)

时间:2009-09-15 03:16:14

标签: video streaming video-streaming audio-streaming rtsp

我试图从概念上理解提供真实流媒体音频和视频内容的最佳方式。我希望它能够使用最少量的专有技术与Web浏览器一起使用。我不会提供静态文件并使用渐进式下载,这将是真实的音频流被实时捕获。如何广播与源同步的流?什么样的协议适合?

修改

在研究中我发现有一些协议:RTSP,HTTP Streaming,RTMP和RTP。

HTTP流式传输有点不合适,如果您正在流式传输某种类型的实时性能/通信,因为它依赖于TCP(基于HTTP),并且您不会丢失数据包。在低带宽情况下,客户端在播放时可能会明显落后。 ref

RTMP 是一项专有技术,需要闪存介质服务器。废话。我看闪存的原因是因为它们在用户体验方面非常灵活。 SoundManager2提供了一个出色的javascript界面​​,用于播放带有闪存的媒体。这是我在客户端应用程序中寻找的内容。

RTSP / RTP 是Microsoft转而使用的,弃用其MMS协议。 RTSP是控制协议。它类似于HTTP,有一些明显的区别 - 服务器也可以与客户端通信,还有其他命令,如PAUSE。它也是一个有状态协议,使用会话ID维护。 RTP是用于传送有效载荷(编码的音频或视频)的协议。有一些开源项目,其中一个由apple here支持。看起来这可能是我想要的,它看起来像quite a few players support it。听起来它适合从这个页面here进行“实时”广播。

谢谢, 约什

2 个答案:

答案 0 :(得分:6)

首先,让我快速敲掉两个不正确的点。详情如下:

  • RTMP可以通过Flash Media Server以外的其他服务器完成
  • TCP适用于直播。 F.U.D.太多了来自UDP爱好的人们。 Apple has just released a draft specification通过HTTP(以及TCP)为iPhone进行简单的实时流式传输。我希望它最终也会出现在浏览器中。此外,TCP还具有更频繁,更轻松地通过企业防火墙的好处。

我读到的是复杂的基于UDP的流媒体逐渐减少。我不是在预测死亡,只是市场中较小和较小的份额。与基于TCP的解决方案(如10倍或更多)相比,基于UDP的流媒体服务器消耗巨大的资源,而且好处并不是那么有形。

你说你不想要专有技术,并且“废话[Flash]”,但是你仍然想要真正的流媒体?讨厌把它分给你,但RealAudioRealVideo都是专有的。

如果开源确实对您很重要,我能理解,那么您将需要忽略绝大多数流媒体市场。看看

  • Theora:免版税,开放标准,有损视频压缩技术
  • Vorbis:一个免费软件/开源项目,为有损音频压缩产生音频格式规范和软件实现。
  • Ogg:一种免费的,开放的标准容器格式

如果实用主义得到了你的好处,那么重新考虑你对Adobe产品的厌恶。请记住,Flash比任何其他基于浏览器的播放器(即Windows Media Player,Quick Time和Real Players)分布更广泛。

您仍然可以将RTMP与开放源码一起使用:Red5可能是最感兴趣的 - 它可以实时流式传输到支持Flash的浏览器。

我建议考虑一下你的优先事项。在你的问题中为我们拼出它们。

答案 1 :(得分:0)

我想补充一下Stu的回复,基于UDP的流媒体协议在防火墙或NAT之后通常会有额外的复杂性。例如,如果您计划在家庭之外使用WIFI接入点,则其中许多接入点将不支持使用UDP传送的RTP。许多客户端都有一个故障恢复机制,如果在超时之前没有收到数据包,客户端将尝试TCP传送。