شما هنوز به سیستم وارد نشده اید.

#1 2016-07-22 23:34:06

morealaz
عضو
از : کرمان
ثبت شده: 2016-03-19
ارسال ها: 298

آموزش اتصال به دوربین های مدار بسته تحت شبکه با استفاده از پروتکل RTSP

دوربین های مدار بسته تحت شبکه معمولاً امکان دریافت تصویر با استفاده از پروتکل RTSP رو فراهم می کنند. خوبیه این موضوع اینه که میشه از نرم افزارهای پخش و ضبط ویدئو که از پروتکل rtsp پشتیبانی میکنند مثل vlc و mpv و mplayer و ffmpeg و غیره به راحتی جهت مشاهده و ضبط تصاویر دوربین به خصوص در لینوکس استفاده کرد و دیگه نیازی به نرم افزار اختصاصی دوربین وجود نداره. پروتکل rtsp یه پروتکل شبکه است که برای استفاده از اون باید آدرس محتوایی رو که میخواهی ببینی بلد باشی. این آدرس مثل تمام آدرسهای URL از بخش های مختلفی تشکیل شده که به صورت زیر هست:

rtsp://<user:password@><ip address><:port number>/<media info>

قسمتهایی که داخل <..> نوشته شده باید با مقادیر واقعی مربوط به مدیایی که میخواهید ببینید جایگزین بشه که در اینجا منظور اطلاعات دوربین شماست.

  • <@user:password> با نام کاربری و پسورد اتصال به دوربین جایگزین میشه. البته ممکنه دوربین شما به این صورت اطلاعات کاربری رو نگیره که در این صورت نیازی به وارد کردن این اطلاعات نیست، البته در صورت استفاده باید علامت : و @ حتماً به همین ترتیبی که نشون داده شده وارد بشه.

  • <ip address>آدرس دوربین شماست مثلاً: 192.168.1.10

  • <port number:> با شماره پورت مورد استفاده برای rtsp جایگزین میشه. پورت پیشفرضی که برای rtsp استفاده میشه 554 هست. که در صورتیکه از این شماره پورت استفاده بشه نیازی به وارد کردن این شماره وجود نداره ولی اگر از یه پورت دیگه استفاده بشه باید حتماً مقدارش بعد از علامت : به همین ترتیب بیاد مثلاً به این صورت:

    rtsp://192.168.1.10:554
  • مقدار <media info> برای دوربین های مختلف فرق میکنه و مهمترین بخش آدرس همین قسمته که باید فرمت اونو از اطلاعاتی شرکت سازنده دوربین یا از اینترنت، با توجه به نوع دوربین پیدا کنید تا بتونید تصویر دوربین رو داشته باشید.

مثلاً برای دوربین من که یه دوربین چینی بود فرمت نهایی آدرس به این صورت شد:

rtsp://192.168.1.10:554/user=admin&password=admin&channel=0&stream=0.sdp?real_stream--rtp-caching=100

بعد از اینکه لینک rtsp دوربین رو به این ترتیب آماده کردید، میتونید از لینک در نرم افزارهای مختلفی که از rtsp پشتیبانی میکنند استفاده کنید. مثلا، من از mpv برای دیدن تصاویر دوربین به این ترتیب استفاده کردم:

$ mpv --no-osc "rtsp://192.168.1.10:554/user=admin&password=admin&channel=0&stream=0.sdp?real_stream--rtp-caching=100"

یادتون باشه که لینک رو حتماً داخل علامت نقل قول قرار بدید تا مشکلی به خاطر بعضی کاراکترها خاص داخل آدرس پیش نیاد.

حالا یه نکته کاربردی مفید:
ممکنه به هر دلیلی نتونید فرمت لینک دوربینتون رو پیدا کنید، حالا چکار باید کرد؟
اکثر دوربینهای تحت شبکه یه رابط تحت وب هم دارن که اجازه میدن از طریق مرورگر وب هم تصاویر رو ببینید. برای دوربین من هم این مورد وجود داشت ولی چون از activex استفاده میکرد من نمیتونستم تو لینوکس ازش استفاده کنم. ولی یه استفاده دیگه ازش کردم. وقتی که صفحه وب دوربین رو در مرورگر باز میکنید، این صفحه خودش معمولاُ در پس پرده از rtsp برای دریافت تصاویر دوربین استفاده میکنه. حالا اگر بتونید سورس کد صفحه وب رو ببینید میتونید با کمی جستجو فرمت لینک rtsp دوربین رو داخلش پیدا کنید.
برای نمونه من از طریق خود مرورگر source صفحه وب رو نگاه کردم که بخشی از اون به این صورت بود:

