来自Android设备的高效视频流

时间:2012-08-28 18:45:22

标签: android video-streaming power-management battery

我正在进行一些实验,将来自Android设备的前置摄像头的视频流传输到本地服务器。目前我打算使用WiFi。我将来可能会转向蓝牙4.0。

我正在寻找有关协议选项(TCP,UDP,......?)和视频编解码器的见解,经验,DO和不要以及其他想法。图像质量应该足以运行计算机视觉算法,例如服务器端的面部和物体检测,识别和跟踪。最大的担忧是力量。我想确保流媒体尽可能节省电力。我知道更高的功率效率意味着更低的帧速率。

另外,我需要发送视频帧而不直接在屏幕上显示它们。

感谢。

1 个答案:

答案 0 :(得分:2)

您没有提及是否要在设备上进行编码或解码。

一些提示: 一般情况下,UDP的耗电量会降低,特别是在恶化的网络条件下: 见http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.134.5517&rep=rep1&type=pdf 在Google上查看更多相关论文

就编解码器而言,您可以说订单是H264> MPEG4> H.263就编码和解码所需的功率而言。

比特率越高,解码所需的功率越多,但编解码器差异比比特率差异更大。我这样说是因为要获得与H.263 H.264流相同的质量,你需要更高的比特率。但是,在比特率较低的情况下,h.263应该比H.264消耗更少的功率。所以不要跨交叉编解码器应用它。只需选择编解码器即可使用最低比特率/帧速率。

在编码中虽然非常低的比特率会使编码器更加努力,因此会增加功耗。因此编码比特率应该很低,但不能低到编码器的拉伸速度。这意味着选择一个合理的比特率,它不会产生连续的块状流,但会提供合适的流输出。

如果您可以控制编码,则在每个编解码器中,您还可以控制解码能力。以下内容适用于: 即解块,B图片将增加电源要求。保持较低的配置文件[H.264的基线,MPEG4的简单配置文件和H.263的基线]将导致编码和解码的功率要求较低。在MPEG4中,如果可以,请关闭4MV支持。使流更简单地解码。请记住,每一项都会产生质量影响,因此您必须找到可接受的质量。

除非你能真正测量功耗,否则我不确定你需要对工具集进行非常精细的调整。只需坚持较低的轮廓即可。

更糟糕的是,捕获期间的视频质量更多是编码期间所需的功率。如此明亮的点亮视频需要较少的编码工作,低光视频需要更多的功率。

无需将视频发送到屏幕。您通过套接字接收视频并执行您想要对该数据执行的任何操作。那取决于你。您不必解码并显示它。

编辑:添加一些我能想到的东西

一般来说,编解码器及其配置文件的选择将是影响视频编码/解码系统功耗的最大因素。

最大的区别可能来自设备配置。如果您在设备中使用特定编解码器的硬件加速器,那么将软件编解码器用于另一个编解码器可能更便宜。因此,虽然H.264在软件中可能需要比MPEG4更多的功率,但如果设备在硬件中具有H.264,那么它可能比软件中的MPEG4便宜。因此,请检查设备硬件功能。

视频分辨率也很重要。较小的视频编码更便宜。运行较小的分辨率时,您可以以较低的速度为设备计时。