iOS Audio/Video Live Broadcast Solution - ios

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

Related

Hybrid mobile app for video chat and recording

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

iOS WebRTC Handle Packet Loss

I have a webRTC web app and an iOS WebRTC app. Both are using pubnub for signaling and this is working. I am using Xirsys for ICE. Everything works between the ios app and the web app until a packet is lost from web to ios. Once a packet is lost from the web video feed to the ios video feed the web video feed cuts out. But if a packet is lost from the ios app to the web app there is no problem.
On the iOS side I am using libjingle_peerconnection to handle the peer connections. Is there a way on the iOS side to just reduce the quality when packets are missing as opposed to just closing the feed.
the libjingle_peerconnection cocoapod is so old that it is no longer compatible with Chrome 56+. See here for more details including a workaround if you can't upgrade.

Can we do RTMP Streaming in ios app?

Can we do RTMP Streaming in ios app?
I have stream from cross devices using RTMP without delay or latency. I have tried HLS but its has more latency.
So please suggest, I can ready to buy the code or library, if it'll match my scenarios.
Technically, Yes. But apple will reject it from the app store if the content is longer that 10 minutes and uses cellular data.
https://developer.apple.com/library/ios/qa/qa1767/_index.html
Update:
It appears that apple does allow some apps to break this rule now. But YMMV

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.

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