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.
Related
I am using this example from Microsoft as the basics for UDP transfer using Xamarin, I have it working on Android with no problems but on iOS is crashing on the udpClient.Close().
Do you have to setup any special permissions on iOS to use UDP?
https://learn.microsoft.com/en-us/dotnet/api/system.net.sockets.udpclient?view=netcore-3.1
What we found iOS takes longer to process UDP packets, compared to Android so when we try a transfer using await/aync the process was never finishing before we requested another the UDP transfer. As the await/async had not opened a UDP channel, when we came to close it would generate an expectation.
What are my options implementing WebRTC (Janus specifically) in my iOS app?
From what I've gathered, using the WebRTC library made by Google is hard and may fail. Also the fact that the backend uses Janus, I don't know how much work I'd have to do to get the basic WebRTC compatible with the Janus layer.
Also, does WebRTC work in Safari/WK webviews in iOS 11/12? I don't want to stream from the app, I only want to view a stream.
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
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
I'm running the OpenTok demo WebRTC app on Chrome - and it works great. But if I load the page in IE, it gives me an error message (about page compatibility).
Pretty obvious solution is to use the old (Flash-based) OpenTok library on IE - but do I have to do it "manually"? Is there some sort of an "automatic switching" library that would try to load WebRTC (2.0) TB.min.js, and if it fails fall back to Flash (0.9) version?
Also a related question - will all these versions interoperate? I.e. can Chromes (running 2.0/WebRTC) talk to IE (running 0.9/Flash) and talk to iOS (running native)?
To have WebRTC capabilities on IE, users could install Chrome Frame (for IE6+). It is a valid option, but you should know that it is no longer being actively supported by Google.
As far as I know, there is no automatic switching library. However, on your server, you could look at the HTTP requests and find out the client's browser. From there, you could dynamically load either the WebRTC or Flash library depending on the browser's support for WebRTC. Currently, the OpenTok WebRTC library supports:
Chrome 23+
Firefox 22+
Unfortunately, OpenTok does not interoperate between Flash and WebRTC clients. WebRTC clients can operate with other WebRTC clients (mobile, web, etc.), just like Flash can only operate with other Flash clients. For example, an iOS client would have to use the WebRTC SDK and the Chrome/Firefox web app would have to include the WebRTC Javascript library.