0
votes

This problem seems related to our server configuration.

I have a video that I want to play with HTML5 video on a website. I use video.js for playback. The problem is: the video works on my localhost, but it does not work on the production server. I tried two different servers and they work flawlessly.

I Really need it to work on this specific server (it has a load balancer and more punch to handle the load we are expecting)

I am stumped; I don't know why it does not work on this server, I expect it to be an apache config issue because it works on the other servers.

I looked at the response headers, they are identical (see below). The movie encoding should be allright as well as they are playing on mobile devices on the test servers.

TEST SERVER (works): HTTP/1.1 200 OK Date: Tue, 03 Sep 2013 08:16:29 GMT Server: Apache Last-Modified: Mon, 26 Aug 2013 09:05:00 GMT ETag: "baa32-4ceeb0-4e4d60d0e0700" Accept-Ranges: bytes Content-Length: 5041840 Cache-Control: public Content-Type: video/mp4

PRODUCTION SERVER (does not work): HTTP/1.1 200 OK Date: Tue, 03 Sep 2013 08:28:07 GMT Server: Apache Last-Modified: Mon, 02 Sep 2013 12:18:39 GMT ETag: "956c0-4ceeb0-4e565927d85c0" Accept-Ranges: bytes Content-Length: 5041840 Cache-Control: public Content-Type: video/mp4

Can anyone give any leads what might be happening here? Any leads are greatly appreciated.

1

1 Answers

0
votes

I found the cause of the problem.

It was related to Request-Range headers. (See http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35.2 for more information about Request-Range headers)

We had Request-Range headers disabled for security reasons. It turns out that this breaks video playing functionality for IOS devices (desktop and android browsers still worked - tested Firefox and Chrome as well as Android - Chrome)

Allowing Request-Range solved the issue.