My first task at my new job was getting the live video streaming to work on iOS devices in time for graduation.[foot]Our setup was
Flash Media Server with the
Flash Media Live Encoder using the
Strobe Media Player.[/foot] While troubleshooting the issue, I ran into a couple of "gotchas" that I thought I might share to help others. I started with
this walkthrough of the process, but the general
developer's guide was helpful, too.
- Crossdomain.xml: Our production server and streaming server are distinct, so we needed a valid
crossdomain.xml
to allow the Strobe Media Player to access the stream.[foot]Item 4 under "Troubleshoot live streaming (HTTP)"[/foot] This appears to be either an issue just with HTTP streaming and not RTMP or dependent on the player. It was certainly the case for us using HTTP streaming with the Strobe Media Player. This issue really sidelined the troubleshooting process as it killed any kind of outside access (accessing the stream through OSMF's Flash Media Playback Setup player returned an error) and, since I didn't have write access to the streaming server, I had to connect with the server administrator whenever I wanted to change something, a hassle that is not conducive to troubleshooting.
- General Server Fickleness: It seemed like the server would get hung up every now and then. Symptoms here could be showing the last few seconds of the previous broadcast or a stuck, scrambled screen. Appending
adbe-record-mode=record
[foot]So the entire stream field would be: livestream?adbe-live-event=liveevent&adbe-record-mode=record
.[/foot] seemed to fix this. My theory is that somehow the append-mode stream would get corrupted and the cache of stream files would need to be cleared in order to successfully continue a stream. I think this was the first issue I ran into which killed a lot of my initial efforts until the server administrator restarted the server, clearing the files. I think a solution similar to adbe-record-mode=record
would be to physically delete the files from the server, but that mode accomplishes the same thing without server access.
Most other issues are covered in the tutorial linked at the beginning and in the developer documents. The
crossdomain.xml
issue is certainly found in the developer's guide, but the server instability[foot]If that's what it is. I still don't know
why it happens, just how to fix it.[/foot] and subsequent
adbe-record-mode=record
are not really documented and only found in obscure corners of support forums. And, then, only if you know what you're looking for.