How to prevent downloading and leeching

This thread may refer to an older version of JW Player! Check our articles for the most up-to-date information.
This Q&A thread was imported from our previous system and could apply to an older product.
  • the Plugin fot the Flash MP3 Player
    I configured playlists:
    $playlist = array(
    '1' => 'http://mydomain.com/singer/playlist.m3u',
    '2' => 'list1.m3u',
    '3' => 'list2.m3u',
    '4' => 'list3.m3u'
    // And so on....
    );
    Instead of the playlist.xml I did insert "em3uplugin.php?m3u=1"
    but how the script creates a XML Playlist with the M3U file.!!!
    **
    when i change playlist.xml to **em3uplugin.php?m3u=1** into the action script , the mp3player calls the php script (em3upulgin.php )
    is the list1.m3u the same playlist.xml ! do we change *.xml to m3u !
    this pulgin was nor clear !! can sombody tell me how that does work step by step !

  • If you would please post links to your html page and to em3uplugin.php it would be a lot easier to help you.

    To answer your questions:

    You enter a path or URL to your existing m3u playlists in the $playlist array. Test the URL in your browser ( copy/paste ) to make sure that it is correct.

    You change "playlist.xml" to "em3uplugin.php?m3u=1" so your flashvars line would look like this:

    flashvars:"file=http://my.domain.com/path-to-file/em3uplugin.php?m3u=1&...the rest of your flashvars.

    Again, test the URL to the em3uplugin.php by putting it into your browser ( copy/paste ) and see if a valid XSPF playlist is returned. It's always best to copy/paste the URLs because then any typos, etc., will be apparent when it doesn't work. Of course, always substitute your actual domain name and the actual path-to-the-file for "my.domain.com" and "path-to-file".

    If you post links, I can check your files and give you a more detailed answer.

    Up Down 0 rated
  • but remember that you cant use sec download + flv streaming at the moment... (some small bug, its probably fixed if you read this.)
    (b)

    Up Down 0 rated
  • Hi all! I know some of you have been waiting for me.

    All has gone quite well during the last weeks.

    I've finished my player... And I'm quite sure you're very eager to try it. Therefor I've put a demo online.

    Have fun with it. If you somehow manage to download one (or both :-) ) of the sample mp3's, let me know here...

    http://www.concertival.be/tst/secureplayer

    Up Down 0 rated
  • HA! No cookies for you.

    05/04/07 09:16:55 192.168.0.1 Guest 0000400505 Requested: SSL://storage.concertival.be:443
    05/04/07 09:16:56 192.168.0.1 Guest 0000400503 Requested: http://storage.concertival.be/play/e40587a6cff8c7d7c8fde9669b861410.mp3
    05/04/07 09:17:11 192.168.0.1 Guest 0000400505 Traffic 6203 1283 1047 6164 16s
    05/04/07 09:17:31 192.168.0.1 Guest 0000400503 Traffic 4142756 364 297 4142750 42s

    05/04/07 09:21:51 192.168.0.1 Guest 0000400605 Requested: SSL://storage.concertival.be:443
    05/04/07 09:21:52 192.168.0.1 Guest 0000400606 Requested: http://storage.concertival.be/play/154fe9c74f03c453592a9cb1e0595dad.mp3
    05/04/07 09:22:07 192.168.0.1 Guest 0000400605 Traffic 659 996 760 620 16s
    05/04/07 09:22:25 192.168.0.1 Guest 0000400606 Traffic 3876350 364 297 3876344 33s

    Volume in drive D is XYZ_D_4_01
    Volume Serial Number is NNNN-NNNN

    Directory of D:\Concertival

    05/04/07 09:33a <DIR> .
    05/04/07 09:33a <DIR> ..
    05/04/07 09:22a 3,876,029 154fe9c74f03c453592a9cb1e0595dad[1].mp3
    05/04/07 09:33a 0 dir.txt
    05/04/07 09:17a 4,142,435 e40587a6cff8c7d7c8fde9669b861410[1].mp3
    5 File(s) 8,018,464 bytes
    14,313,824,256 bytes free

    Up Down 0 rated
  • And where can I download that file?
    http://storage.concertival.be/play/e40587a6cff8c7d7c8fde9669b861410.mp3
    Try to download it, it won't work.

    Up Down 0 rated
  • Is in Internet Explorer cache.
    Look at directory listing.
    Can I email the files back to you?

    Up Down 0 rated
  • I can't find it there :S?
    IE only caches : none.jpg,ufo.js and mp3player.swf ?

    Up Down 0 rated
  • I have 2 .mp3 files in Internet Explorer cache.

    Up Down 0 rated
  • Ehm,
    did you clean your cache before you tested it?

    Up Down 0 rated
  • @FreakyHase

    You should stream your files with this php streamer so they don't end up in his cache. Or if you are using another streamer, at least send these headers. They will prevent ALL caching.

    <?php

    $file = "/music/" . $_GET["file"];

    $fh = fopen($file,"rb");

    while (!feof($fh))
    {
    header("Cache-Control: no-store, must-revalidate");
    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
    header("Content-Type: audio/mpeg");
    header('Content-Length: ' . filesize($file));
    print(fread($fh, filesize($file)));
    }

    fclose($fh);

    ?>

    Using this streamer EVERY file gets sent with the "no-store". I have tested it extensively and never found a file in any cache.

    Up Down 0 rated
  • I deleted cache. Those are yours mp3. Want me email to you for check?

    Put more song. I can catch too.

    Up Down 0 rated
  • Hey!

    I didn't made this!
    Kiwi did.

    Up Down 0 rated
  • FreakyHase - So sorry I mixup.

    Mr. Kiwi - Please read to FreakyHase by my post.

    Up Down 0 rated
  • BJ, can you check again?

    - I did some modifications to the file headers.
    - I did a test in both IE and FF, no files are stored in cache here.

    Can you do your test again, and if you still manage to retrieve the files here, could you tell me which browser you use to do the test.

    Up Down 0 rated
  • Mr. Kiwi

    Surely I find in my cache yur musics.


    Directory of D:\Concertival

    05/05/07 08:48a <DIR> .
    05/05/07 08:48a <DIR> ..
    05/05/07 08:38a 3,876,029 111bef75547c725a99af57da3fe98c7e[1].mp3
    05/05/07 08:04a 3,876,029 990e25dcb3534a00a85230bfd8581a65[1].mp3
    05/05/07 08:43a 4,142,435 cd0ea89fad6007f0355f33eb33628991[1].mp3
    05/05/07 08:14a 4,142,435 cd919832e16fa473e04774bf1b5b0252[1].mp3
    05/05/07 07:29a 4,142,435 cdb597f5c91c2b846bb9218b521288d7[1].mp3
    7 File(s) 20,179,363 bytes
    14,285,475,840 bytes free

    Is possible with Micosoft Internet 6.0.2800.1106

    Surely you need more details then I can make.

    Up Down 0 rated
  • @Kiwi - good work! This is something to do with amfphp?
    BTW, do you happen to live in Ak, Nz?

    Up Down 0 rated
  • It's impossible. Firebug, a development tool for firefox gives you all the links that have been streamed. Just click Net->All scroll down, and it shows you the direct url to whatever you're listening to. wget that, and you've got an exact copy of whatever is being streamed. Even if wget isn't an option - you check for a session cookie or something - I can still copy and paste the link directly into the browser, and get the mp3. After it's download I can just rename it.

    You just can't win. No matter what the file name looks like.

    For the record http://www.concertival.be/tst/secureplayer does not even let you play the music via the swf.

    Up Down 0 rated
  • Erm,

    If you use firebug, which I also do, you will see the direct links to the mp3's. But if you try to download them, you will get a "unauthorized download error".

    And even with the session cookie, you won't be able to set a song.

    Were you actually able to get the song?


    Patrick,

    Yes, i'm using amfphp do do the communication with the server. And no, i do not live in NZ. I'm a .be :)



    BJ,

    I really would like to have some details. Are you doing this without any special plugins? IE doesnt cache a singe audio file over here.

    Up Down 0 rated
  • So, BJ, can you also cache the music at virb.com and purevolume.com?

    Up Down 0 rated
  • Hello Everybody
    First i'de like to say thx to JeroenW for the player ...
    Here is a very simple way to stop downloading your song mp3 from your server...it's a simple way to use :
    you can play the song and run any prog ( like "download manager" to detect the mp3 location ) and see what happening here :

    http://www.rifway.com/JeroenW/norsk/player.html

    everybody will understand where is playlist and the file location of the song ..; but there is some tricks to use & you cannot download the song manualy even if you run The download Manager.

    Less you can do is to do this way for the playlist ....
    Hope it helpful

    :)


    there is of course a way to download it, but it's not just simple .

    Up Down 0 rated
  • Norsk,
    here is your mp3 : http://www.rifway.com/choukri/%A0imetl%A02%A0id=2
    Download it, rename it to blabla.mp3 and you can listen the song.
    Kiwi, i still didn't get the link to your real mp3

    Up Down 0 rated
  • @Norsk - from my IE cache: imetlaa.mp3 5.912KB 06-05.2007 15:22 (renamed from imetl 2 id=2)

    Up Down 0 rated
  • Hello Mr. kiwi

    OK i give you some informtions

    No special setup Windows and Internet Explorer.

    purevolume music in my cache 96kilobit - medium quality so-so

    this site virb I can find no music seems only video no? look look look no music is suppose be music here?

    OK is one artist Feist with music byt plays myspace. Yes in cache (of course) but gone when end so i catch fast = good trick!!

    OH almost i forget (so dummie sometime) videos in cache too but BIG size!

    my friens says better way is mirror drive for cache no erase. Then every file on mirror.

    Up Down 0 rated
  • @Kiwi ... very impressive ... what else can I say? Can you give us the code, or point us in the right direction in how to achieve the same results?

    Up Down 0 rated
  • ok mr Kiwi

    Now we knom virb for music file to get. This way load player then music in cache. Must save before song end.

    http://virb.com//_swf/virbPlayer.swf?skin=white&pageId=52633

    change pageid for artist

    I show you some.

    Silversun=52633
    Feist=54492
    Lily allen=3361

    I think you can know this..

    Up Down 0 rated
  • I tried to do this:

    my call to the flash player was actually a call to a php script that wraps the flash player itself and uses a header call to push the correct mime type to the browser. If I did this:

    flashplayer.php?moviefileparam=somemovie.flv in my URL bar, it worked fine, but this is not what I want to do. What I want to do is pass a uid to the php script, then have the php script adjust the query string before invoking the actual player with readfile(). I tried EVERY possible way to adjust the query string that I could think of, but nothing worked. The flashplayer bailed everytime.

    So my question becomes, how does the flash player parse the query string? Doesn't it just read the GET vars from the web server like everything else? If so, then my attempt to rewrite the GET on the fly with php should work, but alas it does not.

    If I can just figure out how the flash player reads the query string for params, I can obfuscate very easily. I could even go so far as to have another php wrapper to dispatch flv's and deny access to the flv directory altogether.

    Any thoughts?

    Up Down 0 rated
  • Kiwi has teased us nicely with his method. I'd like to know how he did it, but what would put me off using it is the significant delay it introduces before an audio track is delivered.

    Up Down 0 rated
  • Hi,

    I made this one :
    http://www.rapmaster.nl/fl/mp3player.php
    Can someone find the link to the mp3 or can somebody download the file?

    Up Down 0 rated
  • sid=05351c19fa1799429772751a4ea5b337 (but havent found the file yet)

    Up Down 0 rated
  • bc.. Hi,

    I made this one :
    http://www.rapmaster.nl/fl/mp3player.php
    Can someone find the link to the mp3 or can somebody download the file?


    I picked up no other file other then

    http://www.rapmaster.nl/fl/mp3player.swf
    http://www.rapmaster.nl/fl/1.php

    Up Down 0 rated
  • Hi,
    now I have also a Generator for pls Playlist created.
    [url=http://www.pa-s.de/php/codeschnipsel-PLS-Plugin-for-Flash-MP3-Player-50.php]click here[/url].
    Like my Plugin for m3u Files.
    But at the moment only for Playlists, not for streaming (sorry).

    regards Patrick

    Up Down 0 rated
  • so... Has Freakyhase figured it out?

    Up Down 0 rated
  • Warning...NOOB alert...

    Can i ask how you are only passing an ID variable and not the name? What does the lookup?

    s1.addVariable("id","1")

    Up Down 0 rated
  • @spiceman - the file does seem hidden to my plain "browser hacking" -
    remains to be seen if regular streamrippers cant get at it after all?

    if you look in your cache (maybe emty first) theres a file called "1"
    it contains the sid i posted a little earlier...

    Up Down 0 rated
  • @spiceman - could be a "red herring" ofcourse...

    Up Down 0 rated
  • hmmm... well.. i will wait and see then.... cuz i am not the keenest to try and hack...

    Is there a thread i can review about just passing the id? which i assume is used to call a database with the fullpath... etc...

    Up Down 0 rated
  • If somebody can get access to them through a flash player, they can download them. I know how to download mp3's from artists sites, MySpace, PureVolume, etc when they don't want you to. It doesn't mean that I do it or that people should do it, but it's just impossible to protect it if the community is open to them, and if people are just that desperate, you can just use audacity or another audio capture program to record what's coming out of your speakers.

    A simple Firefox plug-in called firebug allows me to find just about anything out that's going on in the background of a web page (what's being downloaded to my cache, where it's coming from, etc...)

    Just think about it...

    Up Down 0 rated
  • @FreakyHase What have you done? Can you get this working with a playlist? Have you altered the player (like kiwi did)?

    Up Down 0 rated
  • @FreakyHase - ok I decompiled the player and saw the scs function. I can grab the mp3 file (with the session id), but only for a brief time while the player is downloading it. This is a good system (a bit similar to what I do in php, where every download url is time limited), but I don't see how your system will work with an xml playlist.

    Up Down 0 rated
  • @James - we know the theory, and I'm sure we all have firebug. Try Kiwi's player - he uses amfphp to communicate with the server.

    Up Down 0 rated
  • I think the whole site/server is down...

    Up Down 0 rated
  • Hi,

    @ Patrick, I'm working on a playlist :)
    And the site is up now

    Up Down 0 rated
  • And Patrick, how did you find the scs function?

    Up Down 0 rated
  • FreakyHase ... are we allowed to get the FLA or PHP to implement? Not sure if this thread is ultimately supposed to produce something that everyone can use?

    Hopefully that is the case... while you at it...pls tell how you did the ID call and not the name...

    Up Down 0 rated
  • @ Will, the link is working here?
    Try to open the site with a proxy?

    @spiceman, when I finished all my work(with playlist) I think I will share it with everyone.

    Up Down 0 rated
  • @FreakyHase,

    OK, finally got connected through a proxy. Your player loaded up and played a short riff.

    Now, there's this thing in my cache named "openmp3rm[1].php" 47,024 bytes with an ID3v2 of "homeland". Sending it off to WinAmp, it sounds like the same riff that your player played. how did that come about?

    Did you ever implement sending the "no-store" headers with every file, like I suggested above?

    No (b)(b)(b) for you yet!

    Up Down 0 rated
  • @FreakyHase I decompiled the swf, and had a look at the initial action script.

    Up Down 0 rated
  • @Will,
    Yes, there are no cache headers in my script :
    header('Cache-Control: no-cache');
    header('Cache-Control: no-store');
    header('Pragma: no-cache');
    header('Content-Type: audio/x-mp3');
    header('Content-Length: ' . filesize($file));

    But what browser do you use, whick version etc?
    My IE don't cache the song.

    Up Down 0 rated
  • @FreakyHase,

    I'm using Internet Explorer 6.

    Are you sending those headers before EVERY song?

    Previously, I posted this "stream-nostore.php" script. I tested it on many systems & browsers and it NEVER cached the media.

    bc.. <?php

    $file = "/music/" . $_GET["file"];

    $fh = fopen($file,"rb");

    while (!feof($fh))
    {
    header("Cache-Control: no-store, must-revalidate");
    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
    header("Content-Type: audio/mpeg");
    header('Content-Length: ' . filesize($file));
    print(fread($fh, filesize($file)));
    }

    fclose($fh);

    ?>



    Maybe you need to add to your headers?

    Specifically: "must-revalidate"
    bc.. header("Cache-Control: no-store, must-revalidate");



    and: this whole header
    bc.. header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");



    I think you can forget about these two headers. In my testing, they had NO effect.
    bc.. header('Cache-Control: no-cache');
    header('Pragma: no-cache');


    Up Down 0 rated
  • @ Will,
    Oke thnx! I changed it.
    Can you try it again?

    Up Down 0 rated
  • @FreakyHase,

    I still get your song in my cache.

    Are you sure that you are sending those headers before each song, like I illustrated in the "stream-nostore.php" code above?

    I'm going to do some more testng with a program that shows your headers. I'll let you know what I find out.

    Up Down 0 rated
  • Hello,
    I created a plugin for stopping caching the MP3 Files.
    [url=http://www.pa-s.de/php/codeschnipsel-MP3-NO-CACHING-PLUGIN--51.php]click here[/url]

    I didnt get any Cache of the MP3 File with [url=about:cache?device=disk]about:cache?device=disk[/url].

    Regards from Germany :d

    Up Down 0 rated
  • And in about:cache?device=memory ?

    Up Down 0 rated
  • Anyone test out Patrick's solution?

    Up Down 0 rated
  • Patrick - Not sure I understand....

    Plugin to stop the caching of MP3 files seems like agreat tool. Do we insert YOUR URL for the PLUGIN in your Playlist:
    http://domain.tld/cachingplugin.php?getpas=http://domain.tld/track.mp3
    Do we redirect to your site? OR

    Do we make the plugin, add it to our own host server, then direct to it on our own site? (cachingplugin.php)
    http://domain.tld/cachingplugin.php?getpas=http://domain.tld/lied.mp3

    domain.tld = we subsitute our own site?????

    Thanks / Brewer

    Up Down 0 rated
  • Hello,
    now I have updated the complete Code.
    Now it stop caching the playlist and the mp3 file.
    [url=http://www.pa-s.de/php/codeschnipsel-MP3-NO-CACHING-PLUGIN--51.php]click here[/url]

    1. You create a php file named cachingplugin.php with the code
    2. You rename playlist.xml to playlist.php
    3. You modify playlist.php:
    - You insert at the beginning of the XML-File the PHP-Header
    - You modify the location of the MP3 Files:
    - mp3/file.mp3 > cachingplugin.php?getpas=mp3/file.mp3
    4. You insert the mod_rewrite Code OR
    You modify your HTML-Code to set the new playlist File.

    regards Patrick
    (sry for my bad school english)

    Up Down 0 rated
  • Hey,

    This is a long painful forum to read!

    Anyway, I was hoping to figure out a way of doing this so I could intergrate this with Ubercart/Drupal for a budget online MP3 shop. So the issues are:

    1. Stop direct downloads:
    - Put the MP3s outside the web root and stream them with a PHP file that sends no cache headers. You can also check in here to make sure they have a valid PHP session so posting links directly to you PHP script won't work. Thats 95% of the leachers taken by removing direct URLs and remopving cacheing.

    Still if they can figure out where the script is and what session vars to pass they can get the files so not fool proof.

    2a. I was just going to truncate the files to 30 seconds with the PHP script, but still have to lookup how to do this, but should be a fool proof method and give them the whole file if they have are logged in and have an order ID associated with their account.

    2b. I might be possible to wrap the MP3 in a swf file in PHP using the Ming extention with something like this:
    http://de3.php.net/manual/en/function.swfmovie.streammp3.php

    Has anyone tired to implement ether of these two alternatives? Whatever I do I'll post back here wiht my results.


    3. Is it possible for the Flash player to only request a 30 second chunk of the file and no more?

    Up Down 0 rated
  • Keep the files outside the root, and serve them up with php. It's easy to send only 30 seconds if the user isn't logged in or whatever - just use a different content-length in the header. You can create urls that time out, by including some extra info as part of the url of the mp3. You can also check this doesn't get tampered with by md5ing the extra info & sending the result along in the url as well.

    If you were selling files, you might also consider sending the uid with the url, so only that logged in user can use that particular url.

    Ubercart looks promising, but I haven't downloaded it and mucked around with it. Is it good for selling files? I thought it had more emphasis on selling physical goods.

    Up Down 0 rated
  • i can play a wma file ??

    i have all files in wma and not in mp3

    Up Down 0 rated
  • patrick

    can you say more about the content-length and serving up 30 second mp3 files to anonymous users. i'm having a hard time following that.. anyway you can post some code with the md5 to show me what you're talking about.

    i'm pretty good with php just not file downloads and having a hard time wrapping my head around this.

    Up Down 0 rated
  • sorry.. forgot to say thanks for your post and help

    Up Down 0 rated
  • Kiwi, why don't you share your solution with us?

    Up Down 0 rated
  • I guess Kiwi decided to sell it instead :)

    YOu could change the 'content-length' HTTP header, but won't the script just keep sending unless you stop it, or will Apache see this and cut the transmission short?

    Up Down 0 rated
  • @Bobbles: to serve 30 seconds to un-authenticated users, just change the "header('Content-Length: '.$filesize,true);" in the headers. Normally $filesize will be the the filesize of the file, but you can change this to a smaller figure, and depending on the size of your mp3, make sure it is 30 seconds.

    When you receive your GET or POST info, you can check that this info is genuine by md5ing it. So, say you send the url, expiry time, ip (for good measure), and a password, you might also send along a 5th bit of info which is the last 4 md5'd, like "$hash=md5($url.$expiry.$ip.$password);".

    Up Down 0 rated
  • Hi,

    I can't find the feedparser.as nor the loadfile function in the AbstractPlayer.as. How to change the file url in the script ? thanks a lot.
    Fred


    bc.. JeroenW (13.03.2007):

    You can change that in the function parse() of the FeedParser.as file. At the top, there is a line:

    parseURL = url;

    You can just change it to something like:

    parseURL = "http://www.mysite.com/mypath/"+url;

    JeroenW (13.03.2007):

    Then you should search for the loadFile() function of the AbstractPlayer.as. Change this line:

    fileArray[0]['file'] = fil;

    to somethin like this:

    fileArray[0]['file'] = "http://www.myserver.com/mypath/"+fil;

    Up Down 0 rated
  • I'm using your flash video player, and it's fantastic - it's just that I'm trying to figure out how to be able to put the content on all my html pages into posts on my blog - so people can leave comments in a better way - I've tried copying the relevant files into the blog folder and pasting all the code into the html for the post, but nothing shows up...

    Up Down 0 rated
  • Will you find where I store my playlist?
    http://music.vuilen.com/play.php?albumid=1260

    Up Down 0 rated
  • A guy (Scott) had a similar idea to the truncating the MP3 severed from the server with Drupal in this discussion:

    http://drupal.org/node/65941

    It would be possible for someone to make a general purpose Drupal module to do this on purpose I think...

    Up Down 0 rated
  • DUC... OR ANYONE... how do i accomplish this

    /play.php?albumid=1260

    how does the player interpret the album or track id that is in my database?

    Up Down 0 rated
  • Spiceman,
    I want those who can read the code to get the data from our server?
    we have the way to protect.

    Up Down 0 rated
  • Spiceman,
    You can do this by using asp to generate xml list of song by id from your database then, set them up with the Flash player here so they can play song by song automatically.

    All you need to know is asp codes and querystring from database.
    DUC

    Up Down 0 rated
  • what i do is i just use php to base64 encodet the URL, then I have flash player base64 decode the url. Its not the most secure, but it atleast deters stupid people.

    bc.. // .. then we loop through the mysql array ..
    while($row = @mysql_fetch_array($result)) {
    echo " <track>\n";
    echo " <title>".$row['title']."</title>\n";
    echo " <creator>".$row['artist']."</creator>\n";
    echo " <location>".base64_encode($row['file'])."</location>\n";
    echo " <info>".$row['info']."</info>\n";
    echo " <image>".$row['art']."</image>\n";
    echo " </track>\n";
    }



    http://dynamicflash.com/goodies/base64

    Up Down 0 rated
  • Hi Duc!

    I couldn't find the url of the MP3!
    Really nice job!
    How did you do this?
    I made a secure player to, but it is still possible to get the MP3. And it only worked at 1 single file and not a playlist!
    How did you do this?

    Thanx,
    FreakyHase

    Up Down 0 rated
  • with my method described above, all the public would see would be

    <title>Turn Coat</title>
    <creator>Anti Flag</creator>
    <location>
    aHR0cDovL2JhZGFzcy5hdGguY3gvUHVua1JhZGlvL3NvbmdzL0FudGktRmxhZyUyMC0lMjBUdXJuY29hdC5tcDM=
    </location>
    <info>Uploaded by Me</info>
    <image>
    http://cover6.cduniverse.com/MuzeAudioArt/500/502084.jpg
    </image>

    but teh player would play the music still.

    Up Down 0 rated
  • Not very secure, sorry :
    echo base64_decode("aHR0cDovL2JhZGFzcy5hdGguY3gvUHVua1JhZGlvL3NvbmdzL0FudGktRmxhZyUyMC0lMjBUdXJuY29hdC5tcDM=");

    Up Down 0 rated
  • Hi,

    I tried the method provided in the documentation by trying to hide part of the flv URl:
    ==================QUOTE FROM DOCUMENTATION
    Because of the many requests to hide part of the url for media files to prevent stealing, I have added a single line of code to the script in the FLA's timeline. If you un-comment this line (//var prefix = "..."), you can set here a prefix url the players will use for the FLV/MP3/etc. Set this e.g. to the directory where your mediafiles are located (http://www.jeroenwijering.com/uploads/), and then you only have to add the filename of your mediafiles to the flashvars/playlists.
    ===================

    I have uploaded a flv file to blip.tv. My address of flv is something like:
    http://blip.tv/file/get/Shelley-TestVideo961.flv

    I uncommented the //var prefix and added the URL in the fla file as:
    http://blip.tv/file/get/
    in action script.

    and added the remaining part in playlist as Shelley-TestVideo961.flv

    I published the swf as flvplayer.swf ...but I can't see anything..not even the player. I am a flash newbie..What I am I doing wrong. Can somebody help me please.....If you could send me a flvplayer.swf with http://blip.tv/file/get/
    in the var prefix (as a zip file to my e-mail, I would be highly obliged.
    Please, help me :)

    My e-mail is shelleytvm(at)yahoo.com

    Thanx in advance...

    Up Down 0 rated
  • @FreakyHaze, i know its not very secure, but it will at least deter stupid people and people who do not know what base64 encoding is.

    It was worth a shot, but I might move up to a more secure encryption algorithm.

    Up Down 0 rated
  • Here is how I hide my mp3 files

    I have a table(protection) in database which consists of the following
    user_ip
    mp3_id
    secure_key
    time

    lets say the users can listen to my mp3's by opening page listen.php
    on this page, I create a secure key using md5 and store user ip address, mp3 file id, the secure key, and the time

    I pass to the mp3 player this URL:
    get_mp3.php?id=secure_key

    now in the get_mp3.php
    I get the mp3_id by querying the table Protection using ip_address and secure_key, if a result was returned I make sure the entry is not older than 10 seconds

    now I delete the entry in protection table
    and get the real mp3 file location and forward it to the user using:

    header("location: path/file.mp3");

    what I am doing is creating ONE TIME access URL to my mp3 file

    I think the only way to break this system is that the user uninstalls flash plugin, so that the access key will not be deleted, but I don't think many users will think about this anyway, and if it took him more than 10 seconds to take the URL out of the html source and paste it in the browser then he will get nothing

    Up Down 0 rated
  • @Kahled,

    You didn't post your full header() code, but are you also using the no-store headers so the MP3 doesn't end up in the user's cache?

    Up Down 0 rated
  • Hi,

    Help requested on my question..please....

    Up Down 0 rated
  • Hi,

    But Rich-Media PHP FLV Player does not stores the file in cache and the flv files can be scrubbed, like flv streaming. So preventing caching of files can be done. But I don't know how ?? View the follwing link:
    http://www.rich-media-project.com/products/php_player/sample1.php

    Up Down 0 rated
  • @shelley,

    They certainly stored the file you linked to in my cache. All 97,756,584 bytes of it.

    If you want to watch it from my server, I'll give you a link.

    Up Down 0 rated
  • @shelly,

    It's really quite easy to prevent caching, you have two choices.

    1. Use a RTMP streaming server (FMS or Red5).

    2. Use the no-store headers. See this [url=http://www.jeroenwijering.com/?thread=1005]thread[/url], my post of 04.05.2007.

    Up Down 0 rated
  • @Will,

    But is for music files. Will you explain how it will be for .flv files???
    Mime type, etc...???? I am a newbie..Please help..

    Will you please help me with this post too...
    ===========
    Hi,

    I tried the method provided in the documentation by trying to hide part of the flv URl:
    ==================QUOTE FROM DOCUMENTATION
    Because of the many requests to hide part of the url for media files to prevent stealing, I have added a single line of code to the script in the FLA's timeline. If you un-comment this line (//var prefix = "..."), you can set here a prefix url the players will use for the FLV/MP3/etc. Set this e.g. to the directory where your mediafiles are located (http://www.jeroenwijering.com/uploads/), and then you only have to add the filename of your mediafiles to the flashvars/playlists.
    ===================

    I have uploaded a flv file to blip.tv. My address of flv is something like:
    http://blip.tv/file/get/Shelley-TestVideo961.flv

    I uncommented the //var prefix and added the URL in the fla file as:
    http://blip.tv/file/get/
    in action script.

    and added the remaining part in playlist as Shelley-TestVideo961.flv

    I published the swf as flvplayer.swf ...but I can't see anything..not even the player. I am a flash newbie..What I am I doing wrong. Can somebody help me please.....If you could send me a flvplayer.swf with http://blip.tv/file/get/
    in the var prefix (as a zip file to my e-mail, I would be highly obliged.
    Please, help me smiley

    My e-mail is shelleytvm(at)yahoo.com

    Thanx in advance...

    shelley

    Up Down 0 rated
  • @shelly,

    The streaming servers (FMS, Red5) are for media, that can be video (SWF or FLV), music (MP3), or images (JPG, PNG, GIF).

    The php fake streamers or progressive download from a server will handle any type of file, although only those listed above will be useful to flash players.

    Sorry, I can't help with the change to the flvplayer.swf because I don't have Flash8.

    Up Down 0 rated
  • @Khaled,

    I used that method too,
    but it won't work if you use a playlist.
    Do you have a solution for that? I can't find some.

    Up Down 0 rated
  • @will
    Thanx for reply. But I am not interested in FMS and RED5. Moreover I tried your playlist_readdir_nostore.php. But I am unable to get it to work. But I created a playlist,php like this:
    ===============
    <?php
    header("content-type:text/xml;charset=utf-8");
    header("Cache-Control: no-store, must-revalidate"); // HTTP/1.1
    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past
    echo"<playlist version='1' xmlns='http://xspf.org/ns/0/'>";
    echo "<trackList>";
    echo"<track>";
    echo"<title>Lecture1 -Part2 -20 Min:</title>";
    echo"<creator>Reproduction in Plants-</creator>";
    echo"<location>video/test.flv</location>";
    echo"</track>";
    ================================
    and called
    s1.addVariable("file","playlist.php");
    in my flashvars.
    and could avoid caching of playlist

    I need to do the same thing with my flv file. I tried it like this:
    ==================
    <?php
    header("Cache-Control: no-store, must-revalidate");
    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
    header("Content-Type: video/flv");
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>

    ........

    <div align="left">
    <p id="player1"><a href="http://www.macromedia.com/go/getflashplayer">Download the free Adobe Flash Player</a> to view this video.</p>
    <script type="text/javascript">
    var s1 = new SWFObject("flvplayer.swf?nocache=13:14:44:000","playlist","320","326","7");
    s1.addParam("allowfullscreen","false");
    s1.addParam("menu","false");
    s1.addVariable("file","playlist.php");
    s1.addVariable("repeat","list");
    s1.addVariable("shuffle","false");
    s1.addVariable("autoscroll","false");
    s1.addVariable("displayheight","200");
    s1.addVariable("showicons","false");
    s1.addVariable("lightcolor","0x000000");
    s1.write('player1');
    </script
    </div>
    ==============
    in a file called video.php
    But I am geting a message popup that Internet explorer cannot download video.php from 127.0.0.1. It is to do with header("Content-Type: video/flv");

    Is it the correct thing I am doing ????

    My need is to play the videos in order as shown in playlist.php rather than sorting and creating a playlist dynamically. and I don't want to cache my flv file. Please will you show me the correct way.

    Thanx in advance

    Shelley

    Up Down 0 rated
  • @will

    Hi Will,
    Thanx for reply. But Still not working. I think I have reached close to it.

    stream.php
    =========
    <?php*
    *$file = "\Inetpub\wwwroot\entrance\newvideo\video\" . $_GET["file"];
    $fh = fopen($file,"rb");
    while (!feof($fh))
    {
    header("Cache-Control: no-store, must-revalidate");
    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
    header("Content-Type: video/x-flv");
    header('Content-Length: ' . filesize($file));
    print(fread($fh, filesize($file)));
    }
    fclose($fh);
    ?>

    playlist.php
    ===========
    <?php
    header("content-type:text/xml;charset=utf-8");
    header("Cache-Control: no-store, must-revalidate"); // HTTP/1.1
    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past
    echo"<playlist version='1' xmlns='http://xspf.org/ns/0/'>";
    echo "<trackList>";
    echo"<track>";
    echo"<title>Lecture1 -Part2 -20 Min:</title>";
    echo"<creator>Reproduction in Plants-</creator>";
    *echo"<location>stream.php?file=test.flv</location>";*
    echo"</track>";
    .....
    ....

    video.php
    ===========
    s1.addVariable("file","playlist.php");

    The video is not showing. I tried all paths. sometimes it shows some numbers changing randomly in the player (%) as if looping.

    Quote:
    MUST evaluate to the actual path on your server where the "test.flv" video file is, starting with root. It is not a URI, a relative path, or an absolute path. Adjust it accordingly or else the script "stream.php" won't be able to find the file to open it and stream it.
    ======
    Is it correct ??? What am I doing wrong now ????? Please help??

    Regards
    Shelley

    Up Down 0 rated
  • @will

    In addition to above details, also there was a html file in my Temporary Internet Files Folder:
    http://127.0.0.1/entrance/newvideo/stream.php?file=test.flv

    It shows:
    Parse error: parse error, unexpected '"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in c:\Inetpub\wwwroot\test\entrance\newvideo\stream.php on line 2
    Maybe this helps. What is wrong???

    Thanx in advance
    Shelley

    Up Down 0 rated
  • @Shelley,

    That error T_... is usually because of a typO, like unmatched pairs of quotes, missing ; at the end of the line, etc.

    Line 2 would be this line:
    bc.. $file = "\Inetpub\wwwroot\entrance\newvideo\video\" . $_GET["file"];



    What's happened is that you have inadvertently escaped (made invisible) the double quote after "video". The backslash is an escape character in PHP. Two ways to fix it, put more backslashs there to escape the escapes, or change all of the backslashes to forward slashes.

    This:
    bc.. $file = "\\Inetpub\\wwwroot\\entrance\\newvideo\\video\\" . $_GET["file"];


    or this:
    bc.. $file = "/Inetpub/wwwroot/entrance/newvideo/video/" . $_GET["file"];



    I'm using that "stream.php" file right now, so I know it works. Just do the fix - either one, your choice.

    Up Down 0 rated
  • @will

    Hi,
    I tried all the three options psecified by you. But no result. The player is showing some random numbers displayed at the progress bar position and reaches 100% after some tome. Seems like looping???
    temporary internet files show:
    ===========
    Warning: fopen() [function.fopen]: Unable to access /Inetpub/wwwroot/entrance/newvideo/video/test.flv in c:\Inetpub\wwwroot\test\entrance\newvideo\stream.php on line 3

    Warning: fopen(/Inetpub/wwwroot/entrance/newvideo/video/test.flv) [function.fopen]: failed to open stream: No such file or directory in c:\Inetpub\wwwroot\test\entrance\newvideo\stream.php on line 3

    Warning: feof(): supplied argument is not a valid stream resource in c:\Inetpub\wwwroot\test\entrance\newvideo\stream.php on line 4

    Warning: Cannot modify header information - headers already sent by (output started at c:\Inetpub\wwwroot\test\entrance\newvideo\stream.php:3) in c:\Inetpub\wwwroot\test\entrance\newvideo\stream.php on line 6

    Warning: Cannot modify header information - headers already sent by (output started at c:\Inetpub\wwwroot\test\entrance\newvideo\stream.php:3) in c:\Inetpub\wwwroot\test\entrance\newvideo\stream.php on line 7

    Warning: Cannot modify header information - headers already sent by (output started at c:\Inetpub\wwwroot\test\entrance\newvideo\stream.php:3) in c:\Inetpub\wwwroot\test\entrance\newvideo\stream.php on line 8

    Warning: filesize() [function.filesize]: Unable to access /Inetpub/wwwroot/entrance/newvideo/video/test.flv in c:\Inetpub\wwwroot\test\entrance\newvideo\stream.php on line 9

    Warning: filesize() [function.filesize]: stat failed for /Inetpub/wwwroot/entrance/newvideo/video/test.flv in c:\Inetpub\wwwroot\test\entrance\newvideo\stream.php on line 9

    Warning: Cannot modify header information - headers already sent by (output started at c:\Inetpub\wwwroot\test\entrance\newvideo\stream.php:3) in c:\Inetpub\wwwroot\test\entrance\newvideo\stream.php on line 9

    Warning: filesize() [function.filesize]: Unable to access /Inetpub/wwwroot/entrance/newvideo/video/test.flv in c:\Inetpub\wwwroot\test\entrance\newvideo\stream.php on line 10

    Warning: filesize() [function.filesize]: stat failed for /Inetpub/wwwroot/entrance/newvideo/video/test.flv in c:\Inetpub\wwwroot\test\entrance\newvideo\stream.php on line 10

    Warning: fread(): supplied argument is not a valid stream resource in c:\Inetpub\wwwroot\test\entrance\newvideo\stream.php on line 10
    ========================

    Desperate

    Thanx in advance
    Shelley

    Up Down 0 rated
  • @will
    @will

    Please check my video at
    http://www.medicoexams.com/videotest/video.php

    It is very slow and is freezing and waiting for the file to download. But it is not cached:

    Sream.php
    <?php
    $file = "/home/medicoex/public_html/video/" . $_GET["file"];
    $fh = fopen($file,"rb");
    while (!feof($fh))
    {
    header("Cache-Control: no-store, must-revalidate");
    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
    header("Content-Type: video/x-flv");
    header("Content-Length: " . filesize($file));
    print(fread($fh, filesize($file)));
    }
    fclose($fh);
    ?>
    ======================
    Playlist.php

    <?php
    header("content-type:text/xml;charset=utf-8");
    header("Cache-Control: no-store, must-revalidate"); // HTTP/1.1
    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past
    echo"<playlist version='1' xmlns='http://xspf.org/ns/0/'>";
    echo "<trackList>";
    echo"<track>";
    echo"<title>Lecture1 -Part2 -20 Min:</title>";
    echo"<creator>Video 1-</creator>";
    echo"<location>stream.php?file=test.flv</location>";
    echo"</track>";
    echo"</trackList>";
    echo"</playlist>";
    ?>
    ===============
    Video.php

    <script type="text/javascript">
    var s1 = new SWFObject("flvplayer.swf","playlist","320","326","7");
    s1.addParam("allowfullscreen","false");
    s1.addParam("menu","false");
    s1.addVariable("file","playlist.php");
    s1.addVariable("repeat","list");
    s1.addVariable("shuffle","false");
    s1.addVariable("autoscroll","false");
    s1.addVariable("displayheight","200");
    s1.addVariable("showicons","false");
    s1.addVariable("lightcolor","0x000000");
    s1.write('player1');
    </script

    What is wrong ???? Please help

    Shelley

    Up Down 0 rated
  • @will

    Hi will,
    I uploaded another video and it was okay. Someting to do with the file. It was a real media file which I converted to avi and then encoded it to flv. Will this procedure cause corrupted flv files ????

    Anyway many, many thanx to you will:). You are amazing!

    I just needed one more help, please. How can I include my play list with streaming with file stored at blip.tv ? Something like:
    http://blip.tv/file/get/Shelley-TestVideo961.flv

    I made the playlist as follows...but not working:
    ==========
    <?php
    header("content-type:text/xml;charset=utf-8");
    header("Cache-Control: no-store, must-revalidate"); // HTTP/1.1
    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past
    echo"<playlist version='1' xmlns='http://xspf.org/ns/0/'>";
    echo "<trackList>";
    echo"<track>";
    echo"<title>Lecture1 -Part2 -2 Min:</title>";
    echo"<creator>Video 1-</creator>";
    echo"<location>stream.php?file=http://blip.tv/file/get/Shelley-TestVideo961.flv</location>";
    echo"</track>";
    echo"</trackList>";
    echo"</playlist>";
    ?>
    ==============================
    How can I do it ??? And also how can I implement scrubbing in my videos like real streaming???? Help me...

    Thanx once again, will..
    Shelley

    Up Down 0 rated
  • DUC,
    please tell how you did it?

    Up Down 0 rated
  • @Shelley,

    The first of those error messages are telling you that there isn't a file at */Inetpub/wwwroot/entrance/newvideo/video/test.flv*. Are you sure that is the correct path and that there is really a video file there?

    The rest of the error messages relate to the non-existant file and the fact that messages were sent before the headers so the headers can't be sent. They will *ALL* go away if "stream.php" can access the file.

    I guess you've moved things around because I can't access anything at *http://www.medicoexams.com/videotest/video.php*.

    The blip.tv file would be accessed like this:
    bc.. echo"<location>http://blip.tv/file/get/Shelley-TestVideo961.flv</location>";



    Video conversions often don't work until you find that "magic" combination of settings that does the job. My son and I tried 12 conversion programs and hundreds of settings until we found out how to correctly and reliably convert video files to .wmv for his Zune player. It's sort of a black art, you know, voodoo magic or whatever.

    You should have a stand-alone video player installed to test the files after you convert them. I highly recommend [url=http://www.videolan.org/]VLC[/url] because it seems to reject the improperly encoded videos and it plays almost every format.

    As for conversion to FLV. I've had good results with some versions of ffmpeg, [url=http://freshmeat.net/projects/winff/]WinFF[/url], and [url=http://www.rivavx.com/index.php?encoder&L=3]Riva[/url]. WinFF and Riva use ffmpeg to do the work, so they are subject to the same troubles that plague ffmpeg until you find a good version. Lots of help here [url=http://www.videohelp.com/tools/WinFF]www.videohelp.com/tools/WinFF[/url].
    You can also try [url=http://sourceforge.net/projects/mediacoder/]MediaCoder[/url], [/url=http://www.erightsoft.com/SUPER.html]SUPER[/url], and [/url=http://www.videohelp.com/tools?toolsearch=flv]many others[/url]. And get [url=http://labs.adobe.com/technologies/flvcheck/]flvcheck[/url] from Adobe to check your encoded flv files. Maybe one of those will bring you some joy.

    To get the video to scrub, it has to have metadata injected into the video file. You can get a metadata injector here [url=http://www.buraks.com/flvmdi/]FLVMDI[/url]. Run it after you convert the flv.

    On the subject of paths.

    This is a URL: http://www.medicoexams.com/videotest/video.php
    It consists of the protocol "http://" the domain "www.mdeicoexams.com" and the URI "/videotest/video/php". It is only good for Internet applications accessing a server.

    Within an Internet application, say some html like: http://www.medicoexams.com/videotest/index.html
    you can have full URLs: http://www.medicoexams.com/videotest/video.php
    relative paths: videotest/video.php (notice no leading "/" - relative to the location of the file (index.html) referencing it. In this case, relative to the location of "index.html".
    absolute paths: /videotest/video.php (notice a leading "/" - absolute path from the server's DocumentRoot)

    Then there are PHP scripts and other programs running on the server. Their paths are operating system paths or virtual paths if you are on a multi-host server.
    They start at the operating system root, the first "/", and are the same path that you would use to access a document or file from an application running on the server or computer. There are also operating system relative and virtual paths, but let's not go there.

    It is always best if you use full URLs or full operating system paths until you have an application running. Then you can change (and TEST, TEST, TEST) to relative paths for ease of web site maintenance.

    For Internet applications, you can always put the full URL into your browser's address bar and test the access to the file.
    Like this:
    <code>
    http://www.medicoexams.com/videotest/video.php (your page containing the player)
    http://www.medicoexams.com/videotest/flvplayer.swf (the Flash player)
    http://www.medicoexams.com/videotest/playlist.php (the PHP playlist)
    http://www.medicoexams.com/videotest/stream.php (the PHP streamer
    http://www.medicoexams.com/videotest/image.jpg (if you use a preview image)
    http://www.medicoexams.com/videotest/song.mp3 (if you have audio)
    http://www.medicoexams.com/videotest/test.flv (if the file is in a web-accessible directory)
    <code>
    Adjust the URL accordingly and everyone of those links should work. If they don't, your application won't work either.

    So, where are your files now? I can't access anything to test it for you?

    Puzzled???

    Up Down 0 rated
  • version 0.1b with my typOs fixed ;)

    @Shelley,

    The first of those error messages are telling you that there isn't a file at */Inetpub/wwwroot/entrance/newvideo/video/test.flv*. Are you sure that is the correct path and that there is really a video file there?

    The rest of the error messages relate to the non-existant file and the fact that messages were sent before the headers so the headers can't be sent. They will *ALL* go away if "stream.php" can access the file.

    I guess you've moved things around because I can't access anything at *http://www.medicoexams.com/videotest/video.php*.

    The blip.tv file would be accessed like this:
    bc.. echo"<location>http://blip.tv/file/get/Shelley-TestVideo961.flv</location>";



    Video conversions often don't work until you find that "magic" combination of settings that does the job. My son and I tried 12 conversion programs and hundreds of settings until we found out how to correctly and reliably convert video files to .wmv for his Zune player. It's sort of a black art, you know, voodoo magic or whatever.

    You should have a stand-alone video player installed to test the files after you convert them. I highly recommend [url=http://www.videolan.org/]VLC[/url] because it seems to reject the improperly encoded videos and it plays almost every format.

    As for conversion to FLV. I've had good results with some versions of ffmpeg, [url=http://freshmeat.net/projects/winff/]WinFF[/url], and [url=http://www.rivavx.com/index.php?encoder&L=3]Riva[/url]. WinFF and Riva use ffmpeg to do the work, so they are subject to the same troubles that plague ffmpeg until you find a good version. Lots of help here [url=http://www.videohelp.com/tools/WinFF]www.videohelp.com/tools/WinFF[/url].
    You can also try [url=http://sourceforge.net/projects/mediacoder/]MediaCoder[/url], [url=http://www.erightsoft.com/SUPER.html]SUPER[/url], and [url=http://www.videohelp.com/tools?toolsearch=flv]many others[/url]. And get [url=http://labs.adobe.com/technologies/flvcheck/]flvcheck[/url] from Adobe to check your encoded flv files. Maybe one of those will bring you some joy.

    To get the video to scrub, it has to have metadata injected into the video file. You can get a metadata injector here [url=http://www.buraks.com/flvmdi/]FLVMDI[/url]. Run it after you convert the flv.

    On the subject of paths.

    This is a URL: http://www.medicoexams.com/videotest/video.php
    It consists of the protocol "http://" the domain "www.mdeicoexams.com" and the URI "/videotest/video/php". It is only good for Internet applications accessing a server.

    Within an Internet application, say some html like: http://www.medicoexams.com/videotest/index.html
    you can have full URLs: http://www.medicoexams.com/videotest/video.php
    relative paths: videotest/video.php (notice no leading "/" - relative to the location of the file (index.html) referencing it. In this case, relative to the location of "index.html".
    absolute paths: /videotest/video.php (notice a leading "/" - absolute path from the server's DocumentRoot)

    Then there are PHP scripts and other programs running on the server. Their paths are operating system paths or virtual paths if you are on a multi-host server.
    They start at the operating system root, the first "/", and are the same path that you would use to access a document or file from an application running on the server or computer. There are also operating relative and virtual paths, but let's not go there.

    It is always best if you use full URLs or full operating system paths until you have an application running. Then you can change (and TEST, TEST, TEST) to relative paths for ease of web site maintenance.

    For Internet applications, you can always put the full URL into your browser's address bar and test the access to the file.
    Like this:
    bc.. http://www.medicoexams.com/videotest/video.php (your page containing the player)
    http://www.medicoexams.com/videotest/flvplayer.swf (the Flash player)
    http://www.medicoexams.com/videotest/playlist.php (the PHP playlist)
    http://www.medicoexams.com/videotest/stream.php (the PHP streamer
    http://www.medicoexams.com/videotest/image.jpg (if you use a preview image)
    http://www.medicoexams.com/videotest/song.mp3 (if you have audio)
    http://www.medicoexams.com/videotest/test.flv (if the file is in a web-accessible directory)


    Adjust the URL accordingly and every one of those links should work. If they don't, your application won't work either.

    So, where are your files now? I can't access anything to test it for you?

    Puzzled???

    Up Down 0 rated
  • @Shelley,

    You could use this version of stream.php to help you see what is happening on your server.
    bc.. <?php

    $file = "/home/medicoex/public_html/video/" . $_GET["file"];

    // print "<pre>\n";
    // print "File: " . $file . "\n";
    // print_r($_SERVER);
    // print "</pre>";
    // exit;

    $fh = fopen($file,"rb");

    while (!feof($fh))
    {
    header("Cache-Control: no-store, must-revalidate");
    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
    header("Content-Type: video/x-flv");
    header("Content-Length: " . filesize($file));
    print(fread($fh, filesize($file)));
    }

    fclose($fh);

    ?>


    Uncomment ( remove the double slashes "//" ), the print and exit statements and then call "stream.php" in your browser like this:
    bc.. http://www.medicoexams.com/videotest/stream.php (adjust the path accordingly)


    The returned information may help you straighten out your paths.

    Up Down 0 rated
  • @will,

    With the stream.php does it affect the serer load much?

    Up Down 0 rated
  • @spid3r,

    "stream.php" just does a simple file read and print, pretty much the same as the server software would have to do, so I haven't noticed any increase in load.

    Up Down 0 rated
  • @DUC
    Please share with us how what are your methods. Thanks.

    @FreakyHase
    Have you figured out how Duc did it. Thanks.

    Up Down 0 rated

This QA is closed.

Still don't have JW Player? Get It Here