HTTP Streaming over DVR

About encoding, codec settings, muxers and filter usage
Moriquendi
Blank Cone
Blank Cone
Posts: 74
Joined: 31 May 2011 16:22

HTTP Streaming over DVR

Postby Moriquendi » 15 Sep 2011 09:38

Hi forum,

I have two different DVRs with a IP camera connected as input. I am able to monitor the camera's input on another PC using an internet browser(IE, mozilla both works) by simply typing the device's configured IP addr, such as; http://xxx.xxx.xxx.xxx. The wireshark log also confirms the packets are sent over http. However, I couldnt be ale to see this stream using vlc. I simply opened a network stream with "http://xxx.xxx.xxx.xxx" and vlc doesnt give any errors but logs say there is nothing to play. Here is the complete log;

Code: Select all

-- logger module started -- main debug: using interface module "logger" main debug: TIMER module_need() : 4.000 ms - Total 4.000 ms / 1 intvls (Avg 4.000 ms) qt4 warning: Input option: http-caching=1200 main debug: adding item `http://192.168.184.40' ( http://192.168.184.40 ) main debug: rebuilding array of current - root Playlist main debug: rebuild done - 1 items, index -1 main debug: processing request item http://192.168.184.40 node null skip 0 main debug: resyncing on http://192.168.184.40 main debug: http://192.168.184.40 is at 0 main debug: starting new item main debug: creating new input thread main debug: Creating an input for 'http://192.168.184.40' qt4 debug: Adding a new MRL to recent ones: http://192.168.184.40 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:\DOCUME~1\ERHAN~1.TEP\LOCALS~1\Temp' main debug: `http://192.168.184.40' gives access `http' demux `' path `192.168.184.40' main debug: creating demux: access='http' demux='' path='192.168.184.40' 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='192.168.184.40' main debug: looking for access module: 2 candidates access_http debug: http: server='192.168.184.40' port=80 file='' main debug: net: connecting to 192.168.184.40 port 80 main debug: connection succeeded (socket = 1140) access_http debug: protocol 'HTTP' answer code 401 qt4 debug: IM: Setting an input access_http debug: Server: mini_httpd/1.19 19dec2003 access_http debug: Authentication header: Basic realm="." main debug: Using Basic Authentication access_http debug: Content-Type: text/html; charset=%s access_http debug: Connection: close access_http debug: authentication failed for realm . access_http debug: retrying with user=admin main debug: net: connecting to 192.168.184.40 port 80 main debug: connection succeeded (socket = 1140) access_http debug: protocol 'HTTP' answer code 200 access_http debug: Content-Type: text/html main debug: using access module "access_http" main debug: TIMER module_need() : 6858.000 ms - Total 6858.000 ms / 1 intvls (Avg 6858.000 ms) main debug: Using AStream*Stream main debug: pre buffering main debug: received first data after 0 ms main debug: pre-buffering done 1024 bytes in 0s - 1000000 KiB/s main debug: looking for stream_filter module: 2 candidates main debug: no stream_filter module matching "any" could be loaded main debug: TIMER module_need() : 0.000 ms - Total 0.000 ms / 1 intvls (Avg 0.000 ms) main debug: looking for stream_filter module: 1 candidate main debug: using stream_filter module "stream_filter_record" main debug: TIMER module_need() : 0.000 ms - Total 0.000 ms / 1 intvls (Avg 0.000 ms) main debug: creating demux: access='http' demux='' path='192.168.184.40' main debug: looking for demux module: 52 candidates lua debug: Trying Lua scripts in C:\Documents and Settings\erhan.tepe\Application Data\vlc\lua\playlist lua debug: Trying Lua scripts in C:\Program Files\VideoLAN\VLC\lua\playlist lua debug: Trying Lua playlist script C:\Program Files\VideoLAN\VLC\lua\playlist\Copy of youtube.lua lua debug: Trying Lua playlist script C:\Program Files\VideoLAN\VLC\lua\playlist\anevia_streams.lua lua debug: Trying Lua playlist script C:\Program Files\VideoLAN\VLC\lua\playlist\anevia_xml.lua lua debug: Trying Lua playlist script C:\Program Files\VideoLAN\VLC\lua\playlist\appletrailers.lua lua debug: Trying Lua playlist script C:\Program Files\VideoLAN\VLC\lua\playlist\bbc_co_uk.lua lua debug: Trying Lua playlist script C:\Program Files\VideoLAN\VLC\lua\playlist\break.lua lua debug: Trying Lua playlist script C:\Program Files\VideoLAN\VLC\lua\playlist\canalplus.lua lua debug: Trying Lua playlist script C:\Program Files\VideoLAN\VLC\lua\playlist\cue.lua lua debug: Trying Lua playlist script C:\Program Files\VideoLAN\VLC\lua\playlist\dailymotion.lua lua debug: Trying Lua playlist script C:\Program Files\VideoLAN\VLC\lua\playlist\france2.lua lua debug: Trying Lua playlist script C:\Program Files\VideoLAN\VLC\lua\playlist\googlevideo.lua lua debug: Trying Lua playlist script C:\Program Files\VideoLAN\VLC\lua\playlist\jamendo.lua lua debug: Trying Lua playlist script C:\Program Files\VideoLAN\VLC\lua\playlist\joox.lua lua debug: Trying Lua playlist script C:\Program Files\VideoLAN\VLC\lua\playlist\katsomo.lua lua debug: Trying Lua playlist script C:\Program Files\VideoLAN\VLC\lua\playlist\koreus.lua lua debug: Trying Lua playlist script C:\Program Files\VideoLAN\VLC\lua\playlist\lelombrik.lua lua debug: Trying Lua playlist script C:\Program Files\VideoLAN\VLC\lua\playlist\megavideo.lua lua debug: Trying Lua playlist script C:\Program Files\VideoLAN\VLC\lua\playlist\metacafe.lua lua debug: Trying Lua playlist script C:\Program Files\VideoLAN\VLC\lua\playlist\metachannels.lua lua debug: Trying Lua playlist script C:\Program Files\VideoLAN\VLC\lua\playlist\mpora.lua lua debug: Trying Lua playlist script C:\Program Files\VideoLAN\VLC\lua\playlist\pinkbike.lua lua debug: Trying Lua playlist script C:\Program Files\VideoLAN\VLC\lua\playlist\rockbox_fm_presets.lua lua debug: Trying Lua playlist script C:\Program Files\VideoLAN\VLC\lua\playlist\vimeo.lua lua debug: Trying Lua playlist script C:\Program Files\VideoLAN\VLC\lua\playlist\youtube.lua lua warning: Error loading script C:\Program Files\VideoLAN\VLC\lua\playlist\youtube.lua: C:\Program Files\VideoLAN\VLC\lua\playlist\youtube.lua: bad header in precompiled chunk lua debug: Trying Lua playlist script C:\Program Files\VideoLAN\VLC\lua\playlist\youtube_homepage.lua avcodec debug: couldn't guess format main debug: UTF-8 BOM detected vobsub debug: this doesn't seem to be a vobsub file ps warning: this does not look like an MPEG PS stream, continuing anyway main debug: using demux module "ps" main debug: TIMER module_need() : 103.000 ms - Total 103.000 ms / 1 intvls (Avg 103.000 ms) main debug: looking for meta reader module: 2 candidates lua debug: Trying Lua scripts in C:\Documents and Settings\erhan.tepe\Application Data\vlc\lua\meta\reader lua debug: Trying Lua scripts in C:\Program Files\VideoLAN\VLC\lua\meta\reader lua debug: Trying Lua playlist script C:\Program Files\VideoLAN\VLC\lua\meta\reader\filename.lua main debug: no meta reader module matching "any" could be loaded main debug: TIMER module_need() : 1.000 ms - Total 1.000 ms / 1 intvls (Avg 1.000 ms) main debug: `http://192.168.184.40' successfully opened ps warning: garbage at input, trying to resync... main debug: EOF reached main debug: removing module "ps" main debug: removing module "stream_filter_record" main debug: removing module "access_http" main debug: waitpipe: object killed main debug: finished input main debug: thread ended main debug: dead input main debug: thread times: real 0m6.968750s, kernel 0m0.015625s, user 0m0.015625s 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://192.168.184.40' : 6964.000 ms - Total 6964.000 ms / 1 intvls (Avg 6964.000 ms)
Just for clarification about 401 response, the ip camera asks for an authentication and vlc also opens an authentication window.
p.s: just a wild guess, maybe DVRs sending streams to browsers that only a browser-like structure can decode it? if so, is it possible to introduce vlc as a browser?
Last edited by Moriquendi on 15 Sep 2011 09:43, edited 1 time in total.

