i have two ipads with two version. one is ios 4.2.1, another is 4.3.3.
i write an app which plays he-aac format audio and it should have playback mixing behavior .So i init the audio session, set the AVAudioSessionCategoryPlayback category(i playback the audio while the screen locked) and set kaudiosessionproperty_overridecategorymixwithothers. i use audio queue to play it (system can decode and playback )
The result is the app in ios 4.2.1 can't play while that in ios 4.3.3 play normally.ios developer library document tells me that app with playback mixing behavior and decode aac can not access hardware decode.
so i think ios 4.3.3 support he-aac software decoding but 4.2.1 can't!
but ios developer library document also says that it don't support he-aac software decode...
i confused...
thank you very much for answer!
there is reference. https://developer.apple.com/library/ios/#documentation/AudioVideo/Conceptual/MultimediaPG/UsingAudio/UsingAudio.html
Related
I am unable to play HLS video with 5.1 audio track on Chromecast 2 and Chromecat Ultra. The same files worked just fine on previous firmware releases before 1.28.100555.
In order to avoid any Objective-C programming errors all the tests I made were done using a slightly modified "CastVideos-ios" (official sample from Google Cast SDKs github).
The only modification I made is related to "media_list_1_url" in order to make the application load a custom JSON file pointing to my video sample files.
The JSON list is available at this link:
http://144.76.13.14/GoogleCastTestList.json
When I try to play the 5.1 audio track version on Chromecast 2 and Chromecast Ultra the video simply dose not load. Both of the test files play without problems on Chromecast 1.
Can someone help me find out if this is a Chromecast firmware issue or I must modify the Cast sender app code in order to play 5.1 audio files ?
I have a audio streaming app that streams music from a network resource with audio files as mp4's encoded as AAC using Azure's Media Encoder. I'm using open source library's https://github.com/muhku/FreeStreamer https://github.com/douban/DOUAudioStreamer, which both use Apple's Stream Parser from the AudioToolBox framework to stream audio, but on iOS9 the framework throws a kAudioFileStreamError_InvalidFile error. Interestingly apps compiled with the iOS9 SDK continue to stream the same file perfectly on iOS7/8 devices, but not iOS9.
Now i can't figure out if Apple broke something in iOS9, or we have the files encoded wrong on our end, but they play just fine on both iOS 7/8 but not 9. Here is a sample file from our server which plays just fine on iOS 7/8 but not 9 http://patarims.streaming.mediaservices.windows.net/858959cc-a7c2-4053-9f41-9ad32b406a8b/eyhqG1mC_AAC_und_ch2_128kbps.mp4
If anyone could point me in the right direction, how do i go about debugging the issue? Do we need to re-encode our files in some specific way?
It is documented all over the web that the iOS does not support multiple HTML5 audio. I ran a test and here are the observation:
iOS 5 (iPad1) - can play only one audio at a time.
iOS 6 (iPad2) - can play multiple audio.
iOS 7 (iPad3) - can play multiple audio.
It looks like on iOS 6 & 7, we can play multiple HTML5 audio, but to my surprise i could not find any discussion regarding this over the web, also apple documentation still says "Currently, all devices running iOS are limited to playback of a single audio or video stream at any time"
I am not sure if multiple HTML5 audio will work across all devices which support iOS6 and iOS7, also will apple continue to support this with next version of iOS, does anyone has any idea about this?
Does any of you can point me to some resource about video performance of AIR (3.2) on iOS devices.
I am interested into:
is StageVideo available
is video streaming allowed/enabled
is the performance ok with high definition videos?
is .flv playback allowed? (how about on android: flash is there already)
Only H264 has hardware decoding on iOS.
This means comparable video performance with native player only for H264
and slugish (at best) decoding for Sorenson and VP6 (even with low resolutions).
"AIR 3 for iOS uses the StageVideo object for H.264 video with hardware decoding, with limited supported for NetStream functionality. AIR 3 for iOS also supports On2 and Sorenson codecs through the StageVideo object. This support does not use hardware decoding, and it does not limit NetStream functionality."
flash.media.StageVideo
FLV and MP4 are encapsulation formats.
FLV can contain VP6+MP3 or H264+AAC (or any of them taken alone).
MP4 can contain H264+AAC.
The docs don't say anything about FLV not beeing supported on iOS.
However, on iOS, if FLV/H264 won't play, you won't be able to remux it to MP4 on the fly because of the following restriction (otherwise you would lose hardware decoding):
"Note: This method is not supported for H.264 video in AIR 3.0 for iOS."
flash.net.NetStream::appendBytes()
Nothing is said about Sorenson or VP6 not beeing suported for on the fly remuxing (thus they should be).
You shouldn't need appendBytes anyways, unless you plan on doing some very advanced stuff, like switching bitrates on the fly without any interruption during play.
Live streaming requires something similar of what appendBytes does. Since H264 hardware decoding is required and does not have a software mode, you won't get H264 for live streams.
"It turns out that real-time streaming of an H264 video does not render on iOS devices in Adobe Air. Other video codecs will work (H263), but not for H264. You'll consume the feed, but will only hear audio. I confirmed this after talking with members of the Adobe Air development team."
From Adobe Forums
How well H264 decoding performs on different Apple ARM CPUs really depends a lot on video encode settings (B-frames or keyframes, bitrates, etc.) and wether you have dynamic content, static content, fast switching scenes, resolution, color palletes, etc.
Conclusion:
Use FLV or MP4 (whichever suits you best), with H264+AAC inside.
Experiment with encode settings, or lots of videos of which you are targeting (if any).
Determine which is the lowest (oldest) iOS device you want to target, and test on that.
I don't know how the performance stacks up, but the Actionscript docs for NetStream have some information about using NetStream/Video to play video on AIR on iOS devices:
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/NetStream.html#play%28%29
StageVideo is supported for H.264 video on iOS with AIR 3:
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/media/StageVideo.html
The takeaway is that StageVideo and limited streaming capabilities are supported on iOS devices as long as your video uses the streaming formats that iOS requires.
I'm developing a Flex application to iOS devices and I can't find a way to play mp4 video inside it...
I know it works with navigate to URL command but it's open browser and then the vieo player, which is not what I'm intending...
Thanks
If you work with audio and video streaming, one of the worst limitation of AIR 2.6 for iOS is that it is not possible to stream video encoded in H.264 (and audio in AAC) inside your AIR application. AIR 2.6 for iOS supports NetConnection and NetStream but can decode only Spark, VP6, MP3, NellyMoser and Speex formats. So no H.264 and no AAC.
I've tried play .flv video fine in flex app on iOS.