Voor een recent project maak ik gebruik van FLV bestanden die worden geladen vanaf Microsoft Internet Information Server (IIS).Tijdens het ontwikkelen kwam ik achter dat de video’s niet lekker streamen en dat ze halverwege het spelen werden afgebroken (met name op tragere verbindingen). Dit gedrag herkende ik van Apache webserver met ingeschakelde GZIP-compressie. (Zie: Gouden tip voor FLV streaming via Apache).
Ook IIS maakt gebruik van HTTP-compressie, dit heet bij Microsoft “Dynamic Compression”. Als Dynamic Compression is ingeschakeld op IIS stuurt de webserver geen “Content-Length” HTTP-header mee. Flash gebruikt normaal gesproken deze HTTP-header om te bepalen of de video compleet geladen is. Daarnaast kan de data pas worden gebruikt als deze in zijn geheel binnen is.
Dit probleem is op te lossen om specifiek voor FLV bestanden Dynamic Compression uit te zetten. Op deze (punt 5) site kwam ik erachter dat je dit doet door in de applicationHost.config onder de httpCompression sectie de default config:
<staticTypes>
<add mimeType=”*/*” enabled=”true” />
</staticTypes>
Te veranderen in:
<staticTypes>
<add mimeType=”video/x-flv” enabled=”false” />
<add mimeType=”*/*” enabled=”true” />
</staticTypes>
Ik hoop dat deze post weer wat hoofdbrekers voorkomt :).