Nginx and X-Accel-Redirect to serve Quicktime streaming prepared movies

Hi,

Using Nginx + X-Accel_Redirect + Regular Quicktime movies works, but
the user needs to wait for the film to be fully downloaded to watch
it.

Therefore I decided to prepare my movies with the Fast-Start option,
but the movies load barely a few bytes and take ages to play.

Do I need to adjust the content headers or do I need to move to flash
for streaming and using x-accel-redirect?

Thomas wrote:

Hi,

Using Nginx + X-Accel_Redirect + Regular Quicktime movies works, but
the user needs to wait for the film to be fully downloaded to watch
it.

Therefore I decided to prepare my movies with the Fast-Start option,
but the movies load barely a few bytes and take ages to play.

Do I need to adjust the content headers or do I need to move to flash
for streaming and using x-accel-redirect?

I ended in this thread from google. Does anyone know how to stream
h.264/mp4 movies to Quicktime player using Nginx+X-Accel-Redirect? I’m
experiencing the same problem.

Does it have anything to do with the moov stuff not at the correct place
in the video?

Cheers,

Does it have anything to do with the moov stuff not at the correct place
in the video?

Cheers,

By mooving with mp4box I was able to get progressive download. But it
seems that when I go through X-Accel-Redirect I lose the real streaming
ability.

I have found this Rails plugin to easily use X-Accel-Redirect:

So it seems that I might be missing some headers in order to correctly
stream videos?

For http streaming to work with html5, the web server must be able to
server byte-range requests. I know Nginx can do it because I tried it.
Now the thing is to configure stuff correctly so it can do its job.

Here is a video I am trying to stream and enable seeking:
http://www.digiprof.tv/uploads/assets/94/original/tie_knot.mp4

This one doesn’t go through X-Accel-Redirect, and it was hinted using
mp4box. Any idea?

I can’t make it yet work with mp4 files (hmmm iphone)
Argh! So stupid! There is the mp4 module for that!

Ok new test with ogg/theora this time.

Here is my video:
http://www.digiprof.tv/streams/restricteds/9/houmos.ogv

FF3.6 users should see it appear in the html5 video player, but it’s not
the case.

Here is an example of an ogg/theora video being correctly served (by
apache): http://clips.vorwaerts-gmbh.de/big_buck_bunny.ogv

What am I missing? Is it a content type problem? They seem properly set
in my conf file. Other headers maybe? Why is nginx proposing to download
the file instead of streaming it?

Cheers,

Fernando P. wrote:

I can’t make it yet work with mp4 files (hmmm iphone)
Argh! So stupid! There is the mp4 module for that!
Hmm it seems the module is made for Flashplayer.

Anyway I tested youtube’s html5 feature (h264 videos) and we cannot
scrub the timeline outside of the downloaded zone, so I guess it’s a
limitation of Quicktime 7.6.6. Maybe it works with QuicktimeX and
iphones, but as I don’t have anything to test I can’t confirm.

Fernando P. wrote:

Ok new test with ogg/theora this time.

Here is my video:
http://www.digiprof.tv/streams/restricteds/9/houmos.ogv

It works! Sorry I don’t know what made it work, maybe a header problem
which was not getting updated due to some caching? Maybe I forgot to
restart nginx after adjusting its configuration? Anyway Nginx can stream
ogg/theora videos and let the users seek inside the video!

I can’t make it yet work with mp4 files (hmmm iphone), probably because
the video is not properly encoded for being streamed to the web. I’ll
dig into that tomorrow: moov, fast-start, etc… all painful stuff to
take care of.

Cheers,