I have created the browser based chat client which uses strophe JavaScript lib to connect to openfire server.
Now i need support for VOIP and video stream feature in that application.
I have checked the strophe website for specific plugin for above features, they have provided jingle plugin/extension but doesn't have any documentation or examples.
I have tried to build the library as per specification provided on XMPP , but its taking much time.
So if some one have any documentation or working example then it will help me to develop the feature.
Or any other extension which is created on the top of strophe which provide the jingle support it will be helpful.
Thanks in advance for any suggestions or direction.
Regards,
Kamlesh
I'm in a similar situation. I've searched over the internet and I found strophe.jingle. I haven't tested it yet but it seems simple and nice. It uses WebRTC protocol for video and audio support. https://github.com/ESTOS/strophe.jingle
Related
1) I'm researching the technology I can use for a browser applicaton that streams video. It should capture video from webcam and push it to service where it's stored and can be watched later. One of the (possible?) options is Azure Media Services. But after a quick look at the documentation it seems that it's not possible to use pure modern browser without plugins. Am I correct? If no, can you please give some links to github projects or an example of code to look at?
2) Another possible technology option is Amazon Kinesis Video Streams (looks lite the best solution I came up with so far), but maybe you can recommend some other cloud services?
Thanks!
Currently the short answer is no.
WebRTC is the right solution for broadcasting from a browser. That's the only protocol for live streaming that will be "somewhat" widely supported in modern browsers like latest Chrome.
AMS does not yet support receiving WebRTC. We only support RTMP and Smooth ingest right now (Chunked MP4)
As far as I'm aware, Kinesis also expects you to send chunked MKV (like chunked MP4 but a less popular container format), which would need a browser plugin or javascript library to support. I don't see any Producer library from them in Javascript.
WebRTC is your answer - but to catch that in the cloud, you may need to look at other solutions that run in an Azure Container. There are a bunch of 3rd party solutions out there for WebRTC.
Does anybody can provide some tip about how to use Jingle on XMPP - precisely on ASmack as I develop for Android. I saw source code of ASmack and there is lib for JSTUN so it's implemented.
Any code/tip/link would be appreciated.
Smack's Jingle code is pretty old and lacks a current maintainer. I can't say if it's working right now or how far it has been diverged from the specification.
There is "Java-Bells: A Jingle implementation for Java based on LibJitsi, Ice4J and Smack", but I can't comment on Java-Bells fitness for Android.
I know that there are many people out there looking for a out-of-the-box working solution for Jingle on Android. But AFAIK, at the time of writing, there is none.
Here you is the implementation of WebRTC + Jingle which is support Android and iOS also
Webrtc audio + jingle protocol brought to IOS and Android
So generally, 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. Thanks a lot in advance and 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.
Thank you so much for any kind of support!
have a look on this how to implement video chat in iphone But before starting you must have a IMS server up & running.
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/
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 ;-)
Is there some APIs to establish video calling between iPhones using my own app? I know such projects as iDoubs, but I am searching for another examples. Or just examples of catching the stream from the camera in a realtime
There is no supported API in the SDK for video calling. You will either need to use a third-party library or write your own (there are some standard protocols for this sort of thing you could use as a reference).
Restcomm is another popular open source alternative.
https://github.com/RestComm/restcomm-ios-sdk
Restcomm also includes SDK for android, server side call control and many other RTC modules.
I am developing one music streaming application.
I can stream mp3 using a method described here. Does anybody know approach to stream other formats(ASX, RTSP or mms) using Core Audio or other framework.
Thanks in advance.
mms, ASX, and RTSP are historically somewhat proprietary protocols (by microsoft and real, in particular), so you may have trouble finding an official apple implementation.
There's a LGPL implementation of the mms protocol here: https://launchpad.net/libmms
Or you can get the documentation for the protocol from microsoft here: http://download.microsoft.com/download/9/5/E/95EF66AF-9026-4BB0-A41D-A4F81802D92C/%5BMS-MMSP%5D.pdf
ASX is just a metadata format in XML; you'd use it to get a mms or http URL to stream from. The official reference for it is on microsoft's site: http://msdn.microsoft.com/en-us/library/bb249663.aspx
RTSP has an LGPL implementation here: http://www.live555.com/liveMedia/
It's a standard protocol (RFC 2326 and RFC 3550) but is apparently often used with proprietary extensions such as Real's RDT transport, so again it might be easier to just use a library if you're able.
Try the free FStream iPhone app http://www.sourcemac.com/?page=fstream that can handle mms, asf, wmv, asx and ogg
FStream is good for audio. You can also use Streamer for video streaming. It is a good app except that it is not friendly at all. Type the URI mms://server/ in your favorites. Then click on it. You will find a button that says: "Pause". Click that again to read: "Unpause". Then wait for 10-15 seconds, the video will start streaming after that. Make sure that you choose a URI that you know works for sure.