Live Video Chat for iPhone and HTTP Live Streaming
Asked Answered
H

3

13

I want to make an app which has video chat functionality for iPhone. But after many searches, I am still not able to find any successful results. Is there any public or even for that matter, private API available for doing this on iPhone? If you have an YES answer, please help me.

Basically, what I want is to read the streams of the video on both the devices connected for chatting. Please help me if you can.

p.s - I have already checked iDoubs but it failed and always shows some unknown problem and for that reason, doesn't allow me to connect to anyone.

ALSO : The suggested method I have found is via HTTP Live Streaming. But, in that too, I have multiple doubts.

1.) I need to find how do I upload my video from iPhone to the HTTP server from where I would be broadcasting?

2.) Can you please post something related to setting up the server? How do I feed the video to the FFMPEG Server?

Mainly, I need to find the upload method. I am right now simply sending hex-code in the form of NSDATA to the server and I am stuck there. The main problem is, It is live. How do I handle that?

It would be best, if you could help me make the iDoubs work properly.

Hardecanute answered 22/11, 2011 at 13:26 Comment(5)
I'm afraid you cann't do it without additional web-service. And if you want to send/receive a lot of info through internet you need to use HTTP Live Streaming.Sponson
Yes, I am thinking about HTTP Live Streaming only. But I have some questions regarding that. Please check the updated question.Hardecanute
I don't think you want to use HTTP live streaming for this. Video chat is not a simple thing to do to get it done right. What are your requirements? Do you definitely want to write it yourself or are you open to licensing the software? If so there are toolkits out there for doing video chat.Mi
yes i am open for licensing it. Can you please give me any information regarding the toolkits for video chat?Hardecanute
also specifically, i want that i should be able to read the input video stream on both the sides of the chat simultaneously. Could u help?Hardecanute
E
3

have a look on this how to implement video chat in iphone But before starting you must have a IMS server up & running.

Edrick answered 29/11, 2011 at 10:11 Comment(1)
from the link you gave, iDoubs doesn't work. I have tried according to their documentation but it just didn't work. Haven't tried the second one. And I do have a SIP account. But What do you mean exactly by IMS Server? How would I develop that server?Hardecanute
S
2


here is the live video chat framework what you are looking for. Its easy and simple to implement for face to face video chat. I have already tried this. Its working very fine. Great thing about this framework is multiple platform support.

Tokbox :
https://tokbox.com/platform
https://tokbox.com/opentok/tutorials/

Sample Code:
https://github.com/opentok/opentok-ios-sdk-samples/

Edit:
Here is the article explaining opentok using parse.
http://www.iphonegamezone.net/ios-tutorial-create-iphone-video-chat-app-using-parse-and-opentok-tokbox/

Semasiology answered 12/12, 2012 at 7:13 Comment(2)
that is a very good article! i am 90% there. i managed to get own video working on both devices (user sees herself) and remote video working only on the originating device, not in the receiving device. in short, i think session:streamCreated: is not being fired in the receiver. any idea why this may be happening?Peculate
how long does this tutorial take to implement? most of the links are dead, does this method still work?Cinnabar
N
1

HTTP live streaming is primarily an approach for adaptive streaming from server-to-client. For client-to-server rather go for traditional streaming. There exists an open library for streaming, see this question.

Whilst it is possible to facetime to do two-way chat, it is not certain that you will be able to using public iOS APIs. That said, I have implemented one-way live streaming for iPhone and the difficult part was not the core streaming itself, but encoding of the payload. You will be able to do H264 in hardware and AAC / iLBC in software.

How you want to feed this to the FFMPEG depends on your transport, possibly changing from 'file' H264 frames to 'streaming' H264. Check out the H264 frame types if you implement frame dropping; reconfiguring the H264 encoder on-the-fly is not possible to my knowledge, but restarting with fresh parameters typically does not take more than a second or so.

Did you attempt to play back a live resource while capturing? That is a good starting point. If you come across an open API for H264 encoding, please post it here ;-)

Nitride answered 30/11, 2011 at 23:10 Comment(2)
Actually I read about many Live streaming articles and even HTTP Live Streaming has a 30-35 seconds delay.And Delays cant be considered when you are doing video chat. So, I was thinking about some protocols or video chat APIS.. Do u know about any private APIs available which I could purchase??? If yes, please post it!!Hardecanute
there are certain apps like that on the AppStore. Like this one, itunes.apple.com/us/app/vtok/id421102042?mt=8&ls=1Hardecanute

© 2022 - 2024 — McMap. All rights reserved.