android设备的预期实时流媒体延迟

android设备的预期实时流媒体延迟,android,streaming,video-streaming,live-streaming,Android,Streaming,Video Streaming,Live Streaming,当安卓设备的摄像头进行实时流媒体传输时,预计会有多大的延迟? 我检查了Miracast,它的延迟大约为150-300毫秒(通常为160-190毫秒)。 我有一个蓝牙和一个wifi direct应用程序,两者都会延迟大约400-550毫秒。我想知道是否有可能复制或更接近Miracast的性能。 我正在用H.264对摄像机帧进行编码,并使用我自己的自定义协议通过TCP连接(如果是WiFi Direct)传输编码帧。视频编码是计算密集型的,因此您可以从硬件获得的任何帮助通常都会加快速度。确保您使用的编

当安卓设备的摄像头进行实时流媒体传输时,预计会有多大的延迟? 我检查了Miracast,它的延迟大约为150-300毫秒(通常为160-190毫秒)。 我有一个蓝牙和一个wifi direct应用程序,两者都会延迟大约400-550毫秒。我想知道是否有可能复制或更接近Miracast的性能。
我正在用H.264对摄像机帧进行编码,并使用我自己的自定义协议通过TCP连接(如果是WiFi Direct)传输编码帧。

视频编码是计算密集型的,因此您可以从硬件获得的任何帮助通常都会加快速度。确保您使用的编解码器充分利用了硬件是值得的,也就是说,避免将您的H.264编码全部放在软件中

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

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

请参见此处有关将摄影机的曲面预览用作速度辅助的说明:

顺便说一句,500毫秒似乎并没有那么糟糕,而且你可能正处于收益递减阶段,因此如果你能适应当前的滞后,那么减少500毫秒的努力可能会很高

另外,我假设您正在测量服务器端的延迟(或延迟)?如果是这样的话,你需要看看服务器是如何解码和呈现的,尤其是当你将自己的播放器与第三方播放器进行比较时

值得一看接收端的抖动缓冲区,不管流etc延迟如何——简单地说,在开始播放之前等待更多的数据包可能会导致更多的启动延迟,但也可能提供更好的总体用户体验。这是因为在进入用户不喜欢的“缓冲”模式之前,大缓冲区将更能容忍延迟的数据包


这是一种平衡,你的需求可能会左右你的偏见。例如,如果您正在计划一个类似视频聊天的应用程序,那么延迟是非常重要的,因为它开始让200-300毫秒以上的用户感到恼火。如果您正在提供一个体育赛事的提要,延迟可能不那么重要,避免缓冲暂停可能会给用户带来更好的感知质量。

嘿,谢谢你的回答。.问题基本上是android摄像头预览回调,大约每50毫秒调用一次。.因此,我在等待预览回调时损失了很多时间。.我尝试设置摄像头fps范围但这并没有起到很好的作用,所以我现在要试着直接穿过表面。编码器和解码器非常快,但它们似乎缓冲了一些NAL单元。我正在寻找的是一些android流媒体应用程序的基准测试或其他东西……几乎play store中的所有流媒体应用程序都会滞后,这让我想知道滞后是否存在inevitable@thunderbird你做了多远?@kar如果我没记错的话,我被困在大约200-400毫秒的延迟。但那几乎是4年前在Nexus7和WindowsPC上的事了。