<!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>
    <title>NetSurveillance</title>
    <meta http-equiv="Content-Style-Type" content="text/css" />
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

    <script type="text/javascript" src="m.jsp"></script>

    <script type="text/javascript"> 

var g_SoftWareVersion="V4.02.R11.00002531.10010.230800.00000";
var g_HardWareVersion="Unknown";
var g_mBuildTime="2016/4/27 10:41:27";
var g_SerialNo="4a0f41b2bbe249fa";
var g_VideoInChannel=1;
var g_AlarmInChannel=2;
var g_AlarmOutChannel=1;
var g_AudioInChannel=1;
var g_DigChannel=0;


var g_channelNumber=1;
var g_user="morealaz";
var g_port="554";
 var g_address =document.location.hostname;

if (g_address == "")
{
//	g_address = "10.2.4.46";
}

var iLanguage=100;
var g_passWord="1369";
 

 var g_bSafari=false;
    </script>

    <script type="text/javascript" src="mt.js"></script>
     <script type="text/javascript">
        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('IE: ' + Sys.ie);
//         if (Sys.firefox) document.write('Firefox: ' + Sys.firefox);
//         if (Sys.chrome) document.write('Chrome: ' + Sys.chrome);
//         if (Sys.opera) document.write('Opera: ' + Sys.opera);
        if (Sys.safari) 
        {
            g_bSafari=true;   
            /*document.write('Safari: ' + Sys.safari);*/
        }
        
    </script>

      ........

داخل کد اصلی صفحه چیزی پیدا نکردم ولی اگه دقت کنید داخل این صفحه یه فایل javascript به نام "mt.js" استفاده شده. من اون فایل رو باز کردم. اینم بخشی از محتوای اون فایل:

/*
 *  author: duchangjiang	
 */


eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('4 3(h) {    k n=$(8[h].l).c();    e(!7)    {        n.i(\'m\',6);        n.i(\'d\',5);    }     2    {        n.i(\'m\',a);        n.i(\'d\',9);        }    n.i(\'g-j\',\'0\');    n.i(\'g-f\',\'0\');      1(b[h]);}',62,24,'0px|clearInterval|else|fake|function|g_H|g_W|g_bigView|g_channelStatu|g_playViewH|g_playViewW|g_setInterval|getLast|height|if|left|margin|nChannel|setStyle|top|var|vfID|width|wrap'.split('|'),0,{}))
var OneView= new Array(6);
OneView[0]="<div id='";
OneView[1]="' style='border:0;width:100%;height:100%;position:absolute;'><object classid='CLSID:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B' id='mo'"
+"width='100%' height='100%' codebase='http://www.apple.com/qtactivex/qtplugin.cab'>"
+"<param name='src' value='back.GIF'/><param name=\"allowFullScreen\" value=\"true\"/>  
<param name='qtsrc' value='rtsp://"+g_address+":"+g_port+"/user="+g_user+"&password="+g_passWord+"&channel=";

OneView[2]="&stream=";
OneView[3]=".sdp?real_stream--rtp-caching=100'/>   <param name='autoplay' value='true'/>"
+"<param name='autohref' value='True'/><param name='target' value='myself '/>  <param name='href' value='javaScript:void(0)' />"
+"<param name='loop' value='false'/><param name='wMode' value='transparent'/><param name='controller' value='false'/>   <param name='scale' value='tofit'/>"
+"<embed src='back.GIF' name='movie1' qtsrc='rtsp://"+g_address+":"+g_port+"/user="+g_user+"&password="+g_passWord+"&channel=";
OneView[4]="&stream=";
OneView[5]=".sdp?real_stream--rtp-caching=100' controller='false'  width='100%' "
+" height='100%' loop='false' scale='tofit' wmode='Transparent' autoplay='true' kioskmode='true'"
+" enablejavasript='true' href='javaScript:void(0)' target='Myself' allowfullscreen=\"true\"  bgcolor='black' plugin='quicktimeplugin' "
+" type='video/quicktime' pluginspage='http://www.apple.com/quicktime/'>   </embed></object></div>";

   .......

