Video Play Failed

Hi, I am working on getting a simple live stream to play on a modified simplevideoplayer channel. I have been able to successfully make basic modifications to the sample channel app, zip it and upload it. I can play the apple test stream fine (after a few tweaks - damn missing srt=“”) but I cannot get it to connect to my live stream. In the debug all it says is “play failed: an unexpected problem (not not sever timeout or HTTP error) has been detected. Closing video screen”. Using a basic HLS player app for my iPad, I can connect to the stream and it works fine. Only twist I have is that the url for the stream has a variable in it. …/index.m3u8?callsign=N12LI_WEST do I need to handle this differently? Ideas?

GRRRR! This is driving me nuts. The Apple stream pulls up fine on Roku. Both of the flow player streams work fine on the HLS player app on the ipad and work fine when I host them on my IIS server and pull them up on a Mac with Safari or iPad. Just does not seem to like the Roku.

You may benefit from adding an roSystemLog to your channel and monitoring for “http.error” to get more details on where it’s failing.

Getting closer. I debugged it to a 403 error, which let me to a user agent string issue. The server is set up for ie, safari, etc. to send flash and iPad, iPhone, etc. to send hls and chokes on the roku. Looks like I can use an ifhttpagent command o mimic the iPad ad make it work. Project for tomorrow.

Anyone have any useful documentation or examples for ifhttpagent ? I can’t find anything useful anywhere.

ifHttpAgent is documented multiple times in the component reference. If you’re just looking to add a user-agent header to the video screen, try something like:

screen..AddHeader("user-agent","Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3")

-JT

It is referenced all over, but there is no documentation on the meta-data. Turns out I had it right but was using videoclip. instead of video. Got that piece working, but it still did not fix my problem. Back to square one.

So, I have all be debugging code figured our as well as the user-agent, which tested fine so it is not the issue, but this one stream will still not play. All the test streams I point at play fine and one of the two I am trying to code for plays fine, just not the other.

On the problem stream, I do an http get on the server x.x.244.226 with the m3u8 playlist and I ger a return code of 200 (ok), it downloads the playlist and then does a call on the second server x.x.237.22 that has the .ts stream files on it and I get a 403 (denied).

On the one that works, I do an http get on the server x.x.244.226 with the m3u8 playlist and I ger a return code of 200 (ok), it downloads the playlist and then does a call on the second server x.x.237.132 that has the .ts stream files on it and I get a 200 (ok) and the stream plays.

They are both “supposed” to be configure the same and both streams play fine on my HLS test app.

Anything different on Roku I need to do because the play list and files are on two different servers? If not? It has to be a server configuration issue??? But why would it play find on the ipad, iphone, etc.

That “403 Denied” error is coming from your server. You need to investigate the server and find out why it is rejecting the HTTP request. Maybe it is configured to accept only certain User-Agents.

–Mark

Checked the user-agent evn though it is not configured for it and it did not make a difference. Starting to think there is some small protocol difference. Having the same result on my vlc player app on windows. Interestingly, vlc player won’t play the apple hls test stream either. Needs more time to debug and I have been distracted on other projects this week.