What's the difference between WebRTC and Jingle. I am going to build Android based voice calling app using XMPP ejabberd server. So, which one of these will be best choice for voice calling on Android?
XMPP is a messaging protocol. Jingle the subprotocol that XMPP uses for establishing voice-over-ip calls or transfer files. WebRTC is a Javascript API (there is also a library implementing that API).
You can use Jingle as a signaling protocol to establish a peer-to-perconnection between two XMPP clients using the WebRTC API. This shows an example in Javascript that works in Chrome and Firefox (and Microsoft Edge if you only want audio).
WebRTC code in code.google.com only contains the video and audio codec, the RTP stack. The libjingle project contains the API of webRTC, it looks nurse but it's true. Besides, the libjingle has the stacks of XMPP and STUN, ICE implementation. If you want to make a total solution for VOIP, you have to build both.
Related
For a server which tries implement video chatting or (multimedia or text chatting for that matter) using RTP which one should be used for control? SIP or RTSP? I went through the abstract of the corresponding RFCs however I could only see that both of them are used for just controls and the actual transmission of data is done using other protocols like UDP or RTP over UDP. From my understanding, SIP is for controlling transmission of data where sessions between two users are involved and RTSP otherwise. Of course it is a very basic understanding. What are the actual differences between these 2 protocols ? A simple google search did not give me a comparison.
Both SIP and RTSP are signalling protocols. SIP can handle more diverse and sophisticated scenarios than RTSP and I can't think of anything significant that RTSP can do that SIP can't. The advantage of RTSP over SIP is that it's a lot simpler to use and implement.
RTSP is suited for client-server applications, for example where one server has a media stream to feed to multiple clients. SIP is suited for peer-to-peer scenarios where media streams need to flow both ways.
One way to think of it is that RTSP is kind of like using the television where the broadcaster is the server and your tv is the client; you turn your tv on and can switch between a certain number of pre-defined channels. SIP is like using the phone (not surprising given it was mainly designed for VoIP), you can call anyone you want or they can call you.
Both SIP and RTSP use exactly the same media transfer mechanisms such as SDP and RTP so they aren't a consideration when choosing between them.
Does Google speech API v2 support audio streaming via web sockets?
I found a way to send POST request with audio. However, it would be great if I can write audio and send it via socket in real time.
Note: I use Firefox browser. I know that Google Chrome supports voice recognition from the box, however I'm interested in Firefox and other browsers.
V2 of the API currently does not support web sockets. The streaming API uses gRPC which would need a translation layer to work with websockets.
https://cloud.google.com/speech/reference/rpc/google.cloud.speech.v1beta1#google.cloud.speech.v1beta1.Speech.StreamingRecognize
IBM Bluemix does support websockets, check out this sample project to see it in use: https://github.com/triceam/IBMWatson-QA-Speech/blob/master/config/socket.js
I'm using WebRTC (win c++ native client) to broadcast real-time video to peers (hosted in Chrome).
Goal: send metadata along each video frame (metadata changes at frame level).
Would it be possible to send the metadata within a text track to be consumed by a javascript at the peer side?
If not, is there an alternative way of synchronizing WebRTC real-time video with metadata?e.g., using WebRTC DataChannel / WebSockets?
I guess you need this features
https://webrtc.googlesource.com/src/+/77c8e65b88c9d2d95442b66ada504e0f1c553d66
Update multiplex encoder to support having augmenting data attached to the video
No.
At the moment, WebRTC implementation (or specification) comes with no synchronization or the ability to synchronize data with video on a frame-by-frame basis. This is something being looked at for future WebRTC specification.
There are vendors who offer such a capability in their SDKs, but this is limited to their native SDKs and doesn't work in their browser based JS SDKs.
I am working on an iOS application to stream live video from iPhone to a media server and then make it available to a larger audience using RTSP.
Which protocol or method I should use to send the video stream to a server.
Thanks.
HTTP Live streaming is not designed for you needs, it's for server->clients + I won't comment about huge delay it implies
You better check RTSP or RTMP protocol and LivU blog
For Celluar
Apple seems to make a distinction between apps that are used for just streaming content from servers and those that are used for some type of conferencing.
I think VOIP types are safe, and it seems like gocoder presenter types apps don't have issues either. There's no official page detailing this, but there is some mention under what apples considers VOIP app.
No app has issues if its over wifi only.
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