ç§ã«ã¯äž»ãªä»äºãããããã€ããæ°ããããžãã¹ãå§ãããããšããå人ãããŸãã 圌ãã¯ç¬èªã®ãã®ãæã£ãŠããŸãããåžžã«æ¡å€§ããããšèããŠããŸãã ãããŠã圌ãããããæããã³ã«ã圌ãã¯ã¢ããã€ã¹ãæ±ããŠç§ã®ãšããã«æ¥ãŸãã ã¢ã€ãã¢ã¯è¡šé¢ã«ãããŸãã ãç§ãã¡ã¯ã€ã³ã¿ãŒãããããã£ãŠããŸãããç§ãã¡ã®ãããã¯ã«ã€ããŠäœãä»ã®ããšãããŸããããã ãã®ãããé»è©±ããããã¯ãŒã¯æ©åšã®è²©å£²ããã¹ãã£ã³ã°ãã³ãã±ãŒã·ã§ã³ã«åãçµã¿å§ããŸããã åé¡ã®å£°æã¯ãã€ãç§ãåã°ããŠããŸããã ãé»è©±ãããŸãããããããã¹ãã£ã³ã°ãããŸããããã æåŸã«ãããããªç£èŠãããŸããããã§ããã
ããã§ããããªç£èŠã«åŸäºããŸããããããã倧åãªTKã§ããã
ãã®èšäºãšçµéšããçãŸãããã®ã«ã€ããŠèª¬æããŸãã
æŽå²çã«ãç§ã¯
å¶æ¥æ
åœè
ãç§ã«å²ãŸããŠ
ããçµç¹ã§åããŠãããç§ã¯
ãã«ã¿ãã¢äººã®æè¡å°éå®¶ã§ãããïŒé·ãéïŒåºãç¥ãããŠããŸãã
ç§ã®è·æ¥ãšããŠã¯ãè€æ°ã®ãµãŒãã¹æè¡éšéãèšç«ããŸãããã人ã
ã¯æè²ã¬ãã«ïŒããã°ã©ããŒïŒã«ã¯éããŸããã§ããã ã ãããããç§ã¯åžžã«ç®ã®åã«ããŸããITã«é¢ãããã¹ãŠã®è³ªåã¯ç§ã®ããã§ãã ç§ã¯é·å¹Žã«ããã£ãŠITã®åéã§åœŒãïŒå人ïŒã«çžè«ããŠããŸãããã·ã¹ãã ããã³ããžãã¹ã¢ããªã¹ãã§ãããç¡æã§ã:)ã ãããã¯ã«ç§»ããŸãã
人ã
ãç§ã®ãšããã«æ¥ãŠããããªç£èŠã欲ããããšèšã£ããã ç§ã¯å¿ããã£ãã®ã§ããã®æ¹åã«çºå±ããææ¬²ã¯ãããŸããã§ããã 圌ãã¯å¥ã®ãå°éå®¶ããèŠã€ãã6ãæéç·Žç¿ããŸããããäœãçµãããŸããã§ããã ç·ã¯ãçŸããããšå€æãããã¹ãŠãæã£ãŠæ©èœãããšããããŸãŒã³ãã€ã³ããšåãã®åã«ã€ããŠæããŸããã 6ãæéãåäžã®æ¢è£œã®ãœãªã¥ãŒã·ã§ã³ã§ã¯ãªããåäžã®ã¯ã©ã€ã¢ã³ãã§ããããŸããã
圌ãã¯ç²ããŠããŸããç§ã®ãšããã«æ¥ãŠãã ããã ç§ã¯ãã§ã«10幎é圌ããšä»äºãããŠããã®ã§ãããäžåºŠåéºã«åå ããŠã¿ãŸãããã ç³ãåºã¯ããã€ãã®ããã«ããã®ç¬åµæ§ã𿬿°ãã«æéãåããŸããã
-ã¯ã©ãŠããããªç£èŠãè¡ãããã æè³0ãæ©åšã賌å
¥ããŸããéçº0ã§ã¯ããéã50/50ã«åå²ããŸãã
ãšããã§ãé¢ä¿è
ã®æ°ã«å¿ããŠããéã¯åžžã«50/50ããŸãã¯30/30/30ã§ããã
ãªãã ãšæããŸããã çµéšã¯äžèŠã§ã¯ãããŸããã ïŒãã ããããªããå¹
åºãåéã®å°éå®¶ã§ããããã®ãããã¡ã€ã«ã幎ã«äžåºŠå€æŽããå Žåã¯åœ¹ã«ç«ã¡ãŸãã:)
ã¢ã€ãã¢ã¯ãã¯ã©ãŠããããªç£èŠã欲ããããšè¡šæãããŠããŸãã
äœãã販売ããã人ã¯ãåžžã«äœãã販売ããŸãã
ãã®ãäœãããæãã€ããŠã¢ã¬ã³ãžããããšã¯æ®ã£ãŠããŸãã
ã¯ã©ãŠãã ãé0ãè² è·ã倧ããã ãããã£ãŠããããã®åé¡ã解決ãããããã¿ã€ããäœæããå¿
èŠããããŸãã
äžèŠãOpenstackã«èœã¡ãŸããã ãã®å Žã§èšç®èœåãæ¡åŒµããããšã¯å¯èœã§ãããå®è¡ããã«ã¯ããã€ãã®ãã·ã³ãå¿
èŠã§ãã ããŸããŸãªããŒãžã§ã³ã®Openstackã§éãã ãããããé©åãªãœãªã¥ãŒã·ã§ã³ãæ¢ãå¿
èŠããããŸããã ç§ã®ç®ã¯Proxmoxã«èœã¡ãŸããã
æåã¯ç§ãã¡ã®ããŒãºã«åã£ãçŽ æŽããããœãªã¥ãŒã·ã§ã³ã ãããŠããããã®VMã¯åžžã«ããŒããŠã§ã¢ãŸãã¯å¥ã®ã¯ã©ãŠãã«ç§»æ€ã§ããŸãã
é銬ã®è³Œå
¥ã«åå ããæéã¯ãããŸããã§ããããç§ã®éЬè»éЬã賌å
¥ãããåã«ïŒIntel Core i5-3570K @ 3.40GHz
ãããŠããã®ã¢ã€ãã³ã§ã¯ãã¯ã©ãŠãç£èŠãè¡ãå¿
èŠããããŸããã äžæ¡çãªç¶æ³:)ããããç§ãã¡ã¯ãããããŸããã
ããçš®ã®è²©å£²ã·ã¹ãã ãæãã€ããŸãã ã»ãã¥ãªãã£ã·ã¹ãã ããã³æ°éèŠåäŒç€Ÿãšé¢ä¿ã®ãããã¹ãŠã®çš®é¡ã®ã¢ã©ãŒããšé£æºãããããªç£èŠïŒå·ã¬ãã«ã§ã¯æãéããããŸãïŒã
æªæ¥ã«ãã ãã£ãŠããã«
1ïŒé£ç¶é²ç»
2ïŒã¢ãŒã·ã§ã³é²ç»
3ïŒã¿ã€ã ã©ãã¹é²ç»
4ïŒSMSéç¥
5ïŒåããæ€åºããããšãã®ã»ãã¥ãªãã£ã»ã³ã¿ãŒããã®åŒã³åºãã ãªãã¬ãŒã¿ãŒã¯ã¬ã³ãŒãã確èªãããã§ãããåŒã³åºããã¯ã©ã€ã¢ã³ãã«éç¥ããŸãã
ã¢ã¹ã¯ã¯ã®æ°éèŠåäŒç€Ÿã¯å¹Žã
æ¡å€§ããŸãã
Mi Policeã¯æ¯å¹Žãã»ãã¥ãªãã£ããžãã¹ã®éãæžãããŠããŸãã ãã®ãããããããã¹ãŠãåŸã
ã«å人ãã¬ãŒããŒã«å¿ã³å¯ã£ãŠããŸãã
äžè¬çãªã·ã¹ãã ã¯æ¬¡ã®ããã«ãªããŸããã

