From: tosiara <to...@gm...> - 2013-11-11 11:11:09
|
You need to find MJPG url. It's pretty easy: paste url into Firefox - and you should see only video. If you see a web page or video with decorations/buttons - it's wrong url. Only video When you find such url - you can use it with motion's netcam_url Here is user manual taht you need to read before using your IP camera: http://www.grandstream.com/products/surveillance/gxv3601/documents/gxv3601_usermanual_english.pdf On Mon, Nov 11, 2013 at 12:33 PM, test24 <te...@ma...> wrote: > On manufacturers site present ActiveX etc. plugins for IE,Mozilla > I think that its driver / JPEG encoding method not supported > > I put camera to the MJPEG - same result > > Here is the link > > http://www.grandstream.com/index.php/products/ip-video-surveillance/gxv3601-hd > > > Camera support RTP/RTCP, RTSP > > Here is the Web page code with live video present : > > <!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"/> > <link rel="stylesheet" href="Css/home.css" type="text/css"/> > <script> > var cbstate; > var chnn; > var bri, con, sat; > </script> > <script for="embed1" event="LinkState(chnn, cbstate)" language="javascript"> > if(cbstate == 0) > { > //embed1.VideoParamGet(); > } > </script> > <script language="javascript"> > function LinkState(chnn, cbstate) > { > if(cbstate == 0) > { > embed1.VideoParamGet(); > sld1.SetValue(bri, 10); > sld2.SetValue(con, 10); > sld3.SetValue(sat, 10); > } > } > </script> > <script for="embed1" event="ClickSel(activex_url, activex_ch)" > language="javascript"> > embed1.VideoParamGet(); > sld1.SetValue(bri, 10); > sld2.SetValue(con, 10); > sld3.SetValue(sat, 10); > </script> > <script language="javascript"> > function ClickSel(activex_url, activex_ch) > { > embed1.VideoParamGet(); > sld1.SetValue(parseInt(bri), 10); > sld2.SetValue(parseInt(con), 10); > sld3.SetValue(parseInt(sat), 10); > } > </script> > <script> > var v1, v2, v3, v4; > </script> > <script for="embed1" event="VPNotify(v1, v2, v3, v4)" language="javascript"> > bri = v2; con = v3; sat = v4; > //alert(bri); > sld1.SetValue(bri, 10); > sld2.SetValue(con, 10); > sld3.SetValue(sat, 10); > </script> > <script language="javascript"> > function VPNotify(v1, v2, v3, v4) > { > bri = v2; con = v3; sat = v4; > sld1.SetValue(parseInt(bri), 10); > sld2.SetValue(parseInt(con), 10); > sld3.SetValue(parseInt(sat), 10); > } > </script> > <script> > var MD_ch0, ulMask0; > </script> > <script for="embed1" event="MDNotify(MD_ch0, ulMask0)" > language="javascript"> > $('#md_alarming').css("backgroundPosition","0 -14px").attr("title", > a_md_alarming); > </script> > <script> > function MDNotify(MD_ch0, ulMask0) > { > $('#md_alarming').css("backgroundPosition","0 > -14px").attr("title", a_md_alarming); > } > </script> > <script> > var PROBE_ch0, device_num0=4; > </script> > <script for="embed1" event="AlarmNotify(PRO_ch0, device_num0)" > language="javascript"> > if(device_num0 == 0) > { > $('#probe_alarming').css("backgroundPosition","-14px > -14px").attr("title", a_probe_alarming); > } > </script> > <script> > function AlarmNotify(PRO_ch0, device_num0) > { > if(device_num0 == 0) > { > $('#probe_alarming').css("backgroundPosition","-14px > -14px").attr("title", a_probe_alarming); > } > } > </script> > <script for="embed1" event="EventNotify(ocxid, type, param)" > language="javascript"> > change_chnn(); > </script> > <script> > function EventNotify(ocxid, type, param) > { > change_chnn(); > } > </script> > <script language="JavaScript" src="js/jquery.js"/> > <script language="JavaScript" src="js/jquery.corner.js"/> > <script language="JavaScript" src="js/dragbar.js"/> > <script language="JavaScript" src="js/home.js"/> > <script language="JavaScript" src="js/logo.js"/> > <script language="JavaScript" src="js/new_ln.js"/> > <script language="JavaScript" src="js/lan.js"/> > <title>GXV3601HD IP Camera</title> > </head> > <body>ev > <div id="main_container" style="border-top-left-radius: 10px; > border-top-right-radius: 10px; border-bottom-left-radius: 10px; > border-bottom-right-radius: 10px;"> > <div id="main_container_inner"> > <div id="top_inner" class="top_inner"> > <table width="100%" height="20" border="0" cellpadding="0" cellspacing="0"> > <tbody> > <tr> > <td align="left" class="top_inner_text_title"> > <span id="product_model">GXV3601HD</span> > </td> > <td align="right" class="top_inner_text"> > <button id="md_alarming" class="md_probe_alarming" > style="background-position: 0px 0px;" title="Motion Detection Alarm"> > </button>ev > <button id="probe_alarming" class="md_probe_alarming" > style="background-position: -14px 0px;" title="DI Alarm"> </button>ev > <select name="par_obj_width_height" id="par_obj_width_height" > style="display:none;">ev > <option value="104858800">1600*1200 (4:3)</option> > <option value="83887040">1280*960 (4:3)</option> > <option value="83886800">1280*720 (16:9)</option> > <option value="67109632">1024*768 (4:3)</option> > <option value="52429392">800*592 (4:3)</option> > <option value="52429280">800*480 (16:9)</option> > <option value="41943520">640*480 (4:3)</option> > <option value="41943408">640*368 (16:9)</option> > <option value="31457648">480*368 (4:3)</option> > <option value="31457552">480*272 (16:9)</option> > <option value="20971760">320*240 (4:3)</option> > <option value="20971696">320*176 (16:9)</option> > <option value="16777408">256*192 (4:3)</option> > <option value="16777360">256*144 (16:9)</option> > <option value="10485872">160*112 (4:3)</option> > <option value="20971759">EPTZ</option> > <!--320*239--> > </select> > <select name="sec_obj_width_height" id="sec_obj_width_height" > style="display:none;"> > <option value="104858800">1600*1200 (4:3)</option> > <option value="83887040">1280*960 (4:3)</option> > <option value="83886800">1280*720 (16:9)</option> > <option value="67109632">1024*768 (4:3)</option> > <option value="52429392">800*592 (4:3)</option> > <option value="52429280">800*480 (16:9)</option> > <option value="41943520">640*480 (4:3)</option> > <option value="41943408">640*368 (16:9)</option> > <option value="31457648">480*368 (4:3)</option> > <option value="31457552">480*272 (16:9)</option> > <option value="20971760">320*240 (4:3)</option> > <option value="20971696">320*176 (16:9)</option> > <option value="16777408">256*192 (4:3)</option> > <option value="16777360">256*144 (16:9)</option> > <option value="10485872">160*112 (4:3)</option> > <option value="20971759">EPTZ</option> > <!--320*239--> > </select> > </td> > </tr> > </tbody> > </table> > </div> > <div id="video_right" align="center" class="video_right"> > <table width="100%" border="0" align="center" cellpadding="0" > cellspacing="0"> > <tbody> > <tr> > <td height="20"> </td> > </tr> > <tr> > <td align="center" valign="middle"> > <table width="150" height="150" border="0" align="center" cellpadding="0" > cellspacing="0"> > <tbody> > <tr> > <td> > <button id="ptz_left_up" class="ptz_move_img" style="background-position: > 0px 0px;" disabled="true"/> > </td> > <td> > <button id="ptz_up" class="ptz_move_img" style="background-position: -50px > 0px;" title="Up"/>ev > </td> > <td> > <button id="ptz_right_up" class="ptz_move_img" style="background-position: > -100px 0px;" disabled="true"/> > </td> > </tr> > <tr> > <td> > <button id="ptz_left" class="ptz_move_img" style="background-position: 0px > -50px;" title="Left"/>ev > </td> > <td> > <button id="ptz_auto" class="ptz_move_img" style="background-position: -50px > -50px;" title="Auto"/>ev > </td> > <td> > <button id="ptz_right" class="ptz_move_img" style="background-position: > -100px -50px;" title="Right"/>ev > </td> > </tr> > <tr> > <td> > <button id="ptz_left_down" class="ptz_move_img" style="background-position: > 0px -100px;" disabled="true"/> > </td> > <td> > <button id="ptz_down" class="ptz_move_img" style="background-position: -50px > -100px;" title="Down"/>ev > </td> > <td> > <button id="ptz_right_down" class="ptz_move_img" style="background-position: > -100px -100px;" disabled="true"/> > </td> > </tr> > </tbody> > </table> > </td> > </tr> > <tr> > <td height="20" align="center"> </td> > </tr> > <tr> > <td height="10" align="center"> > <img src="Images/line.gif" width="188" height="1"/> > </td> > </tr> > <tr> > <td align="center" valign="middle"> > <table width="150" border="0" align="center" cellpadding="0" > cellspacing="0"> > <tbody> > <tr> > <td width="20" height="25"> > <button id="ptz_zoom_out" name="jian" class="ptz_adj_img" > style="background-position: -20px 0px;" title="Zoom out"/>ev > </td> > <td align="center"> > <span title="">ZOOM</span> > </td> > <td width="20"> > <button id="ptz_zoom_in" name="jia" class="ptz_adj_img" > style="background-position: 0px 0px;" title="Zoom in"/>ev > </td> > </tr> > <tr> > <td height="25"> > <button id="ptz_focus_near" name="jian" class="ptz_adj_img" > style="background-position: -20px 0px;" title="Focus Near"/>ev > </td> > <td align="center"> > <span title="">FOCUS</span> > </td> > <td> > <button id="ptz_focus_far" name="jia" class="ptz_adj_img" > style="background-position: 0px 0px;" title="Focus Far"/>ev > </td> > </tr> > </tbody> > </table> > <table width="150" border="0" cellspacing="0" cellpadding="0"> > <tbody> > <tr> > <td height="25" align="left"> > <span title="">PTZ SPEED</span> > </td> > <td align="right"> > <select name="select" class="ptz_speed_select" id="ptz_speed_value">ev > <option value="1">1</option> > <option value="2">2</option> > <option value="3">3</option> > <option value="4">4</option> > <option value="5">5</option> > <option value="6">6</option> > <option value="7">7</option> > <option value="8">8</option> > <option value="9">9</option> > <option value="10">10</option> > <option value="11">11</option> > <option value="12">12</option> > <option value="13">13</option> > <option value="14">14</option> > <option value="15">15</option> > <option value="16" selected="selected">16</option> > <option value="17">17</option> > <option value="18">18</option> > <option value="19">19</option> > <option value="20">20</option> > <option value="21">21</option> > <option value="22">22</option> > <option value="23">23</option> > <option value="24">24</option> > <option value="25">25</option> > <option value="26">26</option> > <option value="27">27</option> > <option value="28">28</option> > <option value="29">29</option> > <option value="30">30</option> > <option value="31">31</option> > <option value="32">32</option> > </select> > </td> > </tr> > <tr> > <td height="25" align="left"> > <span title="">IMAGE COLOR</span> > </td> > <td align="right"> > <button id="ptz_default" class="ptz_adj_img" style="background-position: > -60px 0px;" title="Normal"/>ev > <button id="ptz_default_v" class="ptz_adj_img" style="background-position: > -80px 0px;" title="Vivid"/>ev > </td> > </tr> > </tbody> > </table> > </td> > </tr> > <tr> > <td height="20" align="center"> </td> > </tr> > <tr> > <td align="center"> > <table width="150" border="0" align="center" cellpadding="0" > cellspacing="0"> > <tbody> > <tr> > <td width="70%" align="left" class="title3"> > <span title="">BRIGHTNESS</span> > </td> > <td align="right"> > <input name="Input" class="value3" id="v_brighness" readonly="readonly" > typename="sldValue"/> > </td> > </tr> > <tr> > <td colspan="2"> > <div class="slider3" id="idSlider1" style="position: relative;"> > <div class="bar3" id="idBar1" style="position: absolute; left: 82px;"/>ev > </div> > <div align="right"> > <script> > var sld1 = new Slider("idSlider1", "idBar1", { > onMove: function(){ > ID("v_brighness").value = > Math.round(this.GetValue()); > // alert($("exposure").value); > } > }); > > sld1.MinValue = parseInt("0", 10); > sld1.MaxValue = parseInt("5", 10); > > > //alert(bar_items.length); > > sld1.onMove(); > > //sld1.SetValue(parseInt($("exposure").value ,10)); > sld1.Ease = true; > </script> > </div> > </td> > </tr> > <tr> > <td width="70%" align="left" class="title3"> > <span title="">CONTRAST</span> > </td> > <td align="right"> > <input class="value3" id="v_contrast" readonly="" typename="sldValue"/> > </td> > </tr> > <tr> > <td colspan="2" align="right"> > <div class="slider3" id="idSlider2" style="position: relative;"> > <div class="bar3" id="idBar2" style="position: absolute; left: 137px;"/>ev > </div> > <script> > var sld2 = new Slider("idSlider2", "idBar2", { > onMove: function(){ > ID("v_contrast").value = > Math.round(this.GetValue()); > // alert($("exposure").value); > } > }); > > sld2.MinValue = parseInt("0", 10); > sld2.MaxValue = parseInt("3", 10); > > > //alert(bar_items.length); > > sld2.onMove(); > > //sld2.SetValue(parseInt($("exposure").value ,10)); > sld2.Ease = true; > </script> > </td> > </tr> > <tr> > <td width="70%" align="left" class="title3"> > <span title="">SATURATION</span> > </td> > <td align="right"> > <input class="value3" id="v_saturation" readonly="" typename="sldValue"/> > </td> > </tr> > <tr> > <td colspan="2" align="right"> > <div class="slider3" id="idSlider3" style="position: relative;"> > <div class="bar3" id="idBar3" style="position: absolute; left: 69px;"/>ev > </div> > <script> > var sld3 = new Slider("idSlider3", "idBar3", { > onMove: function(){ > ID("v_saturation").value = > Math.round(this.GetValue()); > // alert($("exposure").value); > } > }); > > sld3.MinValue = parseInt("0", 10); > sld3.MaxValue = parseInt("8", 10); > > > //alert(bar_items.length); > > sld3.onMove(); > > //sld3.SetValue(parseInt($("exposure").value ,10)); > sld3.Ease = true; > </script> > </td> > </tr> > <tr> > <td colspan="2" align="left"> > <span title="">VIEW SIZE:</span> > <select name="view_size_id" class="view_size_select" id="view_size_id">ev > <option value="0" selected="selected" title="">Window Size</option> > <option value="1" title="">Real Size</option> > </select> > </td> > </tr> > <tr> > <td colspan="2" align="left"> </td> > </tr> > <tr> > <td colspan="2" align="left"> </td> > </tr> > <tr> > <td colspan="2" align="left"> > <span id="configuration" title="">Configuration</span>ev > </td> > </tr> > <tr> > <td colspan="2" align="left"> > <span id="language" title="">Language</span>ev > </td> > </tr> > </tbody> > </table> > </td> > </tr> > </tbody> > </table> > </div> > <div id="video_left"> > <div id="video_plugin" class="video_plugin"> > <table width="100%" height="100%" border="0" align="center" cellpadding="0" > cellspacing="0"> > <tbody> > <tr> > <td align="center" valign="middle" id="video_plugin_obj"> > <script language="javascript"> > var outputie = ""; > outputie += '<object > classid="clsid:ab1408a0-10f6-40ba-984d-074d7bdc3126" > codebase="../CAB/VideoPlugine.cab#version=3,1,0,39" width="800" height="592" > name="embed1" hspace="0" vspace="0" align="middle" id="embed1">' > outputie += '<embed hspace="800" vspace="592" align="middle"></embed>' > outputie += '</object>' > var outputother = ""; > outputother += '<embed id="embed1" name="embed1" > type="application/x-vnd-npGS_Plugins-plugin" width=800 height=592 > onclicksel=ClickSel onmdnotify=MDNotify onvpnotify=VPNotify > onlinkstate=LinkState onalarmnotify=AlarmNotify>' > var outputchrome = ""; > outputchrome += '<embed id="embed1" name="embed1" > type="application/x-vnd-npGS_ChromePlugins-plugin" width=800 height=592 > onclicksel=ClickSel onmdnotify=MDNotify onvpnotify=VPNotify > onlinkstate=LinkState onalarmnotify=AlarmNotify>' > > var Sys = {}; > var ua = navigator.userAgent.toLowerCase(); > var s; > (s = ua.match(/msie ([\d.]+)/)) ? Sys.ie = s[1] : > (s = ua.match(/firefox\/([\d.]+)/)) ? Sys.firefox = s[1] : > (s = ua.match(/chrome\/([\d.]+)/)) ? Sys.chrome = s[1] : > (s = ua.match(/opera.([\d.]+)/)) ? Sys.opera = s[1] : > (s = ua.match(/version\/([\d.]+).*safari/)) ? Sys.safari = s[1] : > 0; > > if (Sys.ie) > { > document.write(outputie); > //$('#video_plugin_obj').html(outputie); > } > else if(Sys.chrome) > { > document.write(outputchrome); > } > else > { > document.write(outputother); > //$('#video_plugin_obj').html(outputother); > } > </script> > <embed id="embed1" name="embed1" > type="application/x-vnd-npGS_Plugins-plugin" width="800" height="592" > onclicksel="ClickSel" onmdnotify="MDNotify" onvpnotify="VPNotify" > onlinkstate="LinkState" onalarmnotify="AlarmNotify"/> > </td> > </tr> > </tbody> > </table> > </div> > </div> > <div id="videoctrlbutton" align="center" class="videoctrlbutton"> > <button id="video_ctrl_start" class="video_ctrl_button_img" > style="background-position: -32px 0px;" title="Stop"/>ev > <button id="video_ctrl_capture" class="video_ctrl_button_img" > style="background-position: -64px 0px;" title="Capture"/>ev > <button id="video_ctrl_record" class="video_ctrl_button_img" > style="background-position: -96px 0px;" title="Start recording"/>ev > <button id="video_ctrl_listen" class="video_ctrl_button_img" > style="background-position: -288px 0px;" title="Start listening"/>ev > <button id="video_ctrl_talk" class="video_ctrl_button_img" > style="background-position: -224px 0px;" title="Start talking"/>ev > <button id="video_ctrl_playback" class="video_ctrl_button_img" > style="background-position: -320px 0px;" title="Playback"/>ev > <button id="video_ctrl_config" class="video_ctrl_button_img" > style="background-position: -352px 0px;" title="Local Configuration"/>ev > </div> > </div> > </div> > <div id="language_list" style="display: none;"> > <ul id="ul_language_list"> > <li id="chinese">ev > <span title="">简体中文</span> > </li> > <li id="english" class="li_select">ev > <span title="">English</span> > </li> > <li id="russian">ev > <span title="">Pусский</span> > </li> > </ul> > </div> > </body> > </html> > <!-- > @echo off > > regsvr32 -u -s %systemroot%\system32\GSViewerX.ocx > > del %systemroot%\system32\GSViewerX.ocx > del %systemroot%\system32\GSNetClient.dll > del %systemroot%\system32\hi_h264dec_w.dll > del %systemroot%\system32\hi_mjpeg_dec_w.dll > del %systemroot%\system32\lib_VoiceEngine_dll.dll > del %systemroot%\system32\Replay.exe > exit > --> > > Понедельник, 11 ноября 2013, 11:30 +02:00 от tosiara <to...@gm...>: > > According to the specs: > > Support advanced real-time H.264 (with multi-streaming-rate) and > Motion JPEG at 720P resolution, variable bit rate & frame rate, and > video watermark > > So since MJPEG is supported - it should work with motion. But you > maust specify camera's MJPG url. You are using: > > http://192.168.65.60:8765 > > Are you sure it's MJPEG url? > > Check user's manual. You need to configure camera to stream MJPG and > find out which url to use > > On Mon, Nov 11, 2013 at 11:20 AM, test24 <te...@ma...> wrote: >> Hello >> >> Running Motion on FreeBSD to grab stream from Grandstream HD 3601 IP >> Camera >> I found that this camera may be unsupported: >> >> Here is the log file part: >> >> [0] Processing config file /usr/local/etc/motion_cam1.conf >> [0] Motion 3.2.12 Started >> [0] Thread 1 is from /usr/local/etc/motion_cam1.conf >> [1] Thread 1 started >> [0] motion-httpd/3.2.12 running, accepting connections >> [0] motion-httpd: waiting for data on port TCP 8080 >> [1] libjpeg decompression failure on first frame - giving up! >> [1] Could not fetch initial image from camera >> [1] Motion continues using width and height from config file(s) >> [1] Resizing pre_capture buffer to 1 items >> [1] Started stream webcam server in port 8081 >> [1] Retrying until successful connection with camera >> [1] libjpeg decompression failure on first frame - giving up! >> [1] Retrying until successful connection with camera >> [1] libjpeg decompression failure on first frame - giving up! >> ^C[0] httpd - Finishing >> [0] httpd Closing >> >> >> Here is >> # more motion_cam1.conf >> >> v4l2_palette 2 >> # width 640 >> # heigh 480 >> framerate 10 >> quality 100 >> auto_brightness on >> >> netcam_http 1.0 >> netcam_url http://192.168.65.60:8765 >> netcam_userpass test:1234 >> text_left Cam1 >> webcam_maxrate 30 >> >> Is the Grandstream really unsupported or please help >> Thanks >> >> >> >> >> ------------------------------------------------------------------------------ >> November Webinars for C, C++, Fortran Developers >> Accelerate application performance with scalable programming models. >> Explore >> techniques for threading, error checking, porting, and tuning. Get the >> most >> from the latest Intel processors and coprocessors. See abstracts and >> register >> >> http://pubads.g.doubleclick.net/gampad/clk?id=60136231&iu=/4140/ostg.clktrk >> _______________________________________________ >> Motion-user mailing list >> Mot...@li... >> https://lists.sourceforge.net/lists/listinfo/motion-user >> http://www.lavrsen.dk/twiki/bin/view/Motion/WebHome >> > > ------------------------------------------------------------------------------ > November Webinars for C, C++, Fortran Developers > Accelerate application performance with scalable programming models. Explore > techniques for threading, error checking, porting, and tuning. Get the most > from the latest Intel processors and coprocessors. See abstracts and > register > http://pubads.g.doubleclick.net/gampad/clk?id=60136231&iu=/4140/ostg.clktrk > _______________________________________________ > Motion-user mailing list > Mot...@li... > https://lists.sourceforge.net/lists/listinfo/motion-user > http://www.lavrsen.dk/twiki/bin/view/Motion/WebHome > > > > -- > Test User > > ------------------------------------------------------------------------------ > November Webinars for C, C++, Fortran Developers > Accelerate application performance with scalable programming models. Explore > techniques for threading, error checking, porting, and tuning. Get the most > from the latest Intel processors and coprocessors. See abstracts and > register > http://pubads.g.doubleclick.net/gampad/clk?id=60136231&iu=/4140/ostg.clktrk > _______________________________________________ > Motion-user mailing list > Mot...@li... > https://lists.sourceforge.net/lists/listinfo/motion-user > http://www.lavrsen.dk/twiki/bin/view/Motion/WebHome > |