Home » Microsoft TechnologiesRSS

Internet Explorer 8 and Internet Explorer 9 not playing Flash streaming media

I am building a Facebook Application (or IFrame Application).

 

Facebook load my application into the IFrame at runtime when the user wants to use my application.  My application allows end users to view their Facebook videos, upload videos and so on.  The end users videos are stored on the Facebook CDN (Content Delivery Network).

 

 

Currently this is working, in Chrome 8.0 and 9.0, Firefox 3 and Safari but not IE 8 or IE 9. I keep getting the error message in my flash media player inside the iframe inside facebook that says:

 

"We are unable to connect to the content you've requested. We apologize for the inconvenience"

 

When I examine IE 9 Debugger and look at the network traffic the caputres in there say:

 

Initiator: Flash

Method: Get

Result: 404

Type: Text/Html

 

Now when i create a standard html page with the flash player not inside of facebook but on my own server and run it again.  The video plays fine in IE.  So I'm presuming that IE is not liking the fact that my app is inside of the facebook domain that is doing a call out to the facebook cdn or indeed any cdn and is preventing this transfer from happening.

 

The question obviously is then is how do I go about getting around this problem so that I can offer customers my service on IE ...

 

I've uploaded several videos to facebook to test against they in turn convert them to MP4.  Here is one that you can see for yourself.

 

http://video.ak.fbcdn.net/cfs-ak-snc6/78749/825/107419042660481_61727.mp4

 

There is a crossdomain.xml policy file at the root:

 

http://video.ak.fbcdn.net/crossdomain.xml

 

So there are no problems with permissions.  What else could be the problem here as to why IE refuses to load the cdn videos from within my application that is inside the facebook domain?


Or better yet how do I fix this problem, or is this a bug in IE????

 

Thanks

Regards

Rob

 

 

5 Answers Found

 

Answer 1

"We are unable to connect to the content you've requested. We apologize for the inconvenience" is  message from the facebook cdn servers... which confirms the 404 response code.

You may like to try the FB developers forums...

In IE ensure you have set the default security zone settings... Tools>Internet Options, Security tab, click "Reset all zones to default"

and that you have not turned on InPrivate Filtering (content blocking) and are accepting third-party cookies and of coarse that one of your IE Addons is not also filtering content (test by running IE in noAddons mode).

Regards.

There was some mention about incompatible FB apps on the PBS newshour... I have not looked into this further, but you may like to search pbs.org to see if you can find further information.

Oh, also... Facebook have only recently added fbcdn.net to their domains... previously static.facebook.com was the primary cdn... In the public answers forum there are a few new questions about blocked FB content. I think these are related and may be just a dns issue, but probably a content blocking issue, although a 404 response indicates a dns issue.

No problems accessing

http://video.ak.fbcdn.net/cfs-ak-snc6/78749/825/107419042660481_61727.mp4

from my browsers. (InPrivate Filtering Off.... COM Addons disabled).

 

Answer 2

Hi Rob,

Thanks for your reply.

