保存视频文件或流式传输到服务器之间的Android性能差异



我计划构建一个Android应用程序,该应用程序记录视频提要并对视频中的每个捕获帧执行操作。当前的应用程序结构如下:

  • 开始录制视频
  • 捕获帧
  • 在框架上操作
  • 将帧保存到外部存储器中的单个视频文件
  • 重复

录制45秒视频后,外部存储器中的视频文件将通过网络连接发送到服务器。视频将以1080p、30 FPS的速度录制。

我想知道将每一帧流式传输到外部服务器,而不是在设备上创建视频文件进行存储,是否会带来显著的性能成本。我感兴趣的是,流式传输每帧是否会比保存每帧带来更大的性能成本。如果是,为什么会出现这种情况?提前感谢!

一方面,在数据大小方面会有开销,因为我预计压缩视频将比数千个源帧少约100倍。

另一方面,从帧构建视频将具有非常高的CPU占用空间,因此将消耗电池。

您可以使用Android Profiler来检查哪种方法工作速度更快,对移动设备本身的影响最小。

从移动设备的角度来看(节省CPU和带宽(,最好的选择是将视频流直接从相机保存到后端服务器上并在那里执行处理。然而,在这种情况下,您需要仔细测量服务器的性能,以确保它能够支持预期数量的移动用户同时上传视频文件。请参阅负载测试移动应用程序简化文章,了解有关移动设备后端性能测试的总体想法。

您应该先将其保存在本地,然后进行流式传输。如果在流式传输过程中网络连接失败(很可能是在进入/退出wifi/蜂窝接收的移动设备上(,那么您将丢失所有数据。如果你先把它保存到一个临时文件中,那么你可以上传它,并在删除临时文件之前检查上传是否成功。

相关内容

  • 没有找到相关文章

最新更新