我正在对从安卓设备的前置摄像头到本地服务器的视频流进行一些实验。目前我打算使用WiFi。我将来可能会转向蓝牙 4.0。
我正在寻找与协议选项(TCP、UDP、...?)和视频编解码器相关的见解、经验、DO 和 DON'T 以及其他我应该考虑的想法。图像质量应该足以在服务器端运行计算机视觉算法,例如人脸和物体检测、识别和跟踪。最大的担忧是权力。我想确保流媒体尽可能节能。我理解更高的电源效率意味着更低的帧速率。
此外,我需要发送视频帧而不直接在屏幕上显示它们。
谢谢。
我正在对从安卓设备的前置摄像头到本地服务器的视频流进行一些实验。目前我打算使用WiFi。我将来可能会转向蓝牙 4.0。
我正在寻找与协议选项(TCP、UDP、...?)和视频编解码器相关的见解、经验、DO 和 DON'T 以及其他我应该考虑的想法。图像质量应该足以在服务器端运行计算机视觉算法,例如人脸和物体检测、识别和跟踪。最大的担忧是权力。我想确保流媒体尽可能节能。我理解更高的电源效率意味着更低的帧速率。
此外,我需要发送视频帧而不直接在屏幕上显示它们。
谢谢。
你没有提到你是否会在设备上进行编码或解码。
一些提示: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 便宜。所以检查你的设备硬件能力。
视频分辨率也很重要。较小的视频编码成本更低。当运行较小的分辨率时,您可以以较低的速度为您的设备计时。