|
|
Subject:
ASP and Windows Media HTTP Streaming
Category: Computers > Programming Asked by: morgile-ga List Price: $100.00 |
Posted:
24 Jan 2004 06:34 PST
Expires: 23 Feb 2004 06:34 PST Question ID: 299668 |
Hi, I am building a web site that will allow users to view streaming video content. the web site is built using ASP and SQL Database. I am using Windows Server 2000 and HTTP Streaming for the video. Only authorized users are able to see the steaming video content. (different content for different users). I already know if the user is authorized in my ASP code (session variables) and which files he may view. However, since eventually I render the following code to the browser: <HTML> <...> <OBJECT classid=CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95 codeBase=http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,4,5,715 id=MediaPlayer1 type=application/x-oleobject standby="Loading Microsoft® Windows® Media Player components..." width="335" height="269" > <PARAM NAME="FileName" VALUE="somefolder/somefile.wmv"> <....> </OBJECT> <...> </HTML the wmv URL (somefile.wmv) can be copied by the user and be used in the future without logging in to the site. please notice: I cannot implement the protection of the WMV files with NTFS permissions since my user base is controlled from the DB and I do not want to supply my users with additional usernames and passwords. A good answer will not involve per-user manipulation of NTFS permissions. A possible solution I thought of is to build an ASP page that will be used as a buffer: <PARAM NAME="FileName" VALUE="wmvbuffer.asp&videoid=someid"> and then wmvbuffer.asp will check that the session is valid, read the video file and send it to the media player. problem is that sometimes files are too big and cannot be read in to memory. if such approach is reccomended, I'll need some kind of a buffering mechanism that will read a small part of the file and send it to the user. What do I need? 1. Explanation of the suggested approach 2. Code snippets 3. I must be assured that the approach was somehow tested before 4. I may consider a 3rd party solution (like a activeX control that buffering for me) if licensing of this solution is cheap. | |
|
|
Subject:
Re: ASP and Windows Media HTTP Streaming
Answered By: majortom-ga on 26 Jan 2004 08:07 PST Rated: |
You can open a binary file using an ADODB.Stream object. This is common and there are many references to this being done successfully, including an official Microsoft HOWTO: http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/q276/4/88.asp&NoWebContent=1 http://authors.aspalliance.com/chrisg/default.asp?article=49 http://www.webmasterworld.com/forum47/894.htm The problem with all of these examples is that they read the entire file into a single binary data array object, which you alluded to as a serious memory problem. Happily there's a way to read the file a piece at a time, and a complete, working solution is shown here: http://www.sloppycode.net/fso/?m=133 IMPORTANT: there are several code examples on that page; you want the one that begins with this notice: 'Made By Adam Smith on Aug 8, 2003 for squiver.com The copyright statement on that code states that you are free to use it as you see fit, and the express goal of the programmer was to address the very same issue that you are attempting to address. I suspect the code might be slightly faster without the extra Response.Flush calls inside the while loop, but it works exactly as shown. I have tested it successfully on my own workstation. All I had to do was set FileName and ContentTypeOf appropriately at the top of the script, name it "fileread.asp," and access it with my browser. I am sure this will integrate smoothly into your script(s). One more important note: if you test this on a workstation running a local copy of Internet Information Server and you have antivirus software on that workstation, be sure to read this Microsoft article to avoid "hangs" of the script: http://support.microsoft.com/?kbid=295375 But this is only a local testing concern and should not affect real servers. |
morgile-ga
rated this answer:
Thank you, great answer, simple and to the point. |
|
Subject:
Re: ASP and Windows Media HTTP Streaming
From: big_m-ga on 25 Jan 2004 16:07 PST |
Why not copy the WMV file to a temporary file, send this file to the client, and then (after a timer expires) delete the temporary file. Then you can have the file available for the user for some time, but later it will be deleted and therefore no longer accessable. Big M. |
Subject:
Re: ASP and Windows Media HTTP Streaming
From: morgile-ga on 27 Jan 2004 06:19 PST |
Hi, Thanks for the answer, It looks like the right thing to me. I'm checking now to see if it works, but it sure looks promising! ofer. |
If you feel that you have found inappropriate content, please let us know by emailing us at answers-support@google.com with the question ID listed above. Thank you. |
Search Google Answers for |
Google Home - Answers FAQ - Terms of Service - Privacy Policy |