Sébastien Escudier
Big Cone-huna
Big Cone-huna
Posts: 853
Joined: 06 Nov 2008 08:38
Operating System: linux

Re: HTTP Streaming over DVR

Postby Sébastien Escudier » 15 Sep 2011 09:40

look at the source of the page in the browser, and look for the real url of the stream it opens.

Moriquendi
Blank Cone
Blank Cone
Posts: 74
Joined: 31 May 2011 16:22

Re: HTTP Streaming over DVR

Postby Moriquendi » 15 Sep 2011 10:09

look at the source of the page in the browser, and look for the real url of the stream it opens.
made a quick check and this is the whole source of the webpage i can access;

Code: Select all

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>DVR Remote</title> <meta http-equiv="MSThemeCompatible" content="yes"> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"> <script type="text/javascript"> function relayout(width, height) { var fitWidth = width; var fitHeight = height; if (width / 4 > height / 3) fitWidth = height / 3 * 4; else fitHeight = width / 4 * 3; var x = (width - fitWidth) / 2; var y = (height - fitHeight) / 2; var w = fitWidth; var h = fitHeight; remote.style.left = x; remote.style.top = y; remote.style.width = w; remote.style.height = h; } function onload() { relayout(document.documentElement.clientWidth, document.documentElement.clientHeight); } function onresizeend() { relayout(document.documentElement.clientWidth, document.documentElement.clientHeight); } function onresize() { relayout(document.documentElement.clientWidth, document.documentElement.clientHeight); } </script> <style type="text/css"> html { overflow: hidden; } body { background: #000000; margin: 0px 0px 0px 0px; overflow: hidden; } </style> </head> <body onload="onload()" onresizeend="onresizeend()" onresize="onresize()"> <object id="remote" classid="clsid:173d9e48-b527-4aa0-a929-30b446002aa8" codebase="DVRemoteAx.cab#version=2,1,0,48" style="background-color:#000000; position:absolute; left:0px; top:0px; width:768px; height:576px" > <param name="UserName" Value="admin"> </object> </body> </html>
I couldnt see any direct urls but im thinking maybe this line does the trick;

