我有一个问题,我的应用程序是一个简短的视频共享应用程序,就像藤蔓一样,但现在我在地铁或信号弱的地方使用时会遇到问题,有时会失败并且用户体验不佳。
我是网络编程和iOS的新手。我在Google上做了很多搜索,并且有一些普遍的意义,让我总结一下我的发现,并帮助给出一些建议。
我的要求是:1。上传中断时支持恢复。 2.可以成功上传弱信号。实际上我不需要考虑实时问题或如何压缩视频,只需将视频视为文件即可。 BTW服务器是REST风格,我使用post来上传数据。
问题:
这是我的要求更好的方式,使用流(流不是指实时流视频只是像NSOutStream和NSInputStream这样的数据流,只是在所有上传后播放视频,而不是直播视频播放和在此期间下载)或将整个文件分成几个块并按块上传块。 有人说,使用流有利于提高资源效率,因为流会将文件读入内存并控制缓冲区的大小,并且在与服务器建立连接后,我们使用委托来控制故障,使其易于使用。 通过chunk上传chunk是很好的速度,我对这个语句感到困惑,成功上传一个chunk后上传我们需要释放连接资源并设置另一个连接然后上传我认为这将花费时间做这些准备工作。
如果上传的块大小应该是好的,一个视频文件几乎是1M字节,有人说8k是一个安全的选择,但是......
由于app需要适应不同的信号强度,有什么办法吗?例如,块大小取决于带宽或其他方式
是否有任何私有API已经支持恢复上传中断或者有没有苹果api可以支持这个,我的应用程序需要在iOS 5及更高版本上运行所以不能使用NSURLSession
并发上传是一种加快速度的方法吗?如果是,如何实施或任何可用的API?
提前感谢您帮助像我这样的新手。非常感谢你。
答案 0 :(得分:1)
你的问题需要很多主题。 iOS没有用于流式传输视频的公共API(例如面部时间组件)。这里的主要问题是逐帧发送将需要大量的网络流量,相反,如果您使用正常的视频编写器,您将获得硬件压缩,这将是更好的。还有更多内容,您可以在此处查看:Realtime Audio/Video Streaming FROM iPhone to another device (Browser, or iPhone),Upload live streaming video from iPhone like Ustream or Qik,How send to stream video from iOS device to server?和here 如果实时不是您的问题,我建议您只使用一个好的网络管理员,例如:MKNetworkkit或AFNetworking 2.0。他们将照顾你提出的大部分方面。