5

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

编辑:

在研究中,我发现有几种协议:RTSP、HTTP Streaming、RTMP 和 RTP。

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

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

RTSP/RTP是微软转而使用的,弃用了他们的 MMS 协议。RTSP 是控制协议。它类似于 HTTP,但有一些明显的区别—​​—服务器也可以与客户端对话,并且还有其他命令,比如 PAUSE。它也是一个有状态的协议,使用会话 ID 进行维护。RTP 是用于传递有效负载(编码的音频或视频)的协议。有一些开源项目,其中一个得到了苹果的支持。看起来这可能会做我想做的事,而且看起来很多玩家都支持它。听起来它适合从这里的这个页面进行“现场”广播。

谢谢,乔什

4

2 回答 2

6

首先,让我快速敲掉两个错误的点。详情如下:

  • RTMP 可以在 Flash Media Server 以外的其他服务器上完成
  • TCP 很适合直播。那里有太多喜欢 UDP 的人的 FUD。 Apple 刚刚发布了一份通过 HTTP(以及 TCP)为 iPhone 进行简单实时流传输的规范草案。我希望它也会出现在浏览器中。此外,TCP 的好处是可以更频繁、更轻松地通过公司防火墙。

我的阅读是,复杂且基于 UDP 的流媒体正在逐渐减少。我没有预测死亡,只是市场份额越来越小。相对于基于 TCP 的解决方案(如 10 倍或更多),基于 UDP 的流媒体服务器消耗大量资源,而且好处并不那么明显。

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

如果开源对你来说真的那么重要,我可以理解,那么你需要忽略绝大多数流媒体市场。看一下

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

如果实用主义占了上风,那么请重新考虑您对 Adob​​e 产品的反感。请记住,Flash 比任何其他基于浏览器的播放器(即 Windows Media Player、Quick Time 和 Real Players)分布更广。

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

我建议考虑您的优先事项。在您的问题中为我们拼写出来。

于 2009-11-10T17:23:13.190 回答
0

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

于 2010-03-20T03:31:24.360 回答