Copy link to clipboard
Copied
I have a basic AIR for IOS app that attempts to play back the sample HLS file included with FMS 4.5. The file I am requesting is at "http://10.173.5.150/hls-vod/sample1_1500kbps.f4v.m3u8"
When I request this file directly in the Safari browser on my Ipad 1, it plays back fine as expected. When I request the same file in an AIR for IOS app on the same Ipad I get a NetStream.Play.StreamNotFound Info event and no playback. OSMF Log pasted below.
Any ideas on what could be wrong here?
I must add that the same AIR app deployed to a Glalaxy Tab 10.1 (Android) plays back the HDS streams fine from "http://10.173.5.150/hds-vod/sample1_1500kbps.f4v.f4m"
Thx
- Abey
Tue Nov 8 2011 09:49:17 AM [DEBUG] [org.osmf.layout.LayoutRendererBase] ON EXIT FRAME: BEGIN
Tue Nov 8 2011 09:49:17 AM [DEBUG] [org.osmf.layout.LayoutRendererBase] VALIDATING LAYOUT
Tue Nov 8 2011 09:49:17 AM [INFO] [org.osmf.media.videoClasses.VideoSurface] switchRenderer. currentVideoRenderer = null; the new renderer = [object StageVideo]
Tue Nov 8 2011 09:49:17 AM [DEBUG] [org.osmf.layout.LayoutRendererBase] LAYOUT VALIDATED
Tue Nov 8 2011 09:49:17 AM [DEBUG] [org.osmf.layout.LayoutRendererBase] ON EXIT FRAME: END
Tue Nov 8 2011 09:49:17 AM [INFO] [org.osmf.net.NetStreamLoadTrait] NetStream.Pause.Notify
Tue Nov 8 2011 09:49:20 AM [INFO] [org.osmf.net.NetStreamLoadTrait] NetStream.Play.StreamNotFound
Tue Nov 8 2011 09:49:20 AM [INFO] [org.osmf.net.NetStreamLoadTrait] NetStream.Pause.Notify
Copy link to clipboard
Copied
Hi,
The HLS workflow is supposed to be working for HTML5 video tags, in Apple supported format m3u8. I doubt if this format is supported by AIR (on iOS). Can you please give a try of the same HDS workflow on AIR on iOS too ?
Copy link to clipboard
Copied
Thanks for the reply Nikhil.
I tried playing HDS on AIR on IOS and the OSMF logs indicate it's attempting to playback, but I dont see any video or hear any audio. Log below
- Abey
Wed Nov 9 2011 09:15:55 AM [DEBUG] [org.osmf.layout.LayoutRendererBase] ON EXIT FRAME: BEGIN
Wed Nov 9 2011 09:15:55 AM [DEBUG] [org.osmf.layout.LayoutRendererBase] VALIDATING LAYOUT
Wed Nov 9 2011 09:15:55 AM [INFO] [org.osmf.media.videoClasses.VideoSurface] switchRenderer. currentVideoRenderer = null; the new renderer = [object StageVideo]
Wed Nov 9 2011 09:15:55 AM [DEBUG] [org.osmf.layout.LayoutRendererBase] LAYOUT VALIDATED
Wed Nov 9 2011 09:15:55 AM [DEBUG] [org.osmf.layout.LayoutRendererBase] ON EXIT FRAME: END
Wed Nov 9 2011 09:15:55 AM [DEBUG] [org.osmf.net.httpstreaming.HTTPNetStream] NetStatus event:NetStream.Seek.Notify
Wed Nov 9 2011 09:15:55 AM [INFO] [org.osmf.net.NetStreamLoadTrait] NetStream.Seek.Notify
Wed Nov 9 2011 09:15:55 AM [DEBUG] [org.osmf.net.httpstreaming.HTTPNetStream] State = play
Wed Nov 9 2011 09:15:56 AM [DEBUG] [org.osmf.net.httpstreaming.HTTPNetStream] NetStatus event:NetStream.Play.Start
Wed Nov 9 2011 09:15:56 AM [INFO] [org.osmf.net.NetStreamLoadTrait] NetStream.Play.Start
Wed Nov 9 2011 09:15:56 AM [DEBUG] [org.osmf.net.httpstreaming.HTTPStreamSource] State = load
Wed Nov 9 2011 09:15:56 AM [DEBUG] [org.osmf.net.httpstreaming.HTTPStreamSource] Quality level switch completed. The current quality level [0] with stream [/sample1_1500kbps.f4v ].
Wed Nov 9 2011 09:15:56 AM [DEBUG] [org.osmf.net.httpstreaming.HTTPNetStream] onScriptData called with mode [immediate].
Wed Nov 9 2011 09:15:56 AM [DEBUG] [org.osmf.net.httpstreaming.HTTPNetStream] onMetaData invoked.
Wed Nov 9 2011 09:15:56 AM [DEBUG] [org.osmf.net.httpstreaming.f4f.HTTPStreamF4FIndexHandler] Bootstrap reports that content is complete. If this is a live stream, then the publisher stopped it.
Wed Nov 9 2011 09:15:56 AM [DEBUG] [org.osmf.net.httpstreaming.f4f.HTTPStreamF4FIndexHandler] Quality changed from -1 to 0.
Wed Nov 9 2011 09:15:56 AM [DEBUG] [org.osmf.net.httpstreaming.f4f.HTTPStreamF4FIndexHandler] The url for ( time=0, quality=0) = [url=http://10.173.5.150/hds-vod/sample1_1500kbps.f4vSeg1-Frag1, quality = -1, truncateAt = -1, retryAfter = -1, unpublishNotify = false]
Wed Nov 9 2011 09:15:56 AM [DEBUG] [org.osmf.net.httpstreaming.HTTPStreamDownloader] Loading (timeout=4000, retry=0):http://10.173.5.150/hds-vod/sample1_1500kbps.f4vSeg1-Frag1
Wed Nov 9 2011 09:15:56 AM [DEBUG] [org.osmf.net.httpstreaming.HTTPStreamSource] State = beginFragment
Wed Nov 9 2011 09:15:56 AM [DEBUG] [org.osmf.layout.LayoutRendererBase] ON EXIT FRAME: BEGIN
Wed Nov 9 2011 09:15:56 AM [DEBUG] [org.osmf.layout.LayoutRendererBase] VALIDATING LAYOUT
Wed Nov 9 2011 09:15:56 AM [DEBUG] [org.osmf.layout.LayoutRendererBase] LAYOUT VALIDATED
Wed Nov 9 2011 09:15:56 AM [DEBUG] [org.osmf.layout.LayoutRendererBase] ON EXIT FRAME: END
Wed Nov 9 2011 09:15:56 AM [DEBUG] [org.osmf.net.httpstreaming.HTTPStreamDownloader] Loaded 1134 bytes from 900004 bytes.
Wed Nov 9 2011 09:15:56 AM [DEBUG] [org.osmf.net.httpstreaming.HTTPNetStream] Detected begin fragment for stream [http://10.173.5.150/hds-vod/sample1_1500kbps.f4v].
Wed Nov 9 2011 09:15:56 AM [DEBUG] [org.osmf.net.httpstreaming.HTTPNetStream] Dropped frames=0.
Wed Nov 9 2011 09:15:56 AM [DEBUG] [org.osmf.net.httpstreaming.HTTPNetStream] Initialize the FLV Parser ( seekTime = -1, initialTime = -1, playForDuration = -1 ).
Wed Nov 9 2011 09:15:56 AM [DEBUG] [org.osmf.net.httpstreaming.HTTPNetStream] Script tags available (1) for processing.
Wed Nov 9 2011 09:15:56 AM [DEBUG] [org.osmf.net.httpstreaming.HTTPStreamSource] State = read
Wed Nov 9 2011 09:15:56 AM [DEBUG] [org.osmf.net.httpstreaming.HTTPStreamDownloader] Loading complete. It took 0.489 sec and 0 retries to download 900004 bytes.
Wed Nov 9 2011 09:15:56 AM [DEBUG] [org.osmf.net.httpstreaming.f4f.HTTPStreamF4FIndexHandler] Bootstrap box inside media stream found. Trying to update the bootstrap
Wed Nov 9 2011 09:15:57 AM [DEBUG] [org.osmf.net.httpstreaming.HTTPNetStream] Consume all queued script data tags ( use timestamp = 0 ).
Wed Nov 9 2011 09:15:57 AM [DEBUG] [org.osmf.net.httpstreaming.HTTPNetStream] Processed 102552 bytes ( buffer = 1.3 )
Wed Nov 9 2011 09:15:57 AM [DEBUG] [org.osmf.net.httpstreaming.HTTPNetStream] Processed 102400 bytes ( buffer = 2.136 )
Wed Nov 9 2011 09:15:57 AM [DEBUG] [org.osmf.net.httpstreaming.HTTPNetStream] Processed 102400 bytes ( buffer = 2.936 )
Wed Nov 9 2011 09:15:57 AM [DEBUG] [org.osmf.net.httpstreaming.HTTPNetStream] Processed 102400 bytes ( buffer = 3.204 )
Wed Nov 9 2011 09:15:57 AM [DEBUG] [org.osmf.net.httpstreaming.HTTPNetStream] Processed 102400 bytes ( buffer = 3.808 )
Wed Nov 9 2011 09:15:58 AM [DEBUG] [org.osmf.net.httpstreaming.HTTPNetStream] Processed 102400 bytes ( buffer = 4.318 )
Wed Nov 9 2011 09:15:58 AM [DEBUG] [org.osmf.net.httpstreaming.HTTPNetStream] NetStatus event:NetStream.Buffer.Full
Wed Nov 9 2011 09:15:58 AM [INFO] [org.osmf.net.NetStreamLoadTrait] NetStream.Buffer.Full
Wed Nov 9 2011 09:15:58 AM [DEBUG] [org.osmf.net.httpstreaming.HTTPNetStream] Processed 102400 bytes ( buffer = 4.876 )
Wed Nov 9 2011 09:15:58 AM [DEBUG] [org.osmf.net.httpstreaming.HTTPNetStream] Processed 102400 bytes ( buffer = 5.221 )
Wed Nov 9 2011 09:15:59 AM [DEBUG] [org.osmf.net.httpstreaming.HTTPStreamSource] State = endFragment
Copy link to clipboard
Copied
*Bump*
Is there any update on this?
Can someone from the FMS team pls. confirm. whether streaming H264 from FMS to an AIR for IOS app is supposed to work.
If so what protocol are we supposed to use ?
Thanks,
- Abey
Copy link to clipboard
Copied
Hi Abey
OSMF can't play HLS out of the box, only Adobe's HDS;
If you want to get HLS playing back in OSMF, extra code is needed.
Matthew Kaufman has a project started for this here: http://code.google.com/p/apple-http-osmf/
However it hasn't been ported to the latest version of OSMF yet, and from what I can tell still needs some dev.
This is really only necessary if you want to play HLS within flash, on non-Apple devices, or in some modified way.
Otherwise it's pretty easy to just use the native Apple players e.g. in a <video> tag.
Cheers
Nick
Copy link to clipboard
Copied
Thanks for the reply Nick. I will look into the project you referenced.
My higher level objective here is to be able to stream H264 video from FMS into an AIR for IOS app, preferably using OSMF. It doesnt have to be HLS.
Is there any format that you know of that is offically supposed to work in AIR for IOS?
- Abey
Copy link to clipboard
Copied
Yep, I would try Adobe's standard for HTTP adaptive streaming, which is called "HTTP Dynamic Streaming" or HDS
To be honest, in my experience it's a little more complex than HLS (e.g. I had problems even with the media packager)
but since it's Adobe you should get better support and workiness ootb .... should ....
It is implemented in OSMF, it seems to work quite well, and you can run that in AIR.
Copy link to clipboard
Copied
As I mentioned earlier on in the post, I have not been able to get HDS to work on IOS. The OSMF logs indicate that the stream is playing back, but I hear no audio or video.
The same app streams HDS fine in Android and Windows 7.
Have you been able to get HDS working successfully in AIR for IOS?
Copy link to clipboard
Copied
Nope I haven't tried yet.
You know what I just found, is jwplayer with in-flash HLS support:
http://developer.longtailvideo.com/player/branches/adaptive/test/provider.html