اگه خوب نگاه کنید اینجا میتونیم رد پایی از rtsp رو ببینیم. منظورم این تیکه از کده:

<param name='qtsrc' value='rtsp://"+g_address+":"+g_port+"/user="+g_user+"&password="+g_passWord+"&channel=";

OneView[2]="&stream=";
OneView[3]=".sdp?real_stream--rtp-caching=100'/>

میبینید چه جوری تیکه تیکه لینک rtsp رو می سازه. من از این استفاده کردم و با کمی سعی و خطا در نهایت به این آدرس رسیدم:

rtsp://192.168.1.10:554/user=admin&password=admin&channel=0&stream=0.sdp?real_stream--rtp-caching=100

البته با جایگزین کردن پارامترهای مربوط به دوربین خودم.
شما هم به همین ترتیب با کمی جستجو می تونید به فرمت لینک دوربین خودتون دسترسی پیدا کنید.

آفلاین

#2 2016-07-22 23:46:22

Arcush
Moderator
ثبت شده: 2015-09-15
ارسال ها: 1,328

پاسخ: آموزش اتصال به دوربین های مدار بسته تحت شبکه با استفاده از پروتکل RTSP

تشکر و خسته نباشید شدید. بنابراین من به یکی از اهدافم رسیدم. مدتی بود تو فکر این بودم که چنین سیستمی رو راه اندازی کنم و وقتی از خونه دور هستم، با چیزی مثل ssh ورودی خونه رو ببینم.

آفلاین

#3 2016-08-17 11:28:03

hurd
عضو
از : همدان
ثبت شده: 2015-12-27
ارسال ها: 122

پاسخ: آموزش اتصال به دوربین های مدار بسته تحت شبکه با استفاده از پروتکل RTSP

سلام
ممنون
با وبکمی که بدون استفاده مونده  میشه احیاش کرد و تصاویر رو روی شبکه انتقال داد چیکار می تونم بکنم


اول قوانین خدا را به طور کامل رعایت کنیم بعد انتظار حمایت کامل رو از خدا داشته باشیم.

آفلاین

#4 2016-08-17 12:00:25

morealaz
عضو
از : کرمان
ثبت شده: 2016-03-19
ارسال ها: 298

پاسخ: آموزش اتصال به دوربین های مدار بسته تحت شبکه با استفاده از پروتکل RTSP

اگر میتونه تصاویر رو روی شبکه انتقال بده، و اگر اینکار رو از طریق پروتکل RTSP انجام بده، میتونید ازش به عنوان یه دوربین مدار بسته استفاده کنید. منتها یه مساله که وجود داره اینه که دوربین خودش مستقیما تصاویر رو روی شبکه انتقال میده یا باید از طریق دیگری اینکار رو انجام بده.
به جز تصاویر دوربین شما میتونید رسانه های دیگری رو هم از طریق پروتکل RTSP بر روی شبکه انتقال بدید. برنامه vlc به عنوان نمونه این امکان رو فراهم میکنه که به عنوان سرور RTSP عمل کنه و رسانه دلخواه شما رو بر روی شبکه ارسال کنه.

آفلاین

#5 2016-08-19 13:21:52

hurd
عضو
از : همدان
ثبت شده: 2015-12-27
ارسال ها: 122

پاسخ: آموزش اتصال به دوربین های مدار بسته تحت شبکه با استفاده از پروتکل RTSP

سلام
ممنون
نه منظورم یک وبکم ساده هستش که بشه باهاش کاری کرد


اول قوانین خدا را به طور کامل رعایت کنیم بعد انتظار حمایت کامل رو از خدا داشته باشیم.

آفلاین

#6 2017-03-05 17:07:45

hurd
عضو
از : همدان
ثبت شده: 2015-12-27
ارسال ها: 122

پاسخ: آموزش اتصال به دوربین های مدار بسته تحت شبکه با استفاده از پروتکل RTSP


اول قوانین خدا را به طور کامل رعایت کنیم بعد انتظار حمایت کامل رو از خدا داشته باشیم.

آفلاین

پانوشت انجمن

پشتیبانی توسط تیم آرچ لینوکس ایران و نیرو گرفته با FluxBB