2013-12-13 21 views
0

我有一个问题,我的应用程序是一个像藤一样的短视频共享应用程序,但现在我遇到了问题,当在地铁或某些信号较弱的地方使用时,它有时会失败,用户体验。优化不同信号强度的上传视频

我是网络编程和iOS的新手。我在Google上进行了大量搜索,并且具有一些普遍的意义,让我总结一下我的发现,并且帮助为它提供一些建议。

我的要求是:1。上传中断时支持恢复。 2.可以成功上传弱信号。其实我不需要考虑实时问题或如何压缩视频,只要将视频视为文件即可。 BTW服务器是一种REST风格,我使用post来上传数据。

问题:

  1. 这是我要求的更好的方法,使用流(流不意味着实时流视频像NSOutStream & NSInputStream仅仅是数据流,只是播放视频毕竟它已经上传,而不是直播视频在播放和下载的同时)或将整个文件分成几个块并通过块上传块。 有人说,使用流有利于提高资源利用率,因为流会将文件读入内存并控制缓冲区的大小,并且在与服务器建立连接之后,我们使用委托来控制故障,使其易于使用。 通过chunk上传chunk的速度非常快,我对此语句感到困惑,成功上传一个chunk后上传块需要释放连接资源并设置另一个连接然后上传我认为这将花费时间来完成这些准备工作。

  2. 如果该块大小应该是不错的上传,一个视频文件几乎是1M字节,有人说8K是一个安全的选择,但是......

  3. ,因为应用程序需要适应不同的信号强度,有什么办法吗?例如块的大小取决于带宽或其他方式

  4. 是否有任何私人API已经支持恢复上传中断或有任何苹果API可以支持这一点,我的应用程序需要运行在iOS 5及以上,所以可以不使用NSURLSession

  5. 并发上传是加快速度的一种方式吗?如果是的话如何实现或提供任何API?

非常感谢您帮助像我这样的新手。非常感谢你。

回答

1

这需要很多主题您的问题。 iOS没有公共API来流式传输视频(如脸部时间组件)。这里的主要问题是逐帧发送将需要大量的网络流量,相反,如果您使用普通视频写入器进行硬件压缩,那将会好很多。还有更多,您可以点击这里:Realtime Audio/Video Streaming FROM iPhone to another device (Browser, or iPhone)Upload live streaming video from iPhone like Ustream or QikHow send to stream video from iOS device to server?here
如果实时不是你的问题,我建议你只使用一个好的网络管理员如:MKNetworkkitAFNetworking 2.0。他们会照顾你所问的大部分问题。

+0

谢谢安德烈您的快速反应,其实时间不是我的问题,我不需要使用实时流视频,我只需要上传整个文件,所以你有一些建议上传块或流? – OddQuestionar

+0

尝试使用我建议的下载管理器之一,它们是在NSURLConnection和NSURLSession上构建的,它们能够发送大文件,避免在文件中直接从文件中读取几个字节的内存问题。我真的不知道,如果仅仅使用一个单一的流或块,他们就会抽象出这种低级概念。 – Andrea

+0

谢谢安德里亚,但似乎我仍然需要对我的具体问题提出建议。 – OddQuestionar