2012-08-28 41 views
2

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

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

此外,我需要的方式只是发送视频帧,而不直接在屏幕上显示它们。

谢谢。

回答

2

你没有提到你是否会在设备上进行编码或解码。

一些提示: UDP会更少的功率一般在饥饿特别是在日益恶化的网络条件: 见http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.134.5517&rep=rep1&type=pdf 检查更多的论文在这对谷歌

在一般的编解码器方面,你可以说的顺序是就编码和解码所需的功率而言,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便宜。因此请检查您的设备硬件功能。

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

+0

感谢您的详细解答。有关使用UDP的快速问题。是否有一种简单的方法可以在Android设备上一次获取单个H264/H263帧?如果没有,则需要在打包之前将视频流分解成帧,并将它们作为UDP数据包发送。 –

+0

你必须使用rtp协议发送。 live555或ffmpeg可以为你做。 Google for spydroid。 – av501