Hybrid mobile app for video chat and recording - twilio

I want to build a mobile application which is social networking and allows users to have video chats. The video chats should also be able to get recorded and shared. So I am opting for Hybrid app development as I can release the app both in iOS and android.
For my requirements what Hybrid platform should I opt?
I came across Twilio services which provide video chat functionality, but is Twilio compatible with Hybrid apps?
If yes, I am more inclined towards flutter(google's hybrid application framework), is flutter Twilio compatible?
If not, which other hybrid framework is Twilio compatible?

Twilio developer evangelist here.
As Flutter is newly in beta, I don't think many people have attempted a Twilio integration. The Flutter video player plugin is not complete yet either. Flutter might not be the best platform for this.
I believe that Twilio Video can be supported in other frameworks like Xamarin, React Native and Cordova. I've not personally used any of them, so that's as much as I can tell you.

Still in development fase at the moment but we are working on a Flutter plugin for Twilio Programmable Video. It can be found here: https://gitlab.com/twilio-flutter/programmable-video

I can recommend to try ConnectyCube
They have hybrid Cordova/PhoneGap SDK and code samples for video chat:
Cordova Video Chat code sample - https://developers.connectycube.com/js/code-samples-videochat-cordova
Javascript/Cordova SDK - https://developers.connectycube.com/js/
Main features, in general:
1-1 video chat
Group video chat
Cross-platform
WebRTC based
Screen sharing
VP8/H264 video codecs supported
Mute/Unmute audio/video stream
Switch video input devices (cameras)
Video recording

Related

Is there a way to use Chrome in a webview in an iOS app?

I need to build video chat application with the option to record the video call. I think that most appropriate would be to use WebRTC, specifically Kurento. However, Safari does not support WebRTC at this moment, and the iOS client SDK's don't offer the ability to record the video. This is supported for a javascript client:
http://doc-kurento.readthedocs.io/en/stable/tutorials/java/tutorial-one2one-adv.html
So I was thinking to open a chrome browser inside my app just for the webRTC functionality. I read about Blink WebKit but I'm not sure if this is what I need.
P.S. Any other proposed solutions for the video call + recording features on an iOS app are welcome.
The simple answer is no, you can't use Chrome on IOS for webRTC. Apple for some reason don't like peer to peer technologies, and while they are rumoured to be working on it, there is no announcement yet.
There is this...
cordova-plugin-iosrtc
Cordova iOS plugin exposing the full WebRTC W3C JavaScript APIs.
Public Google Group (mailing list) for questions and discussions about
cordova-plugin-iosrtc. Bug Tracker for reporting issues and requesting
new features (please don't use the bug tracker for questions or
problems, use the mailing list instead). NPM package. Yet another
WebRTC SDK for iOS?
Absolutely not. This plugin exposes the WebRTC W3C API for Cordova iOS
apps (you know there is no WebRTC in iOS, right?), which means no need
to learn "yet another WebRTC API" and no need to use a specific
service/product/provider.
https://github.com/eface2face/cordova-plugin-iosrtc
Warning: Some assembly required
See this article for more details on the pitfalls:
http://ninjanetic.com/how-to-get-started-with-webrtc-and-ios-without-wasting-10-hours-of-your-life/

iOS Audio/Video Live Broadcast Solution

I am developing a social app for android and iOS,
iOS and Server work has started.
Our App needs to broadcast live audio/video to end users using our app.
We have tried using setting up Servers using RED5 and WOWZA.
In iOS we got crashes, buggy frameworks from RED5 iOS SDK for broadcaster so we moved for trial version of WOWZA
After implementing WOWZA GoCoder SDK for iOS we found that its license is too much costly for me of $8000 + $2000/year maintenance :(
The midnight coder seems to be buggy from the reviews (I have not used it for broadcaster client yet)
Can anybody recommend me for good iOS SDK or some custom way to implement live broadcast streaming from my mobile camera.
Any help will be highly appreciated.
Thanks
You can use NGINX RTMP for Live streaming server https://github.com/arut/nginx-rtmp-module
And in iOS for broadcasting you can use https://github.com/LaiFengiOS/LFLiveKit
both are free libraries

P2P Video in iOS + Unity

What would be the best way to realize p2p video (no audio) streaming between 2 iOS clients in real time? This would need to be inside of a Unity3D (or perhaps Cocos3D) game engine.
I've looked at some WebRTC based solutions like Icelink and OpenTok, but I don't have much experience with these technologies. Can someone recommend any de facto solutions for this type of task?
You can use Opentok webrtc-based platform to enable video (and audio) communication between two or more peers.
Opentok has native SDKs for Android and iOS so it should work for you since you are working in iOS.
In order to use it from another SDK such as Unity3d or Cocos3d, Opentok exposes the sent and received video frames (RGB or YUV) to the client, so you can take that video frame image data and render it any view inside the game engine using, for example, OpenGL.
As everything is implemented in the SDK and supported by Opentok platform, enabling the video communication is a matter of interacting with the SDKs so it shouldn't be so hard.

How to wiki not updated in Flyver SDK

I wanted to mimick video streaming, photo capture etc for android and iOS mobile apps using Drones. I have found Android support is available by Flyver here - http://flyver.co/drone-api-sdk/.
But, I could not find anything that suffice my needs as flyver wiki is not well updated.Please let me know how could I simulate Drone apps using Flyver?
Flyver SDK will soon support video streaming and restreaming from cameras such as GoPro.
You could run the apps on any Android phone and test without the drone.
Download the Hello Flyver application to get you started:
https://github.com/flyver/Flyver-Apps/tree/master/HelloFlyver
For further questions you could write directly into the forum pages: http://flyver.co/forum/

Video Streaming in iOS through WebRTC

I am trying to build a audio/video streaming app that works cross platform on iOS and Android mobile devices.
No matter how deep I Google, I'm ending up with suggestions that point me towards OpenTok/TokBox API. But this is what I wish to avoid.
I've checked a few demo, but WebRTC/HTML5 do not seem to work with streaming video/audio in iOS browser. For example, the https://apprtc.appspot.com demo does not work in Safari or Opera Mini in iOS.
When I try http://dev.opera.com/articles/media-capture-in-mobile-browsers/demo/ ... I can capture image using the default iOS camera picker from my browser but streaming video fails.
It seems like the getUserMedia() stuff is not supported by any browser in iOS.
Moreover, I am planning to put this on a WebView in a native iOS app. This sounds like a really far cry.
I wish someone could point me towards something that helps me build a video streaming app (hopefully using HTML5), that works uniformly for iOS and android (without TokBox).
You might want to look into Ericsson's Bowser App http://www.ericsson.com/research-blog/context-aware-communication/bowser-openwebrtc-released-open-source. It claims to provide WebRTC on Android and IOS. Apparently the App is currently under review in the App Store so if you wait it may just be a case of downloading the App. However it's also open source so if you can't wait then you can build it yourself https://github.com/ericssonresearch/bowser.
getUserMedia and WebRTC Peer-to-peer connections APIs are not supported in iOS.
One of the reason is that at the moment efforts around WebRTC focus on VP8 video codec which Apple and Microsoft do not support natively. Support in the near future is unlikely with Microsoft pushing for its own standard.
Doing what you want on iOS requires you use a native iOS compatible solution like OpenCV which supports video capture. You can find on Google tutorials on how to implement a solution based on OpenCV.
good news, will be supported at Safari 11.0
https://developer.apple.com/library/content/releasenotes/General/WhatsNewInSafari/Safari_11_0/Safari_11_0.html

Resources