0

Recently migrated a Centos server from Apache to lighttpd 1.4.35. Also migrated client OSX machines from Snow Leopard to Mavericks (with latest Chrome, Quicktime.)

Certain Quicktime movies of size > 40 MB that used to play instantly now consistently take minutes to begin playing (blue Quicktime "Q" appears, so for these plugin is loading but taking many minutes to work.)

The quicktime is embedded (via typical HTML embed tag) in a CGI page served with fastcgi.

  • Observed lag on a sandbox server with no other traffic.

  • Observed that downloading problem Quicktimes (rather than playing them) in browser is near-instantaneous.

  • strace reveals that lighttpd spends 70-90% of the lag time waiting (epoll_wait).

  • installed mod_h264_streaming v 2.2.7 on lighttpd. No effect.

  • tweaked lighttpd.conf IO preferences, including:

    server.network-backend = "linux-aio-sendfile"

    server.event-handler = "linux-sysepoll"

    (which I understand is redundant in lighttpd 1.4.35 but hey, I tried.) No effect.

  • determined it would be really strange for a massive lag on such modest Quicktimes to be lighttpd's fault

  • observed same lag in Safari, as well as on client VMWare IE & Chrome

  • When accessing a problem Quicktime by url (file:///...) in Safari, it plays instantly. Doing the same in Chrome gets the blue Q and never plays, even after an hour of waiting.

If the issue is some combination of codec/hinted streaming/other distinguishing feature of the problem Quicktimes, then 1) bizarre that the lag is so great and yet eventually resolves and 2) I have no control over that.

I'm hoping there is some Quicktime plugin update I'm missing, but I see no evidence of such a thing.

I am deeply confused. Any assistance will be appreciated.

  • Update Aug 18: Confirmed that Apache serves the problem Quicktimes near-instantly. The problem is indeed something about my lighttpd configuration.
AteYourLembas
  • 303
  • 3
  • 12

1 Answers1

0

Issue out to be a property of the problem QuickTimes--probably the codec.

Our solution is for lighttpd to serve them statically, e.g. add the following to lighttpd.conf:

alias.url = (
     "/custommedia" => "/local/path/to/media"
) 

And then request the needed Quicktime via URL of the form:

http://our.local.host/custommedia/samplequicktime.mov

It works.

AteYourLembas
  • 303
  • 3
  • 12