Problem:
H264/Speex RTMP stream from Flash Media Server doesn't display video. Audio plays fine.
Conditions:
Adobe Air 3.0
iOS device (iPad 2, iOS4.3)
App settings:
<renderMode>direct</renderMode>
Flash Builder 4.5.1 compiler settings:
-swf-version=13
-target-player=11.0.0
I have tried using both stageVideo and the regular Video object to render an H264 signal streaming from Flash Media Server over rtmp, but with no luck. I can hear the audio, but the video is never rendered.
I CAN see H263 video when streamed over RTMP using this setup (with just the Video object).
I can also stream a locally stored mp4 (H264/AAC) file over rtmp from the iOS device and play it locally just fine (using a stageVideo object).
I have attempted this with both stageVideo (which works fine when streaming an mp4 file from the iOS device) and with the regular Video object (the regular Video object handles H263 just fine streaming down from FMS over rtmp). I've also played around with backgroundAlpha = "0" for this case, all with no luck.
I've followed all the online instructions and tutorials to get this working for the past week, but have not had any luck. I'm happy to post more code, but this approach is fairly straight forward and has been described multiple times around these forums and in the adobe blog posts. It goes like this:
- instantiate NetConnection (_nc) to FMS and wait for successful connection:
_ns = new NetConnection();
_nc.connect(serverAddress);
- instantiate NetStream (_ns) and connect using NetConnection:
_ns = new NetStream(_nc);
- setup listener for StageVideoAvailabilityEvent; if stageVideo becomes available, attach _ns:
_stageVideo = stage.stageVideos[0];
_stageVideo = _stageVideo.attachNetStream(_ns);
- if stageVideo ISN'T available, fall back to Video object:
_video = new Video();
_video.attachNetStream(_ns);
stage.addChild(_video);
- play netStream app:
_ns.play(appName);
My renderMode is set correctly ("direct"), and from what I can tell, this isn't a backgroundAlpha issue.
I have seen this problem described elsewhere on this forums and on the net.
I'd like to know from Adobe: are there any compatibility issues with this approach? There doesn't seem to be any type of compatibility chart listing which video codecs and transport protocols are available on the different mobile platforms. Since mobile deployment is so heaviliy fragmented, a descriptive chart or table like this would be helpful for those of us developing -- at least for the main mobile platforms predominantly in use.
Other forum posts similar to this problem:
http://forums.adobe.com/message/3981541#3981541
http://forums.adobe.com/message/3954578#3954578
Thanks in advance!