I'm using the JW FLV Player on my blog to embed FLV videos from other sites. Assuming I have the full http path to the FLV file, is it then possible to stream the file so that my readers can skip ahead in the video without having to wait for it to pre-load?
I've read the article on the site about HTTP Video streaming using the XMoov-PHP script (http://www.jeroenwijering.com/?item=HTTP_Video_Streaming), but it only offers information about streaming video files that are hosted locally on your own server, where as I need to stream files that are located on an external server.
You can only stream the files from an external server, if that external server is a streaming server, either "fake" with scripts, lightTPD, or RTMP (FMS, Wowza, or Red5).
Theoretically, Server Y could request the video file from Server X and then stream it to the client.
There would be double traffic generated. From Server X to Server Y and then from Server Y to the client.
If Server X was only HTTP, you could use the HTTP v1.1 content range headers to seek into the file and request a portion of the file:bc.. Content-Range: bytes 21010-47021/47022
Ok, but the question is how do I do that? If I'm embedding an FLV file from a server that supports steaming, i.e. it's a site that has streaming in it (such as YouTube), how do I access that site's streaming functions and duplicate them on the JW player on my site?
The thing is that I can just use their embed code and embed their player and then I will have streaming enabled, but I want to embed the flv movie via JW player, so how do I enable streaming that way?
YouTube is the only major video site that has an API. If you use the JW FLV Media Player to play YouTube videos through the YouTube API, the scrubbing might work (I haven't tried it recently). For the other sites, you have to use their player or figure out how it works to scrub. Most of them don't want people leeching their content and generating traffic costs for which they receive no revenue.
If you already have LightTPD for streaming the videos, then don't use the xmoov script at all.
Just hand the video off to LightTPD from your PHP script on Apache using the *X-LIGHTTPD-send-file* header, like this:bc.. header("X-LIGHTTPD-send-file: /path/to/video/files/" . $file);
Adjust the path to your videos. Use a 302 Redirect if LightTPD is on a different IP address.
(Works better using nginx with the flv and h264 streaming modules and FastCGI for the PHP.)
If you only want to access an external file, that is just some server configuration.
The purpose of the script posted above is to do authentication, logging, stats accounting, etc, on the FastCGI server, then hand the video streaming back to nginx or LightTPD using the FLV and/or H.264 streaming modules, which also provide seeking into the video file so the player's scrubber can seek ahead of the download in a large video file.
Depending on how "external" you want to go, you can specify an external location on a Network File System (NFS) using an X-Sendfile header or you can specify a an external host by IP address using mod_proxy (mod_magnet in v1.5).
Bear in mind that the stream will pass through the origin server (doubling the traffic) unless you use a redirect to the external server, then you lose control of the stream though.
i Know a way i use to love doing this over and over until they changed it the site was clipnabber.com and they allowed you to put the link of youtube into it press get video button and in a few seconds get the full real .flv url of the video they found a cheaper way of doing it now and it sucks