我正在开发一款理想情况下会提供视频聊天功能的iOS应用程序
目前,我已经设法使用AVCaptureOutput,Bonjour,NSNetServices,CFSocketStreams和NSStreams使其在wifi网络中工作。将2个iOS设备(客户端和服务器)连接到同一个wifi。
我想要实现的是通过我的专用服务器连接,而不是通过本地wifi网络。因此,2个或更多设备也可以使用3G,LTE等等。
我想知道如何将相机从iPhone传输到我的远程专用服务器。 我不想使用Wowza作为服务器,我不想要OpenTok或类似的工具,我不想要Apple的HTTP Live Streaming工具(它们是“服务器到IOS而不是IOS到服务器”的工具) ,它们仅用于媒体流,而不是实时相机/麦克风)
我也读过有关CFHTTP请求,NSURLConnections,JSON和HTML5但我仍然不知道它们是如何工作的,或者它们是否是我需要的。
汇总:
如何在我的iPhone与远程专用服务器之间建立连接,以及以30fps的速度实时流式传输iPhone相机/麦克风?
答案 0 :(得分:2)
对你的问题的简短回答是,Apple并没有提供在iOS中这样做的方法 - 他们根本没有提供直接的方法来获取硬件编码的帧。更长的答案是你可以,但你必须精通迭代打包和发送短文件的硬件编码视频段,以及你喜欢的协议。
解决硬件编码帧问题的分组后,您必须解决复制问题(客户端 - >服务器 - > [多个订阅者])。既然你不想使用Wowza,并且你的语调,似乎不想使用你没有写过的任何服务器,你可能应该在编写你的RTMP和RTSP时阅读拥有。我无法想象我想要编写自己的RTMP服务器的情况,但我不会判断你。 ; - )
注意:我已经完成了你(貌似)正在尝试做的事情,完全按照我在第一段中所描述的那样做。我做了使用RTMP作为流协议,并将h.264硬件编码文件的短段打包到流上。我自己写的不是从服务器向最终客户端复制流。使用Wowza。或者nginx-rtmp。或FMS。什么 - 如果你真的想写自己的,这是你的特权,但老实说:不要。