0

我正在使用 Flash Media Server 4.5 流式传输(实时,无录制)视频。我创建了 2 个应用程序 -

1) 发布者:使用 FMS 发布(流式传输)视频。2) Receiver:播放发布的流。

一切都按预期运行,因为它在 WEB 或(桌面)浏览器中的应用非常简单。

但是,当我将 Receiver 应用程序移植到 iPad 上时,视频播放正常,但在两者之间播放速度很快(就像您在 VCR 或 DVD 播放器中快速转发)几毫秒然后又恢复正常。

注意:我尝试使用 Wowza 服务器代替 FMS,但没有运气。

为了解决这个问题,我使用了一些设置,例如 - 将相机 fps 降低到 10,质量降低到 50,偏向于 false。它导致了一点点改进,但​​我的客户不能在低质量视频上妥协,在 iPad 上也是如此。

提前致谢!

4

1 回答 1

0

这实际上是直播的预期行为。这个问题没有“一刀切”的答案。

如果您使用 RTMP(一种 TCP 协议),网络层将确保所有数据包都被传递。这不一定是实时流媒体的理想选择。通常首选使用 RTMFP(一种 UDP 协议)。

我找不到以前在哪里读过这篇文章(NetStream 文档?)。但 Flash Player 会尽力跟上实时流。为此,它可能会稍微加快视频播放速度或丢弃视频帧。

这通常发生在网络问题的 b/c 上,因此您降低视频源质量的方法是一个好方法。然而,最好玩的是相机的捕获分辨率(使用Camera.setMode())。

降低捕获分辨率将减少传输视频所需的带宽。您可以使用较小的捕获分辨率(如 320x240),但仍以较大的尺寸在Video对象中显示(480x360)。显然,您必须做出权衡。也许给你的用户一些选项来根据他们的网络条件设置质量。

另一个有用的方法是Camera.setQuality()。如果带宽是问题,您可以指定一个带宽目标,让 Flash 根据带宽管理质量。同样,为用户提供配置此选项的选项。

最后,如果问题似乎只发生在 iPad 上,并且您确信带宽不是问题,那么它可能与硬件有关。同样,Flash 将尽其所能保持直播流尽可能“最新”(我的直觉是它会丢帧,在这种情况下播放速度不会更快)。

于 2013-09-02T18:14:56.633 回答