VLC Web Plugin on IIS Server through authentication?
Posted: 13 Dec 2011 17:33
Hi,
I have searched these forums and basically all over google for the past week trying to find some information regarding this, since I'm having problems making videos stream from my IIS server.
Sadly, i was not able to find a solution to this, which is why I ask for help here.
I have an IIS 7.5 server running on a Windows 7 64-bit server/computer. I use the VLC Web Plugin for Mozilla Firefox to play the video file in a browser, but without success.
It should also be noted that I have added the MIME type .mkv to the IIS MIME-Types as video/x-matroska, so this should not be the problem. Also, I have given every user full access rights to the entire www folder and the file, so this should not be the problem either.
I cut it down to a very basic HTML file "index.html" and saved the video file right next to the HTML page. Here is my HTML code:
This code works perfectly locally, by opening the HTML file directly in Firefox without the use of the web server. But as soon as I put it on the IIS web server the play button simply does nothing. It can't authenticate or something.
Here is the log from VLC when I input the video URL from the web server directly into the VLC Media Player:
So, from what I can see from this log, VLC is having problems authenticating with the IIS server through the windows NTLM login authentication. I also tried setting up an apache server with no login system, which successfully played the file as I wanted, but I need a login system for this.
So my question is, is there a way to make this work through the NTLM login method?
And if not, how do I manage it in for example ASP.net using forms authentication, or PHP using sessions, it doesn't really matter which one, I just need the VoD streaming to be behind a login system, I'll figure out how to connect the login information to the NTLM method myself.
Any help would be greatly appreciated, since I'm really stuck here on this one.
I have searched these forums and basically all over google for the past week trying to find some information regarding this, since I'm having problems making videos stream from my IIS server.
Sadly, i was not able to find a solution to this, which is why I ask for help here.
I have an IIS 7.5 server running on a Windows 7 64-bit server/computer. I use the VLC Web Plugin for Mozilla Firefox to play the video file in a browser, but without success.
It should also be noted that I have added the MIME type .mkv to the IIS MIME-Types as video/x-matroska, so this should not be the problem. Also, I have given every user full access rights to the entire www folder and the file, so this should not be the problem either.
I cut it down to a very basic HTML file "index.html" and saved the video file right next to the HTML page. Here is my HTML code:
Code: Select all
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body style="width:100%; height:100%;">
<embed type="application/x-vlc-plugin" pluginspage="http://www.videolan.org" version="VideoLAN.VLCPlugin.2"
width="720"
height="405"
autoplay="no"
id="vlc"
target="video.mkv">
</embed>
<script type="text/javascript">
var vlc = document.getElementById("vlc");
function mute(){
vlc.audio.toggleMute();
}
function play(){
vlc.playlist.play();
}
function stop(){
vlc.playlist.stop();
}
function pause(){
vlc.playlist.togglePause();
}
</script>
<br />
<input type="button" onclick='play();' value="Play" /><br>
<input type="button" onclick='pause();' value="Pause" /><br>
<input type="button" onclick='stop();' value="Stop" /><br>
<input type="button" onclick='mute();' value="Mute" /><br>
</body>
</html>
Here is the log from VLC when I input the video URL from the web server directly into the VLC Media Player:
Code: Select all
qt4 warning: Input option: http-caching=1200
main debug: adding item `http://10.0.0.30/video.mkv' ( http://10.0.0.30/video.mkv )
qt4 debug: Adding a new MRL to recent ones: http://10.0.0.30/video.mkv
main debug: rebuilding array of current - root Spilleliste
main debug: rebuild done - 1 items, index -1
main debug: processing request item http://10.0.0.30/video.mkv node null skip 0
main debug: resyncing on http://10.0.0.30/video.mkv
main debug: http://10.0.0.30/video.mkv is at 0
main debug: starting new item
main debug: creating new input thread
main debug: Creating an input for 'http://10.0.0.30/video.mkv'
main debug: thread (input) created at priority 1 (../.././src/input/input.c:220)
main debug: thread started
main debug: using timeshift granularity of 50 MiB
main debug: using timeshift path 'C:\Users\myuser\AppData\Local\Temp'
main debug: `http://10.0.0.30/video.mkv' gives access `http' demux `' path `10.0.0.30/video.mkv'
main debug: creating demux: access='http' demux='' path='10.0.0.30/video.mkv'
main debug: looking for access_demux module: 0 candidates
main debug: no access_demux module matched "http"
main debug: TIMER module_need() : 0.000 ms - Total 0.000 ms / 1 intvls (Avg 0.000 ms)
main debug: creating access 'http' path='10.0.0.30/video.mkv'
main debug: looking for access module: 2 candidates
access_http debug: http: server='10.0.0.30' port=80 file='/video.mkv'
main debug: net: connecting to 10.0.0.30 port 80
qt4 debug: IM: Setting an input
main debug: connection succeeded (socket = 1440)
access_http debug: protocol 'HTTP' answer code 401
access_http debug: Content-Type: text/html
access_http debug: Server: Microsoft-IIS/7.5
access_http debug: Authentication header: Negotiate
main warning: Unknown authentication scheme: 'Negotiate'
access_http debug: Authentication header: NTLM
main warning: Unknown authentication scheme: 'NTLM'
access_http debug: this frame size=1326
access_http debug: authentication failed for realm (null)
access_http debug: retrying with user=ServerAdmin
main debug: net: connecting to 10.0.0.30 port 80
main debug: connection succeeded (socket = 1440)
access_http debug: protocol 'HTTP' answer code 401
access_http debug: Content-Type: text/html
access_http debug: Server: Microsoft-IIS/7.5
access_http debug: Authentication header: Negotiate
main warning: Unknown authentication scheme: 'Negotiate'
access_http debug: Authentication header: NTLM
main warning: Unknown authentication scheme: 'NTLM'
access_http debug: this frame size=1326
access_http debug: authentication failed for realm (null)
main debug: net: connecting to 10.0.0.30 port 80
main debug: connection succeeded (socket = 1484)
access_mms error: error: HTTP/1.1 401 Unauthorized
main debug: no access module matching "http" could be loaded
main debug: TIMER module_need() : 11949.001 ms - Total 11949.001 ms / 1 intvls (Avg 11949.000 ms)
main debug: waitpipe: object killed
main error: open of `http://10.0.0.30/video.mkv' failed: (null)
main debug: finished input
main debug: thread ended
main debug: dead input
main debug: thread times: real 0m11.948683s, kernel 0m0.000000s, user 0m0.000000s
main debug: changing item without a request (current 0/1)
main debug: nothing to play
qt4 debug: IM: Deleting the input
main debug: TIMER input launching for 'http://10.0.0.30/video.mkv' : 11974.001 ms - Total 11974.001 ms / 1 intvls (Avg 11974.000 ms)
So my question is, is there a way to make this work through the NTLM login method?
And if not, how do I manage it in for example ASP.net using forms authentication, or PHP using sessions, it doesn't really matter which one, I just need the VoD streaming to be behind a login system, I'll figure out how to connect the login information to the NTLM method myself.
Any help would be greatly appreciated, since I'm really stuck here on this one.