twilio / video-quickstart-ios

Twilio Video Quickstart for iOS
https://www.twilio.com/docs/api/video
MIT License
460 stars 178 forks source link

How can i screen broadcast in ongoing video call(Help wanted) #495

Closed milan-galitein closed 4 years ago

milan-galitein commented 4 years ago

We are trying to do screen broadcasting using replay kit in ongoing video call. If you can provide any demo or sample how ongoing video call can share screen. I have created extension for screen broadcasting but the problem is that how can i change video and audio codec from broadcast extension.

piyushtank commented 4 years ago

@milan-galitein Thanks for reaching out.

We already have a sample app for screen sharing in a Room with ReplayKit broadcast extension. Example - https://github.com/twilio/video-quickstart-ios/tree/master/ReplayKitExample

Check it out and let me know if you have more questions.

milan-galitein commented 4 years ago

@piyushtank I have already used your demo app. But the situation is like we have ongoing video call where we have already connected to one room . Then after need to do screen sharing using ReplayKit broadcast extension. If you have any idea then just let me know how can we pass video codec from broadcast extension to video call controller?

piyushtank commented 4 years ago

@milan-galitein Apologies for the late response. You can connect to a Room from your app and while you are connected to the Room, if you like to share screen, you can launch broadcast extension, and connect and share screen from there. Your presenter will be connected from two places - app, and boradcast extension, your app needs to manage this.

Another option is you can use MMWarmHole to supply video frames from broadcast extension when the extension is launched. From app, you will have to share a screen track, with ScreenVideoSource for the frames received from the broadcast extension.

Let me know if you have any questions.

piyushtank commented 4 years ago

Closing the ticket as answered. Feel free to reopen if you run into issue or open a new ticket.