Draw annotation on Twilio Video Chat - twilio

I want to use twilio for Remote assistance.
Where user can share camera feed and Technician can assist by drawing annotations on the screen.
similar to the demo video on https://www.twilio.com/video
I was able to get the Video Chat running on my iOS devices.
Can you please guide me how to make annotations on one device which will be shown on the other device.

Twilio Video does not provide support for annotating videos as part of the SDK. There is also no current support for using the WebRTC data channel to send that across. You need to provide your own websocket solution for this I'm afraid.
Edit
Twilio Video does support the data channel now, under the Data Tracks API. You can see the documentation here: https://www.twilio.com/docs/video/javascript-v1-using-the-datatrack-api.
You might also consider using Twilio Sync for something like this too.

Related

Steps to implement - One to One Video call App using Twilio

Can Anyone please let me know how we can do a one to one video calling app using twilio.
I could get some sample codes to do a group video chat, but my requirement is particular to have it one to one, please guide if there is any way to do it using twilio.
To build a one to one video calling app, you can follow the same steps to build a multiparty group chat, but limit the access to the room to only 2 participants.
You can easily build a video calling app with the help of Twilio WebRTC Go, and WebRTC Go rooms have default max participants set at 2.
To know more about how to set "max participants" with Twilio WebRTC you can visit the link here.
To understand more about different type of Video rooms using Twilio, you can also visit this doc.
You can set the room limit to 2, when making the multi-party video app using Video Room. Second option is to use WebRTC as mention above, here is the guide of making such app using NodeJS by twilio.

Video call and chat using WebRTC and Pubnub in native iOS Swift

I'm working on a doctor-patient appointment app on native iOS Swift project. Here I want to implement a live video call with chat using WebRTC and PubNub signaling server. I'm totally new to it. I don't know how to implement this. I have seen some of the Objective-C codes but still I didn't understand. Please help if any of you implement the same in swift.
Highly recommend you reach out to a service such as Vonage (https://www.vonage.com) who can provide HIPAA compliant WebRTC video service for you.
Once you have a set of keys on Vonage, you can use PubNub to move the video session details around the channel in question.
Traditionally I use a JSON object model that looks like this:
channel: "UUID of medical session"
messageID: "MessageID on your platform"
messageType: "videoInvite"
sender: "Hilaj"
sessionDetails: "session JWT and/or session token"
timestamp: "1597347054"
This means you can send text based messages as well as video invites in the same channel and write the event to logs.
I have implemented this in Swift (and previously in Objective C) but it is completely proprietary.
You are going to have to download the Google WebRTC framework.
Taking a quick look at PubNub, it looks like it just does signalling. You are still going to need an actual WebRTC server (eg, Janus). There are others and I'm not really sure which ones support PubNub.

Twilio Remote view (TVIVideoView) is blank on the reciever side

I have integrated twilio programmable video in my sample app.
I have 2 apps and both joins the same room.
On the publishing side it works just fine. I am using AR camera instead of a normal one. I am able to view the preview of the other person and audio also works fine.
But on the receiver side, the remote view seems to be blank. It doesn't load the other person's back camera view itself. The same code was working before and it suddenly stopped working.
Please find the swift file that has the receiver code in the below url,
https://www.dropbox.com/s/j0uxt3cv5iqznc0/ARHelpViewController.swift?dl=0
Twilio developer evangelist here.
When you subscribe to a TVIRemoteVideoTrack, you also must wait for the subscribedToVideoTrack:publication:forParticipant: callback to confirm that you are truly subscribed to the video track and that the data will then be forthcoming.
You can also query hasVideoData to determine whether frames have been received for that view already.
I also believe that a known limitation in the current implementation of TVIVideoView is that if you reuse a view by adding it as a renderer to a different TVIVideoTrack, the 1hasVideoData property will not be reset and no videoViewDidReceiveData: will be sent. The work around for that is to make a new TVIVideoView for any TVIVideoTracks that you wish to render.
I'd also maybe recommend checking out this blog post on ARKit with Twilio Video or this blog post on ARKit with Twilio Video and the Data Tracks API.

Video Streaming and Broadcasting using WebRTC

I am very new to Real Time Protocols and I had some questions about how WebRTC works and how I can implement it. I am trying to create a one to many livestream like facebook or periscope, where one user broadcasts and other users join and stream the video. I am using Swift from my client end.
My questions are:
How do I broadcast a video using WebRTC
Is there an SDK for WebRTC in Swift/iOS
I know the questions are very vague but a guidance to the right direction would be great because I am not sure where to start
You will need to use backend servers for that.
If you plan on broadcasting to multiple users directly from your mobile app then stop...
You need to connect your mobile app to a backend media server which then can be used to broadcast the video to a larger audience.
There are several commercial and open source alternatives that enable you to do that. I'd check Red5Pro, Wowza, SwitchRTC, Jitsi, Janus and Kurento for this task.
For the client side, look at react-native-webrtc
You can find more tools for WebRTC developers here.
Regarding your question (2), there's also a SDK for iOS here and a neat get-started-page here (although 2.5ys old, but I haven't found anything better so far yet)

Video(with Audio) chat for iOS

I"m trying to build an app for iOS which includes video(with audio/voice) and text chat. The chat will be one-on-one chat. One source for video is surely coming from desktop/laptop camera(or IP Camera). How can this be achieved for iOS devices? Any open source/ free library as solution available will be welcomed.
You can try these
1) http://quickblox.com/developers/IOS
2) https://layer.com/
3) http://www.pubnub.com/
ooVoo provides free sdk for video chat implementations its very easy to use. But for free sdk it will have ooVoo logo at the bottom of the screen. For more information go to this link: https://developer.oovoo.com/
If you want to implement your own video chat application. You can use xmpp, this link has a good example for xmpp implementation on iOS :https://github.com/robbiehanson/XMPPFramework [it doesn't have video chat implementation you have to modify it].
Or you can write your own custom socket program. In which you will be able to send and receive UDP packet which will contain the video data.

Resources