ã«ã¡ã©ã¯ããããããŒããŠã§ã¢ã«æèŒãããã»ãã¥ãªãã£ã«çµã³ä»ããããŸãã ãã®ããŒããŠã§ã¢ã¯ãOpenWrtäžã®ãœãããŠã§ã¢ã¯ã©ã€ã¢ã³ããŸãã¯ããŒããŠã§ã¢ãœãªã¥ãŒã·ã§ã³ã®ããããã§ãã RPCã«ã¯ãçç±ããããŸãã ã¢ã€ãã¢ã¯2ã€ã®ã¢ãžã¥ãŒã«ãäœæããããšã§ããã 1ã€ã¯å®å
šãªã³ã³ãœãŒã«ã§ãã ããã«ãããã³ã³ãœãŒã«ãå¶åŸ¡ãã2çªç®ã®ã°ã©ãã£ãã¯ã¢ãžã¥ãŒã«ã§ããéã«åã蟌ãããšãã§ããŸãã ããã«ãããã©ãããã§ãéçãå¶åŸ¡ã§ããŸãã ãŠãŒã¶ãŒã®ã³ã³ãã¥ãŒã¿ãŒããµããŒãã³ã³ãã¥ãŒã¿ãŒãªã©ãã ãŸããã«ã¡ã©ããã®ã¹ããªãŒã ãšéæ¢ãã¬ãŒã ãæšæºåããã«ã¯ãæåã®ã¢ãžã¥ãŒã«ãå¿
èŠã§ãã ç§ãã¡ããã§ã«èµ°ã£ããããªè
ºã 圌ãã¯ãããã¿ã€ãã«é©ããŠãããçµéšããã£ãã ãã®éçã®ããžãã¯ããµãŒããŒã«è»¢éããããšã誰ãçŠæ¢ããŠããŸããã
çŸåšãh264åç©åããã£ã¹ã¯ã«é§åããæ€åºåšãšåæ§ã®ãããããweb +ã«åãä»ããæ¹æ³ã«ã€ããŠã¿ã³ããªã³ãšãã³ã¹ããããããã¯ãã¹ãŠi5ã«é©åããŸãã
ZoneMinderã¯åªããã·ã¹ãã ãããããŸãããã4å°ã®ã«ã¡ã©ã远å ããåŸã4ã€ã®ã·ã¹ãã ã³ã¢ãã¹ãŠã70ïŒ
以äžããŒãããŸããã 圌ãã¯ããã«åœŒãæšãŠãŸããã
ãããã¿ã€ãã®ããã«ã圌ãã¯VLCãåããŸããã ããã¯é·ãééçºãããŠããŠãããå€ãã®äººã«ãã£ãŠå®è¡ãããããã€ãã®ãããžã§ã¯ãã§äœåºŠã䜿çšããŠããŸãã
解決ããå¿
èŠãããå°ãªããšã2ã€ã®ã¿ã¹ã¯ããããŸã
1ïŒãããã¯ãŒã¯ãžã®çºè¡
2ïŒã¹ããªãŒã ãèšé²ãã
ã«ã¡ã©ã®åç©åã¯ãrtspã¹ããªãŒã ãšhttpã¹ããªãŒã ã§æ§æãããŠããŸãã VLCã¯ãã¹ãŠãå®è¡ã§ããŸãã VLMã䜿çšããããšã«ããŸããã tlenetãšhttpãå¶åŸ¡ããŸãã
ãªã³ã¯ã¯å
¥åãåºåã§ãã£ãŒãããŸã
"#{$transcode}std{access=http{mime={$this->mime}},mux=ts{use-key-frames},dst=*:{$this->getPort()}/{$this->path}}";
çä¿¡URLããHTTPã¹ããªãŒã ãååŸããŸãã
HTTPã¯ç§ãã¡ã«ãšã£ãŠãã䟿å©ã§ããïŒ hginxã§é§åããè² è·ã忣ããæå·åã§ããŸãã httpsã«éä¿¡ããŸãã
1ã¯ã©ã€ã¢ã³ã-1 vlcããã»ã¹ã
éçºè
ã¯1人ããããªããããPHPã§ãããã¿ã€ããã¹ã¯ãªããåããããšã«ããŸãããæéãçããè³éã0ã§ãã
éå§ã³ãã³ãã ïŒå®æããã³ãŒããæäŸããŸããå¿
èŠã«å¿ããŠã³ãã³ããåãåºãããšã¯é£ãããããŸããïŒ
$vlc_ifs = "-I http --http-host=0.0.0.0 --http-port {$this->getHttpPort()} -I telnet --telnet-port {$this->getTelnetPort()} --telnet-password ".TLPWD; if(VLC_USE_LOG) $vlc_logs = "--extraintf=http:logger --file-logging --log-verbose 0 --logfile {$this->getLogFile()}"; else $vlc_logs = '--extraintf=http';
ãã§ã«ã©ã€ãã¹ããªãŒã ãããã®ã§ãããããæžã蟌ãããšãã§ããŸãã
return "#std{access=file{append},mux=ts{use-key-frames},dst=$filePath.avi}";
VLMã¯ç°¡åã«äœæãããŸã
ã«ã¡ã©ã§3ã€ã®ã¹ããªãŒã ãäœæã§ããŸã
1ïŒã©ã€ãã¹ããªãŒã
2ïŒé²ç»ã¹ããªãŒã
3ïŒã¢ãŒã·ã§ã³ã¹ããªãŒã
$this->execute("new {$this->cam} broadcast enabled loop");
ãã¬ã€ã§ããããããã
$command = "control {$this->cam} $command";
ããšãã°ã10ç§ããšã«åæ¢ãã$ filePathã倿ŽããŠãåçããã ãã§ååã§ãã
ãšã³ããªãå«ãäžé£ã®ãã¡ã€ã«ãååŸããŸãã ã¢ãŒã·ã§ã³åçããã³åæ¢çšã
VLCã¯ããwith usããšãwith themãã®äž¡æ¹ã§å®è¡ããããšãã§ããŸãã
åãã®åé¡ã
ã¢ãŒã·ã§ã³ããŒã«ããããŸãã 圌ã¯Jpegã«ãã£ãŠåããèšç®ããŸãã ã«ã¡ã©ã¯Jpegã§éæ¢ç»åãæäŸããŸãã å¿
èŠãªãã®ãåŸãããåºåã§ãããªãŒãºãã¬ãŒã ã䜿çšããŠããã£ãŒããç§»åããŸãã
ç§ãã¡ã«ã¯åç©åããããããããã·ã¹ãã ãäœãå¿
èŠããããŸãã
ããã§ ãã¹ãŠãã·ã¹ãã ãšåŒã³ãå°æ¥çã«ã·ã¹ãã èŠçŽ ãæå€±ãªãã«äº€æã§ããããã«ãççµåã·ã¹ãã ãäœæããããšããŸãã
ã«ã¡ã©ãVlcãã¢ãŒã·ã§ã³ããã£ã¹ã¯ãžã®èšé²ããªã³ã©ã€ã³æŸéããããŸãã
Vlcãšã¢ãŒã·ã§ã³ã¯UNIXããã»ã¹ã§ãã ããããæªéãšåŒã³ãŸãã ïŒæœè±¡ã¯ã©ââã¹ããŒã¢ã³ïŒ
ã«ã¡ã©ããã®2ã€ã®ã¹ããªãŒã ãå¿
èŠã§ããããšãããããŸããã jpegããã³h264ã
ã·ã¹ãã ã«ãšã³ãã£ãã£ãäœæãã
user-dvr-cam-stream
ãŠãŒã¶ãŒ-ãŠãŒã¶ãŒ
ããŒã¢ã³ãšããŒã¢ã³ã«é¢é£ä»ããããã«ã¡ã©ãæ
åœããdvrã·ã¹ãã
cam-ã«ã¡ã©ãšã³ãã£ãã£ãç©ççãªã«ã¡ã©èšå®ãšä»®æ³ã¹ããªãŒã ãä¿åããŸã
ã¹ããªãŒã -ã¹ããªãŒã ãä»»æã®æœè±¡ã¹ããªãŒã ã
Straemã¯ãã·ã¹ãã ã®ãæŽæ°ãã®ç¬éã«éå§ã忢ãäžå®å®ãããã«ãããããšãã§ãããããã®ã€ãã³ãã§ã圌èªèº«ãäœããã¹ãããæ±ºå®ããŸãã
æœè±¡å®£èšã®ã¿ã§æ§æãããã·ã¹ãã å
±éãšã³ãã£ãã£ãååŸããŸãã
ã·ã¹ãã ãæ§ç¯ããããã®äžè¬çãªå·¥å ŽãååŸããŸãã abstract class AbstractFactory { private static $instance = null; private $commands; public static function getInstance(){ if(self::$instance == null) self::$instance = new static; return self::$instance; } protected function addPermanentCommand(ICommand $command){ $this->commands[] = $command; } protected function addCommands(ISystem $system){ foreach($this->commands as $command) $system->addPermanentCommand($command); }
ããã«ãããã«ã¡ã©ã®ã¹ããªãŒã ãå®å
šã«ãã³ã°ãããŠãæãã€ããããšãåŠçããããšãã§ããŸãã ãããŠãå°ãªããšãäœããã®åœ¢ã§åç©åãå¶åŸ¡ããããšãã§ããŸãã ïŒãããã¿ã€ãã¯åœŒã§ãïŒ
äž»å補åã¯VLCã§ãããããã·ã¹ãã çšã«VLCãã«ã¹ã¿ãã€ãºãå§ããŸãã
æœè±¡ã¯ã©ã¹VlcStreamãäœæããŠStreamãæ¡åŒµããã¯ã©ã¹LiveVlcStreamã§VlcStreamãæ¡åŒµããŸãã
VlcStreamã¯Vlmãšãåéãã§ãïŒ$ this-> vlm = new HttpVlmïŒ$ this-> getVlcNameïŒïŒã 'localhost'ãHTSTART + $ this-> cam-> getDVRïŒïŒ-> getIDïŒïŒïŒ;ïŒ
éå§ã忢ãåŠçã§ããŸã
次ãž
æœè±¡ã¯ã©ã¹VlcReStreamã¯VlcStreamãæ¡åŒµããŸã
VlcReStream-LiveVlcStreamãå
¥åãšããŠåãåããŸã
ã¯ã©ã¹RecVlcStreamã¯VlcReStreamãæ¡åŒµããŸã-ãããªãRamããNfsã«ãç§»åãããŸã
Vlcã¯Daemonã¯ã©ã¹ãæ¡åŒµãããšã³ãã£ãã£DVRã«å«ãŸããŸãã
DVRã¯éå§ãšåæ¢ãåŠçããŸã
public function start() { $this->log(__FUNCTION__); $this->startDaemons(); $this->startCams(); }
ã«ã¡ã©ãèµ·åãããšãã«ã¡ã©ã«é¢é£ä»ããããŠãããã¹ãŠã®ã¹ããªãŒã ãéå§ãããŸãã
ã€ãŸã UNIXããã»ã¹Vlcãã¢ãŒã·ã§ã³ãHTTPãä»ããVLMãå®è¡ããŸãã
忢ã¯éã®é åºã§çºçããŸãã
VLCã®ä»£ããã«ã奜ããªãã®ã䜿çšã§ããŸãã
ããããã¯ã©ãŠãã«ã¯ãããªç£èŠããããŸãã ãããã£ãŠãSQLããã³åæ§ã®ã¹ãã¬ãŒãžã·ã¹ãã ãå¿
èŠã§ãã
åäœäžã®ã·ã¹ãã ã¯æ¬¡ã®ãšããã§ãã
å·¥å Ž <?php namespace system2; class BBFactory extends AbstractFactory { public function createSystem() { $system = parent::createSystem(); $e = new BBLogMotionEvent(Motion::EVENT_MOTION_START); $system->addEventHandler($e); $e = new BBLogMotionEvent(Motion::EVENT_MOTION_STOP); $system->addEventHandler($e); $e = new BBLogMotionEvent(Motion::EVENT_MOTION_DETECTED); $system->addEventHandler($e); $e = new BBLogMotionEvent(Motion::EVENT_CAMERA_LOSS); $system->addEventHandler($e); $recMotionEvent = new BBRecMotionEvent(Motion::EVENT_MOTION_START); $system->addEventHandler($recMotionEvent); $recMotionEvent = new BBRecMotionEvent(Motion::EVENT_MOTION_STOP); $system->addEventHandler($recMotionEvent);
createSystemãèå³ã®ããã€ãã³ãã远å ããŸãã Systemã¯ã©ã¹ãåŠçãæ
åœããŸãã
EVENT_MOTION_STARTãEVENT_MOTION_STOPãEVENT_MOTION_DETECTEDãEVENT_CAMERA_LOSS
ããã¯moton configããåŒã³åºããããã®ã§ã
main.phpã€ãã³ãuid cid event_nameãã©ã¡ãŒã¿ãŒãžã®åŒã³åºãããããŸã
ã·ã¹ãã ã¯ã©ã¹ããããåŠçããŸãã
10åããšã«cronã§ïŒä»»æã®æ°ã®é±å±±ã§1åïŒãã·ã¹ãã æŽæ°ãåŒã³åºãããŸãã
æŽæ°ã«ãããšããã¹ãŠã®ãµãã·ã¹ãã ã®æŽæ°ãš
$this->executeCommands(); $this->executePermanentCommands();
ã³ãã³ãã¯ãµãã·ã¹ãã ãã¹ããŒãããã®ã§ãããRotateRecCommandãªã©ã®å®æ°ã³ãã³ãã¯å€ãã¬ã³ãŒããåé€ãã圹å²ãæãããŸãã
ããŒã¢ã³ãäœæãããšãã«ãããšãã°BBDaemonWatchdogãªã©ã®è¿œå æ©èœããããããŒã¢ã³ãèœã¡ããã©ãããç£èŠããŸãã
ãŠãŒã¶ãŒã¯ãã§ã«ããŒã¿ããŒã¹ããäœæãããŠããŸãã
次ã«ãããŒã¿ããŒã¹ããã«ã¡ã©ã æ°žç¶çãªã¿ã€ã ã©ãã¹ã³ãã³ãã远å ãããŸãã ããã¯ãTIME_LOCK_TIMELAPSEïŒ8æéïŒã§1åã ãæ©èœããMysqlã§æ
å ±ããããããŸã
æåŸã®-æãè峿·±ãã®ã¯ã¹ããªãŒã ã§ãã
ã¹ããªãŒã ã¢ãŒã·ã§ã³ãã©ã€ããhlsïŒHTTPã©ã€ãã¹ããªãŒã ïŒãrecãmtnãflvãäœæãããŸãã
ã©ã€ã-éåžžã®http
recãmtn-èšé²çšã®ã¹ããªãŒã
ãã©ãŠã¶ãžã®åºåçšã®hlsããã³flvã
GithubïŒ
github.com/Calc86/dvr/tree/master/bin/system2ããžãã¯ããããŸãã ãç©çåŠããå¿
èŠã§ãã
å€ãã®ã«ã¡ã©ãå€ãã®ã¹ã¬ããã1ã€ã®ããã»ããµããããŸãã
ãã¹ãŠã®èšé²ã¯ramdiskã§è¡ãããhlsã¯ramdiskã§è¡ãããvlcæ§æã¯ãã©ã³ã¹ã³ãŒãã£ã³ã°ãè¡ãããªãããã«è¡ãããŸãã ã¯ãªãŒã³ã¹ããªãŒã ãåé€ãããã¯ãªãŒã³ã¹ããªãŒã ãä¿æãããŸããã RAMãã£ã¹ã¯ããã¹ãã¬ãŒãžïŒãããã¿ã€ãã¯NFSïŒãžã®ç§»è¡ã¯ãffmpegã³ãŒããã¯ã³ããŒãééããŸãã
ããã«ãããhtml5ãšã³ããªãä»ãããã©ãŠã¶ã§ã®åºåãèš±å¯ãããŸããã
3çš®é¡ã®ã¬ã³ãŒãã 10åããšã®ã¹ã©ã€ã¹ã8æéã§ã®ã¢ãŒã·ã§ã³é²ç»ããã³ã¿ã€ã ã©ãã¹é²ç»ã«ããå®å
šé²ç»ã1ç§ããã3åã衚瀺ãããŸãã
ã·ã¹ãã ã®æ§ç¯ã¯ãã³ãŒãã®å€æŽãæå°éã«æããªãããå°ççã«ãDVRïŒèšé²æ©ïŒã®ç¬ç«ããé
眮ãèšç»ããŸããã
å®è£
ããããã®
1ïŒå¿
èŠãªãã¹ãŠã®ã¬ã³ãŒã
2ïŒwebãhlsãflashãhtml5ã®ã¬ã³ãŒããžã®åºåãåç©åã³ãŒããã¯h264ã¯h264ã«äœãã§ããã®ã§ãWebã«è¡ããŸã§ãmjpegã«åºåïŒå€ãããã¢ã§ãªã³ã©ã€ã³ãããªãèŠèŽã§ããŸãïŒ
3ïŒhttpsãnginxã»ãã¥ãªãã£URLãªã©ã䜿çšãããã®æããããã®ã®Webã€ã³ã¿ãŒãã§ã€ã¹ã
Onvifçµç±ã§ã«ã¡ã©ã远å ããã®ããããŸãã
ãããžã§ã¯ãã忢ããçç±ã
1ïŒå£²ãè¡ãã®æªãïŒè²©å£²å¡ãšè²©å£²ã·ã¹ãã ã®äžè¶³ïŒ
2ïŒè³éäžè¶³ïŒå°ãªããšããã®ãããªã·ã¹ãã ã«ã¯ç®¡çè
ãå¿
èŠã§ãïŒ
3ïŒç©ºãæéã®äžè¶³
4ïŒå®å
šã«ç¡æã®éçº
5ïŒãã¹ãçšã«ã«ã¡ã©ã賌å
¥ããããªã
6ïŒå°åºè©è°äŒãšã®åæã¯ãããŸãããããã¹ãã«ç¡æã®ã«ã¡ã©ãèšçœ®ããæåã¯ãããŸããã
7ïŒåžžçšè·ã倿ŽããŸãã ãããè¡ãæ©äŒã¯ãããŸããã
8ïŒãã¶ã€ã³ã®è³Œå
¥ãšã¹ã©ã€ã¹ã®è³Œå
¥ããã ããå°æ¥ã¯èªåã§åãå»ãã ã
9ïŒã·ã¹ãã ãåžžã«ç£èŠãã人ãããªãïŒã¢ãŒã·ã§ã³ãšvlcã®äž¡æ¹ã«ãã°ãèŠã€ãããŸããããã·ã¹ãã 管çã«ãã£ãŠè§£æ±ºãããŸãïŒ
10ïŒãã®å¹Žã®ãã»ãŒã«ã¹ãã³ãã¯ãåäžã®è²©å£²ããã³äŸ¡æ Œèšå®ã·ã¹ãã ãæãã€ããŸããã§ããã
11ïŒç§ã¯ãäž»èŠãªä»äºã§ãããããªç£èŠãšå人çãªç掻ã®åµé ãšäžŠè¡ããŠå€ãã®ããšãããŸããã
12ïŒèª°ãã亀æžãã責任ã«ã€ããŠãã«ããæã¡ãŸãã:)
ãããã3人ã®ã¯ã©ã€ã¢ã³ããããŠã圌ãã¯ãããæ°ã«å
¥ã£ãŠããŸããã 圌ãã¯ã·ã¹ãã ã«ãéãããããã«ã¡ã©ãèšçœ®ããããã ãã«ãéãåããŸããã
ãããã©ã®ããã«èŠããã:)

ãããã¯ãããŸãããã°ãVLCãšèœãšã穎ã«ã€ããŠããã«è©³ãã説æããŸãã ãããŠããç¥è©±äžã®ãéçãšããã䜿ã£ãå®éšã«ã€ããŠãã