Search code examples
windowshttpstreamingdirectshowmultimedia

Why does flac http streaming not work?


I have simple http streaming application that takes GET URL request and returns HTTP "content-type" header and then requested file data. It runs on localhost http server.

Thus I can listen in player for (e.g.)

http://localhost:8080/music/metallica.mp3

It is played like a usual http stream in any player (VLC, MPlayer, WMP, Winamp).

However, why I try to stream FLAC in this way it doesn't work in MPlayer and WMP (I use content type "audio/flac").

As far as I understand the problem is with DShow filters (Graph Builder can't locate correct source filter and/or connect it to flac decoder).

Can't anyone give a hint on where shall I dig, before I start DShow filters debugging? :)

UPD:

I've found that setting exact stream size (thru content length) solving the problem. However, I would prefer not doing this. Any ideas?


Solution

  • Streaming from network resource is different from streaming from a file. A streaming protocol is assumed to be implemented between server and player host and Windows does not offer a great support for streaming client within DirectShow API out of the box: you need an additional filter which supports this kind of streaming.