I followed your instructions verbatim in regards to ensuring my IE settings were setup properly, but alas no joy :-(

I also went looking for the PBS News Hour article you mentioned both on PBS and Google all I found was this article:

http://www.pbs.org/newshour/rundown/2010/12/delete-older-facebook-apps-or-risk-everyones-privacy.html

Not really relevant to this situation ... so if you know the proper link please let me know.

I'm yet to post a message on the facebook forums but will do after I've replied back to you.

I created another thread about this on the Adobe Strobe Media Player forums the site that provides the open source code for my flash player.

http://forums.adobe.com/message/3373034#3373034

It's pretty detailed with a picture etc, obviously I really want to get this problem sorted as IE is 57% of the browser market.

Like you say it could be a problem on Facebook's end with the changing of the static address to fbcdn address, although I'm puzzled as to why it works in Chrome, Firefox and Safari and not IE and how they don't return a 404 error like IE does ...

Could it be that IE is intercepting the Flash HTTP call and disallowing it because the fbcdn is not providing the correct header response with the new cross domain security measures that Microsoft have imposed in the IE browser as outlined in this blog by Rick Strahl:

http://www.west-wind.com/weblog/posts/279929.aspx

There is one part in the blog where Rick mentions that IE 8 is expecting a response header with the value:

XDomainRequestAllowed: 1

Could this be what IE is expecting from the fbcdn server when my flash player is requesting content from it?

> No problems accessing
> http://video.ak.fbcdn.net/cfs-ak-snc6/78749/825/107419042660481_61727.mp4
> from my browsers. (InPrivate Filtering Off.... COM Addons disabled).

Yes you can access the video directly in IE and the content is publicly available, but it's when my application (http://www.robsapp.com) that is inside of an IFrame housed in the facebook domain (http://apps.facebook.com/robsapp) is when all the problems start occurring.

Very frustrating problem, this is my third day on it, and still no luck :-(

Right now with all the of the information and observations I've made so far I'm leaning toward that it's an IE problem, I could be wrong but here are the facts so far:

1) The Strobe Media Player is well tested code running on an open source framework

2) fbcdn.net has a crossdomain.xml policy file in place allowing any client to access their data

3) Chrome, Firefox and Safari play the facebook media without any problems

4) I've change my IE security settings, restored them back to their defaults, turned off unnecessary addon's etc

 

 

Answer 3

Hi,

I am a bit confused... mp4 is an unexpected format for a Flash player (using object or embed tags)... the mime type is usually associated with WMP or the new HTML5 <video> tag...

In IE9 Beta you need the document to render in IE9 mode (document.documentMode==9) AND your page needs to be using the HTML5 DTD.

Observe the Document Mode that your FB page renders in... Facebook is probably in the "Include updated website lists from Microsoft" (Tools>Compatibility View Settings) and IE9 is forcing it to use IE8 or IE7 Emulation rendering, which will ignore the <video> tag and will fall back to the <object> and <embed> tag fallbacks.

see http://iecustomizer.com/MSMVP/HTML5/HTML5Tags.aspx

At the bottom of the page your will see the <video> tag listed... It uses a html5 video tag (which uses the native video player of the browser) with an <object> and <embed> fallbacks.... here is a html snippet of the source...

<td><p>&lt;video&gt; tag with empty src attribute</p><video class=style1 title=video src="" preload="" loop="" controls="controls" autoplay="" height="264" width="640">
<p>your browser does not support the video tag</p></video>
<p>Fallback test</p><video id=example_video_1 class=video-js preload="auto" controls="controls" height="264" width="640" poster="oceans-clip.png"><source src="http://video-js.zencoder.com/oceans-clip.mp4" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"' /><source src="http://video-js.zencoder.com/oceans-clip.webm" type='video/webm; codecs="vp8, vorbis"' /><source src="http://video-js.zencoder.com/oceans-clip.ogg" type='video/ogg; codecs="theora, vorbis"' /><!-- Flash Fallback. Use any flash video player here. Make sure to keep the vjs-flash-fallback class. -->
<object class=vjs-flash-fallback data="http://releases.flowplayer.org/swf/flowplayer-3.2.1.swf" width=640 height=264 type=application/x-shockwave-flash>
                                    
            <!-- Image Fallback. Typically the same as the poster image. -->
            <img src="oceans-clip.png" width="640" height="264" alt="Poster Image"
             title="No video playback capabilities." />
           </object></video></td>

 

In IE9 view my test page and use the Developer tool to toggle the Document Mode between 7,8 and 9 to see how the fallbacks work when then Document Mode is toggled.

As I said observe the Document Mode that your FB page loads in IE9... I suspect it will not be 9... go Tools>Compatibility View Settings and uncheck "Include updated website lists from Microsoft" and then reload your FB page... I expect that this time it will render in DocumentMode==9, honoring the HTML5 DTD, and (maybe) using the <video> tag....

In IE9, documentMode==9 elements with an empty scr value do not raise a request to retrieve the empty resource value... other browsers do not yet comply with the standards... (load my above test page in another 'standards' compliant browser).

