从Android设备预期直播流延迟

时间:2015-03-23 12:24:14

标签: android streaming video-streaming live-streaming

Android设备的相机直播时预计会有多少延迟? 我检查了Miracast,它的延迟大约为150-300毫秒(通常是160-190毫秒左右)。 我有一个蓝牙和一个wifi直接应用程序,两者都滞后约400-550毫秒。我想知道是否有可能重现或接近Miracast的表现。 我用H.264编码相机帧,并使用我自己的自定义协议通过TCP连接传输编码帧(如果是WiFi Direct)。

1 个答案:

答案 0 :(得分:0)

视频编码是计算密集型的,因此您可以从硬件获得的任何帮助通常会加快速度。值得确保您使用的是利用硬件的编解码器 - 即避免将您的H.264编码全部用于软件。

这里有一个视频讨论了如何访问硬件加速视频编解码器,虽然它有点旧,但适用于旧设备:

我相信MediaCodec现在为硬件编解码器提供了一个Java API(我自己没有尝试或看过速度比较测试),这使事情变得更容易:

请参阅此处的注释,了解如何使用相机的Surface预览作为速度辅助工具:

顺便说一句,500毫秒看起来并不那么糟糕,你可能会收益递减,所以如果你能忍受当前的滞后,那么减少的努力可能会很高。

另外,我假设您正在测量服务器端的延迟(或延迟)?如果需要,您还需要查看服务器如何解码和呈现,特别是如果您将自己的播放器与第三方播放器进行比较。

值得关注接收端的抖动缓冲区,无论流等延迟如何 - 简单来说,在开始播放之前等待大量数据包可能会导致更多启动延迟,但它也可能提供更好的整体用户体验。这是因为在进入用户不喜欢的“缓冲”模式之前,大缓冲区将更加容忍延迟的数据包。

它是一种平衡,你的需求可能会以某种方式决定偏见。如果您计划像应用程序之类的视频聊天,那么延迟非常重要,因为它开始变得对200-300毫秒以上的用户感到烦恼。如果您从体育赛事中提供饲料,那么延迟可能不那么重要,避免缓冲暂停可能会提高用户的感知质量。