If “streaming” means “showing a flash video”, flv-streaming is not really streaming, but the usual file transfer when the player starts playing, even if the file is not fully downloaded for the client. Time search is implemented in the standard HTTP method with file upload offset - if you scroll the video halfway on the timeline and it is not already loaded, the current download (most often) is interrupted and restarts with a file offset of / 2 bytes.
So, you can be fine just using the plain old one readfile()and setting the HTTP type header headers appropriately header(). But, since you need to search, you need to parse the HTTP request, and instead readfile()use it fpassthru(), searching in the right place.
tl; dr. PHP Apache ( httpd ) .