Streaming AAC+ (inside FLV) on iOS using AIR - ios

For a streaming radio station, I have an AAC+ audio stream, inside an FLV container, delivered via HTTP. An example URL is http://3023.live.streamtheworld.com/ALTROCK_S01A_AAC. I wrote a simple AIR app (using the latest AIR and Flex SDK's) to play this stream, and it works fine on PC and Android, but doesn't play anything when deployed to the iOS simulator or a device (i.e., the bytes are loaded but there is no sound).
This is similar to Can FLV AAC stream be played in Android, but for iOS.
I wanted to use AIR in this scenario, since I need to listen for the Cue Points in the FLV - and this is easy to do if you're playing Flash in a web browser, so AIR seems like the natural choice. I have also looked at http://code.google.com/p/haxecast/ and https://code.google.com/p/project-thunder-snow/ but they all seem to use the same basic idea (parse the FLV using Netstream in "data generation mode" and feed the AAC+ data to a Video object) - and so they all hit the same wall on iOS.
I also came across this post which seems possibly related although it's not quite the same situation (e.g., it's not FLV).
Is AIR on iOS supposed to support this scenario- namely, streaming AAC+/FLV audio via HTTP?
EDIT: This post also appears to hit the same obstacle - so a lot of people are asking about this situation. Anyone from Adobe have any insight?

After much further research I've concluded that AIR on iOS just doesn't support this, and you have to build a native app (or at least use framework other than AIR) instead.

Related

playing flash videos in ios browsers

I have a scenario where I have to play videos using flash player in iOS device's browser. Offically Apple does not support flash, so is there any way of playing flash videos in iOS devices?
You could try a flash to html5 converter like Google swiffy:
https://www.google.com/doubleclick/studio/swiffy/
Swiffy has been regularly upgraded since 2011 and does a very good job, although expect much bigger file sizes.
Also, looped event sounds in your FLA files (if any) will play only once (i.e. they don't loop). What is more, event sounds play in Swiffy in PC browsers, but currently do not play on iOS devices. Stream sound isn't supported in Swiffy yet, on any device.

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

Live streaming Audio from iOS

I have tried to live stream audio (AAC-LC) from iOS for 3 months without much success...
I tried Audio Queues, which work well but there is a strange delay (~4s) and I don't know why (high level API ?)
I tried Audio Units, it sometimes works on the simulator but never with the phone using a modified code from this source
I am really lost, can anyone help me ?
EDIT
I have to do a live streaming application (iPhone-> Wowza Server via RTSP). The video part works well with little delay (1s). Now I'm trying to add audio in addition to video but I'm stuck with the SDK.
tldr : I need to capture microphone input then send AAC frames over the network without getting huge delay
This app, which I just now completed, broadcasts audio between any two iOS devices on the same network:
https://drive.google.com/open?id=1tKgVl0X92SYvgpvbljRzilXNQ6iBcjqM
Compile it with the latest beta release of Xcode 9, and run it on two iOS 11 (beta) devices.
The app is simple; you launch it, and then start talking. Everything is automatic, from network connectivity to audio streaming.
Events generated by the app are displayed in an event log in the app:
Even though the code is simple and concise, the event log was provided to make understanding the app's architecture quicker and more easily.

getEnhancedMicrophone() doesn't work (reduce echo) on air mobile for IOS

I have a problem with my flex mobile application on iOS. It is a video chat application with a red5 server.
The video works fine but the voice has a big echo! I tried using getEnhancedMicrophone() but it didn't help.
How can I have Acoustic Echo cancellation or suppression on IOS?
I work on Flash Builder 4.6 with Air 3.5
There no known solutions.
Adobe been promising a fix for years but the solution requires access to Android source code from Google that is not open source. I had the same issues with a videChat app on Android using Adobe Air. I tried as workaround:
Switching mic.setLoopback(false/true) in a timer to break up the audio
Trying to detect sound coming over NetStream and set the local device mic gain to 0
Problem is I cannot detect if someone is talking over NetStream.
Use NetStreamInfo audio properties like audioBytesPerSecond but these do not jump when someone is talking over NetStream.
The problem is solved if the user wears headphones on the mobile side but this is not acceptable.

RTSP streaming not working in Nokia series 40 mobile phones

I am new to creating Nokia application for the series 40 mobiles.
I am trying use YouTube channel videos for my application, but I am getting an error on the simulator:
"The RTSP streaming feature is currently not supported in the Web Apps Simulator. Please test the streaming feature on one of the supported devices."
I tested on supported devices using the Nokia deploy method, but it is still not working so please can anyone help me solve the problem?
I believe on Nokia S40 series phones, live video streaming is not possible. May be due to some technical limitations [or say design limitations].
But when you open a web link which streams videos, [Some times and some devices] it gets opened in your media player and gets started to stream. But due to low quality antennas used for internet in the S40 series [Obviously entry level phones] internet speed will be less and it seems like video buffering or video streaming is not possible.
May be the device's simulator which you are using does not supports live video streaming. If you are internet connection is proper [and speedy as well] then this is the root cause.

Resources