Code: Select all

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">
. Maybe this IE emulator working at the background, making it possible for only "browser-like" programs to monitor the actual content? Again, I am very new to this topic, and I am just thinking loudly.

Sébastien Escudier
Big Cone-huna
Big Cone-huna
Posts: 853
Joined: 06 Nov 2008 08:38
Operating System: linux

Re: HTTP Streaming over DVR

Postby Sébastien Escudier » 15 Sep 2011 10:12

does it work only with a plugin ? you can also check with wireshark if you see an url opening befor it receives the video packets

Moriquendi
Blank Cone
Blank Cone
Posts: 74
Joined: 31 May 2011 16:22

Re: HTTP Streaming over DVR

Postby Moriquendi » 15 Sep 2011 12:43

Sorry Sébastien,

it took me a while to investigate thru the logs. Well, there is only 1 more URI that the client side requests from the server, that is a dll request named "DVRobot.dll". The request is something like
Expert Info (Chat/Sequence): GET /manifest/DVRobot.dll HTTP/1.1\r\n
So i opened a browser and downloaded this dll from http://xxx.xxx.xxx.xxx/manifest/DVRobot.dll (it is like a 528 kb file) and copied this into the vlc folder and also into the plugins folder(with the hope that something magical will happen :P) Of course nothing changed, but at least we know that this dll is somehow needs to be introduced to the program, rite?

Sébastien Escudier
Big Cone-huna
Big Cone-huna
Posts: 853
Joined: 06 Nov 2008 08:38
Operating System: linux

Re: HTTP Streaming over DVR

Postby Sébastien Escudier » 15 Sep 2011 13:06

well I don't know then


Return to “VLC stream-output (sout)”

Who is online

Users browsing this forum: No registered users and 7 guests