Is it a bug? The FB api's are probably using userAgent sniffing to determine whether to use (inject with document.writes) either <video> or <object> or <embed> tags based on the UAS browser version. It may be incorrectly detecting the (new) IE9 userAgent value in the Request header. (use Developer Tool>Tools>change user Agent string to test this).

Do you have a publicly accessible link to a test harness page or you can give directions as I have a FB account. A link to the FB developer documentation would also assist.

 

Answer 4

Hi Rob,

The latest version of Flash v 10.1 reads MP4, as well as flv, fv4, rtmp streams, dvr, and several other streaming formats.

I examined yr page http://iecustomizer.com/MSMVP/HTML5/HTML5Tags.aspx and understand what it is yr saying.  However I don't think this is the problem merely because of the observations I have made.  The primary observation is the fact that the flash media player is loading happily.  It's just when it goes to retrieve the facebook video content that the error occurs.  Swapping out the video for other videos sources proves this point to, because they happily load and play fine.  Last night I uploaded to a another server I own an mp4 file:

http://www.pazooza.com/movies/snowball.mp4 and swapped it out with the src attribute in the SMP player and it plays the mp4 fine.

Interestingly i downloaded flowplayer from flowplayer.com and tried loading the facebook video and it too could not locate it.  I get a stream not found error.

If you go here and scroll down to the last thread you will see the swf code I have been using:

http://forums.adobe.com/thread/772152

An adobe developer has responded thinking it maybe a referrer problem?

The gotya as I mentioned at the above adobe thread is that I took the player stuff out and just used the html 5 video tag with the src set to: http://video.ak.fbcdn.net/cfs-ak-snc6/78749/825/107419042660481_61727.mp4

and it plays the video fine in Chrome, FF and IE 9 Standards mode!

This is very weird ... 

So could it still be a referrer problem now?  Or does the HTML 5 video tag I performed nullify that assumption?

Whats the link to your public facebook profile Rob and ill add you as a developer so you can test it yrself.

Alternatively you can create a facebook application yourself in 3 easy steps:

1) Load the fb developers app in your facebook profile (click this link):

http://www.facebook.com/developers

2) Click create to create a new application, enter your settings etc.  Select IFrame as the app type. It's probably better you upload your site to a public webserver if you have one, as doing the local host stuff can be a pain in the ____.  At the end of the day I'm using IIS with port 80 open and a dyn-dns.com address to forward traffic to my laptop to test debug etc (attach to IIS worker process and so on).  I found this to be the best approach for me.

3) Download SMP (http://sourceforge.net/adobe/smp/home/) or flowplayer if you like:

if using SMP do this:

a) In the extracted zip SMP file your downloaded go to the folder "for Flash Player 10.1"

copy StrobeMediaPlayback.html, StrobeMediaPlayback.swf and the lib folder to your visual studio dev site.

b) Upload the files to your public webserver if need be

c) Run your facebook app by going to: http://apps.facebook.com/<yourAppName>/StrobeMediaPlayback.html

You should see SMP load in your facebook app and the default video that comes shipped with the player load in all browsers including Chrome, FF, Safari and IE 8 and IE 9.

d) Open StrobeMediaPlayback.html and swap the src file in the parameters array to :

http://video.ak.fbcdn.net/cfs-ak-snc6/78963/62/114948235240895_53760.mp4

e) Run it again, and you will see that it won't play...

:-(

 

 

 

Answer 5

Hi Rob,

I've found what the problem is ... !

IE is adding the Request Referrer Url to the Request header.  FB in turn are examining this on their end and returning a 404 because they think its an illegal x domain request.  :-(

If you read this thread I posted on Adobe it gives more detail about it:

http://forums.adobe.com/thread/774573

What I'm now wondering is how I can fudge the Referrer Url to either remove it entirely or replace it with the parent domain of:

http://www.facebook.com/ or
http://apps.facebook.com

Is there some means within IE (probably not) using javascript or something to fudge the headers and have it not send the Referrer Url or change it somehow?

Cheers!

 
 
 

<< Previous      Next >>


Microsoft   |   Windows   |   Visual Studio   |   Follow us on Twitter