Автор Тема: Motion - ???  (Прочитано 61302 раз)

Оффлайн Vladimir

  • Full
  • ****
  • Сообщений: 6838
  • Репутация: +1/-0
    • http://
    • Личное сообщение (Оффлайн)
Motion - ???
« Ответ #20 : Апреля 08, 2009, 21:40:42 »
ТНК(Виктор, опубликовано на fsfnov.ru):
В свое время заказывал Sample на фирме Texas Instruments интересные микрухи PCM2900 (сейчас тоже можно, вот ссылка _http://www.ti.com/hdr_b_samples). Это аудиокодек с интерфейсом USB. И вот появилось желание собрать звуковую USB карту. Результатами хочу поделиться с вами...
[attachment=842:IMG_2316.JPG]
PS Стоимость изготовления получилась около 20 рублей.

Вложения:
Комментарий к файлу: Даташит на микросхему
[attachment=839:pdf.tar.gz]

Комментарий к файлу: Фото собраной "карты" (вход левого и правого каналов выведены на разные раземы)
[attachment=840:f.tar.gz]

Комментарий к файлу: Печатная плата (в формате Sprint Layout)
[attachment=841:lay.tar.gz]

Вот как видит ее Debian Etch

usb 1-1: new full speed USB device using uhci_hcd and address 2
usb 1-1: configuration #1 chosen from 1 choice
usbcore: registered new driver hiddev
input: Burr-Brown from TI               USB Audio CODEC  as /class/input/input1
input: USB HID v1.00 Device [Burr-Brown from TI               USB Audio CODEC ] on usb-0000:00:07.2-1
usbcore: registered new driver usbhid
drivers/usb/input/hid-core.c: v2.6:USB HID core driver
usbcore: registered new driver snd-usb-audio

В форточках тоже работает без проблем...
« Последнее редактирование: Апреля 08, 2009, 21:43:22 от Vladimir »

Оффлайн Vladimir

  • Full
  • ****
  • Сообщений: 6838
  • Репутация: +1/-0
    • http://
    • Личное сообщение (Оффлайн)
Motion - ???
« Ответ #21 : Апреля 09, 2009, 01:50:16 »
Вариант захвата из потока одного кадра:

<!-- camera1.php-->
<?

$camurl="http://localhost:8081/";

$boundary="\n--";

$f = fopen($camurl,"r");

   if(!$f)
   {
        //**** проблема с открытием файла
        echo "error";
   }
    else
  {
        //**** все OK!
         while (substr_count($r,"Content-Length") != 2) $r.=fread($f,512);

         $start = strpos($r,"\xff");
         $end   = strpos($r,$boundary,$start)-1;
         $frame = substr("$r",$start,$end - $start);

         header("Content-type: image/jpeg");
         echo $frame;
   }

fclose($f);

?>

В страничке вставляем теги:
<img src="camera1.php">  
« Последнее редактирование: Апреля 09, 2009, 01:51:49 от Vladimir »

Оффлайн Vladimir

  • Full
  • ****
  • Сообщений: 6838
  • Репутация: +1/-0
    • http://
    • Личное сообщение (Оффлайн)
Motion - ???
« Ответ #22 : Апреля 09, 2009, 01:53:31 »
ТНК:

Нашел интересный проект для работы с LPT портом. http://sourceforge.net/projects/pport/
Как тебе такой вариант опроса порта? Приду домой обязательно попробую...

Вот пример конфигурационного файла:

## This is the configuration file for pportd.
## Its syntax is documented documented here.

## Quick explanation:
##     A monitored pin line (MPL) has 3 fields:
##    
##     First field contains the number which must be one of the status pins
## to be monitored. This can be one of 10, 11, 12, 13 and 15.
##     Second field contains the command to execute if the pin is in the high
## state. That means, there is a signal on the input pin or the pin is grounded.
##     Third field contains the command to execute if the pin is low. That means
## if it is left untouched. WARNING: This command, as oposed to the command in the
## second field, will be executed indefinitely until the pin is set high again.
## Reasons for that consist in various user requirements to implement a repetitive
## option.
##
## NOTE: All the ':' in the lines syntax are _required_.

## NOTE: I didn't include the ability to turn on or off pins in pportd since
## one can run pport and all its options directly in the ACTION field. If I
## would have included it in the daemon too, it would partially have gotten
## too big and on the other hand, it could never have supported so many
## pin features like pport.      - Rain@home.ro

#
#                   mandatory   mandatory       optional      mandatory         optional      mandatory
##                     |           |               |               |               |              |
### Syntax: <the number of the pin>:<enabled command when pin high>:<disabled action when pin low>:

## Example:


15:halt -p:pport -t 2:   # when pin 15 is grounded execute: halt -p, when it is NOT gounded
                                # toggle pin 2 on and off
                                # quite good for an alarm no? hehe

11:::       #when pin 11 is grounded do nothing, notice the ':'s. they delimit empty fields.
                          
                          
13:/usr/bin/mail -r Rain@home.ro -s Hello Rain@home.ro < Makefile.am::

               # ^-- when pin 13 is grounded send me some mail.
               #     when it is NOT grounded, do nothing ( "::" ).


12:/bin/sh ~/shellscipt.sh::   #execute ~/shellscript.sh when pin 12 is
            #grounded.

10:sync::       # sync the disk buffer when pin 10 is grounded, otherwise, do nothing.

# End of file

Оффлайн Vladimir

  • Full
  • ****
  • Сообщений: 6838
  • Репутация: +1/-0
    • http://
    • Личное сообщение (Оффлайн)
Motion - ???
« Ответ #23 : Апреля 09, 2009, 16:25:04 »
Цитата: Vladimir
ТНК:

Нашел интересный проект для работы с LPT портом. http://sourceforge.net/projects/pport/
Как тебе такой вариант опроса порта? Приду домой обязательно попробую...

Витя, посмотри вот это:
Вложение:
[attachment=844:portcontrol.tar]
Очень простое решение для работы с LPT от Tomi Engdahl.
Скачиваешь, "make", "make install" и у тебя в /usr/local/sbin появляются два файла: lptout и portcontrol
Для записи в порт, например единичек, выполняем:
/usr/local/sbin/lptout 0xFFнулей:
/usr/local/sbin/lptout 0x00Посмотреть состояние, например "регистра данных" на экране:
/usr/local/sbin/portcontrol LPT1DATA read print binВпрочем, в файле "readme" все подробно расписано.
GUI-control он же написал:
[attachment=845:menu.sh.tar.gz]
Для работы в WEB, автор подготовил файлы: "control.php" и "controlfile.php"
Программу я поюзал, работает прекрасно, можно цеплять к "событиям" в "motion"
« Последнее редактирование: Апреля 09, 2009, 16:25:40 от Vladimir »

Оффлайн Vladimir

  • Full
  • ****
  • Сообщений: 6838
  • Репутация: +1/-0
    • http://
    • Личное сообщение (Оффлайн)
Motion - ???
« Ответ #24 : Апреля 10, 2009, 22:49:15 »
Цитата: Vladimir
ТНК:
Нашел интересный проект для работы с LPT портом pport.

Пакет программы pport, правда редхатовский, но debian нормально его принял,  взят здесь.

Оффлайн Vladimir

  • Full
  • ****
  • Сообщений: 6838
  • Репутация: +1/-0
    • http://
    • Личное сообщение (Оффлайн)
Motion - ???
« Ответ #25 : Апреля 16, 2009, 14:48:39 »
Пример на "с" считывания информации из регистра состояния порта LPT:
/*gcc -fno-builtin-exit myport.c -o myport*/
#include <stdio.h>
#include <unistd.h>
#include <sys/io.h>

#define BASEPORT 0x378 /* lp1 */

int main()
{
  /* Get access to the ports */
  if (ioperm(BASEPORT, 3, 1)) {perror("ioperm"); exit(1);}

  /* Set the data signals (D0-7) of the port to all low (0) */
  /*outb(0, BASEPORT);*/

  /* Sleep for a while (100 ms) */
  usleep(100000);

  /* Read from the status port (BASE+1) and display the result */
  unsigned char valport1 = 0;
  valport1 = inb(BASEPORT+1);
  if((valport1 & 0x08) == 0x08) {printf("status: %d\n", 1);} else {printf("status: %d\n", 0);}
  if((valport1 & 0x10) == 0x10) {printf("status: %d\n", 1);} else {printf("status: %d\n", 0);}
  if((valport1 & 0x20) == 0x20) {printf("status: %d\n", 1);} else {printf("status: %d\n", 0);}
  if((valport1 & 0x40) == 0x40) {printf("status: %d\n", 1);} else {printf("status: %d\n", 0);}
  if((~valport1 & 0x80) == 0x80) {printf("status: %d\n", 1);} else {printf("status: %d\n", 0);}
  /* We don't need the ports anymore */
  if (ioperm(BASEPORT, 3, 0)) {perror("ioperm"); exit(1);}

  exit(0);
}

/* end of myport.c */
Далее:
gcc -fno-builtin-exit myport.c -o myportВыполняем:
$sudo ./myportИтог (при низком уровне на 15 пине):
status: 0
status: 1
status: 1
status: 1
status: 1


Оффлайн Vladimir

  • Full
  • ****
  • Сообщений: 6838
  • Репутация: +1/-0
    • http://
    • Личное сообщение (Оффлайн)
Motion - ???
« Ответ #26 : Июня 17, 2009, 13:57:32 »
На lavrsen.dk опубликован новый клиент(c использованием PyQt4) для motion от MarcoMa:
Вот текст:

#!/usr/bin/python
# -*- coding: utf-8 -*-

import sys
from PyQt4 import QtGui, QtCore
import threading
from socket import *
import Queue
import time


class Conn(threading.Thread):
    JPEG_HEAD = """\xff\xd8"""
    JPEG_TAIL = """\xff\xd9"""
    #HOST = '172.16.24.56'

    def __init__(self, parent):
        threading.Thread.__init__(self, name='Conn')
        self._stopEvent = threading.Event()
        self.buf = ''
        self.parent = parent

    def join(self, timeout=None):
        self._stopEvent.set()
  
    def process(self):
        begin = end = 0
        while True:
            try:
                begin = self.buf.index(self.JPEG_HEAD, begin)
            except Exception, ex:
                #print 'no begin'
                time.sleep(0.1)
                break
          
            try:
                end = self.buf.index(self.JPEG_TAIL, begin) + len(self.JPEG_TAIL)
            except:
                #print 'no end'
                time.sleep(0.1)
                break
          
            img = self.buf[begin : end]
            begin = end
          
            self.parent.img_queue.put(img)
            #self.emit(QtCore.SIGNAL("show_picture(QString)"), '')
      
        self.buf = self.buf[begin:]
  
    def run(self):
      
        err_counter = 0
        while not self._stopEvent.isSet():
          
            self.sd = socket(AF_INET, SOCK_STREAM)
            self.sd.settimeout(16)
            try:
                self.sd.connect((self.parent.HOST, self.parent.PORT))
            except Exception, ex:
                print 'cannot connect to host:', ex
                self.sd.close()
                time.sleep(1)
              
                err_counter += 1
                if err_counter > 5:
                    self.parent.disconnect_slot()
                    self._stopEvent.set()
                continue
          
            while not self._stopEvent.isSet():
                try:
                    data = self.sd.recv(1024 * 64)
                    if data:
                        self.buf += data
                    else:
                        print 'link down'
                        break
                except Exception, ex:
                    print 'recv except: %s' %(ex)
                    break
              
                self.process()
              
                #print len(self.buf)
                #print '======================\n'


class ConnWindow(QtGui.QWidget):

    def __init__(self, parent):
        QtGui.QWidget.__init__(self)
        self.parent = parent
      
        grid_layout = QtGui.QGridLayout()
      
        if self.parent.HOST or self.parent.PORT:
            self.host_edit = QtGui.QLineEdit(self.parent.HOST, self)
            self.port_edit = QtGui.QLineEdit(str(self.parent.PORT), self)
            self.conn_btn = QtGui.QPushButton('done', self)
        else:
            self.host_edit = QtGui.QLineEdit('set host name here', self)
            self.port_edit = QtGui.QLineEdit('set port number here', self)
            self.conn_btn = QtGui.QPushButton('done', self)
        self.connect(self.conn_btn, QtCore.SIGNAL('clicked()'), self.done_slot)
      
        grid_layout.addWidget(self.host_edit, 0, 0)
        grid_layout.addWidget(self.port_edit, 1, 0)
        grid_layout.addWidget(self.conn_btn, 3, 3)
        self.setLayout(grid_layout)
      
        self.resize(320, 320)

    def done_slot(self):
        host = self.host_edit.text()
        port = self.port_edit.text().toInt()
      
        if port[1]:
            port = port[0]
            if (port > 65535 or port <= 0):
                QtGui.QMessageBox.warning(self, 'ERROR', 'Port should be a integer between 0 and 65535')
                return
        else:
            QtGui.QMessageBox.warning(self, 'ERROR', 'Port should be a integer')
            return
      
        sd = socket(AF_INET, SOCK_STREAM)
        try:
            sd.connect((host, port))
            sd.close()
        except Exception, ex:
            QtGui.QMessageBox.warning(self,"CANNOT ACCESS",'Cannot connect to service you given! Please input host name and port name again.\ndetail: %s' %(ex))
            return
      
        self.parent.HOST = host
        self.parent.PORT = port
        self.parent.connect_slot()
        self.close()


class Gui(QtGui.QWidget):
  
    def __init__(self):
        QtGui.QWidget.__init__(self)
      
        self.pic_label_frame = QtGui.QFrame(self)
        self.pic_label_frame.setGeometry(0, 0, 720, 540)
        self.pic_label = QtGui.QLabel(self.pic_label_frame)
        self.pic_label.setScaledContents(True)
        self.scroll = QtGui.QScrollArea(self.pic_label_frame)
        self.scroll.setWidget(self.pic_label)
        self.scroll.resize(720, 540)
        self.scroll.setWidgetResizable(True)
      
        self.cmd_frame = QtGui.QFrame(self)
        self.cmd_frame.setGeometry(0, 540, 720, 40)
        self.conn_btn = QtGui.QPushButton(self.cmd_frame)
        self.conn_btn.setGeometry(0, 10, 100, 30)
        self.conn_btn.setText('CONNECT')
        self.pic_label.setText('click "CONNECT" to setup host and port')
        self.connect(self.conn_btn, QtCore.SIGNAL('clicked()'), self.show_conn_window)
      
        self.img_queue = Queue.Queue()
        #self.connect(self.conn, QtCore.SIGNAL('show_picture(QString)'), self.show_picture_sig)
      
        self.timer = QtCore.QTimer(self)
        self.connect(self.timer,QtCore.SIGNAL("timeout()"),self.show_picture_timer)
      
        self.HOST = ''
        self.PORT = 0
        self.resize(720, 580)

    def connect_slot(self):
        self.disconnect_slot()
      
        self.conn = Conn(self)
        self.conn.start()
        self.timer.start()

    def disconnect_slot(self):
        self.timer.stop()
        if hasattr(self, 'conn'):
            self.conn.join()
        self.pic_label.setText('disconnected')

    #def show_picture_sig(self, data):
        #img = QtGui.QPixmap()
        #if img.loadFromData(self.img_queue.get_nowait()):
            #print 'showing'
            #self.pic_label.setPixmap(img)
        #else:
            #print 'not a image, cannot show'

    def show_conn_window(self):
        self.conn_win = ConnWindow(self)
        self.conn_win.show()
  
    def show_picture_timer(self):
        try:
            data = self.img_queue.get_nowait()
        except:
            return
      
        img = QtGui.QPixmap()
        if img.loadFromData(data):
            self.pic_label.setPixmap(img)
        else:
            print 'not a image, cannot show'


####
if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)
    run = Gui()
    run.show()
  
    app.exec_()
« Последнее редактирование: Июня 17, 2009, 14:36:22 от Vladimir »

Оффлайн Vladimir

  • Full
  • ****
  • Сообщений: 6838
  • Репутация: +1/-0
    • http://
    • Личное сообщение (Оффлайн)
Motion - ???
« Ответ #27 : Июля 28, 2009, 00:06:36 »
Здесь начата разработка нового приложения к "motion", которое будет состоять из серверной и клиентской(GUI) частей и предназначено для улучшения пользовательского интерфейса видеоприложения от Kenneth Lavrsen...
Новый вьювер с использованием OpenGL, конфигуратор motion, так же управление регистрами LPT порта и COM...
Часть функций к настоящему моменту уже реализована...  


Оффлайн Vladimir

  • Full
  • ****
  • Сообщений: 6838
  • Репутация: +1/-0
    • http://
    • Личное сообщение (Оффлайн)
Motion - ???
« Ответ #28 : Августа 30, 2009, 17:18:50 »
Изменение настроек камеры утилитой setv4l

Программа (Jeroen Vreeken) setv4l - это небольшая утилита командной строки для изменения настроек Video 4 Linux устройств.
Можно менять (если указанное устройство позволяет)
следующие настройки: Brightness, Hue, Colour, Contrast, Whiteness.
Для установки указываются значения от 0 до 65535.
[attachment=1049:setv4l_0.3.tar.gz]
Пример установки яркости для "Video0":
$ ./setv4l /dev/video0 brightness 32896

Оффлайн Vladimir

  • Full
  • ****
  • Сообщений: 6838
  • Репутация: +1/-0
    • http://
    • Личное сообщение (Оффлайн)
Motion - ???
« Ответ #29 : Ноября 17, 2009, 15:46:49 »
mjpg_streamer takes input from a v4l2 device and streams it in a format compatible with motion
[attachment=1161:screenshot.jpg]
"http://www.lavrsen.dk/foswiki/bin/view/Motion/MjpgStreamer"

Оффлайн SergGT

  • User
  • *
  • Сообщений: 1
  • Репутация: +0/-0
    • Личное сообщение (Оффлайн)
Motion - ???
« Ответ #30 : Декабря 14, 2009, 01:34:00 »
Подскажите код html как заставить firefox открывать в новой вкладке в разрешении к примеру 640 на 480 камеру на которую кликнули мышкой?

Оффлайн Vladimir

  • Full
  • ****
  • Сообщений: 6838
  • Репутация: +1/-0
    • http://
    • Личное сообщение (Оффлайн)
Motion - ???
« Ответ #31 : Декабря 14, 2009, 22:08:40 »
Цитата: SergGT
Подскажите код html как заставить firefox открывать в новой вкладке в разрешении к примеру 640 на 480 камеру на которую кликнули мышкой?
Например так:
<img src="http://localhost:8081/stream.jpg" width="640" height="480" alt="camera1">О программе motion, вьюверах для него, vloopback и пр. здесь посмотрите.
« Последнее редактирование: Декабря 14, 2009, 22:29:25 от Vladimir »

Оффлайн Vladimir

  • Full
  • ****
  • Сообщений: 6838
  • Репутация: +1/-0
    • http://
    • Личное сообщение (Оффлайн)
Motion - ???
« Ответ #32 : Декабря 18, 2009, 17:09:55 »
Помимо просмотра видео-motion в xawtv можно это реализовать в effectv:
effectv -device /dev/video(номер реального или vloopback) -size 640x480 -geometry 640x480 (-scale 2)и используя mplayer:
mplayer -vo gl2 -fps 25 -tv driver=v4l:width=640:height=480:device=/dev/video(номер реального или vloopback) tv://... и еще есть множество способов реализовать gl-гляделку для motion на локальном и удаленных хостах.  

Оффлайн Vladimir

  • Full
  • ****
  • Сообщений: 6838
  • Репутация: +1/-0
    • http://
    • Личное сообщение (Оффлайн)
Motion - ???
« Ответ #33 : Января 16, 2010, 03:36:51 »
////////////////////////////////////////////////////////////////////////
Пара слов о mplayer в качестве вьювера. Вот это дело:
mplayer tv:// -vo xv -tv driver=v4l:width=640:height=480:device=/dev/video9 -geometry 320x240+0+0 -noborderпри использовании vloopback, выведет картинку 320x240 в верхнем левом углу без оконного бордюра. Совершенно понятно, что следующую картинку следует показать, изменив лишь x-координату, т.е:
mplayer tv:// -vo xv -tv driver=v4l:width=640:height=480:device=/dev/video11 -geometry 320x240+320+0 -noborderследующую так же:
mplayer tv:// -vo xv -tv driver=v4l:width=640:height=480:device=/dev/video13 -geometry 320x240+640+0 -noborderа в четвертой изменяется y-координата (конечно же, если реализуем мультиэкран в три строки и три колонки (девять камер)):
mplayer tv:// -vo xv -tv driver=v4l:width=640:height=480:device=/dev/video13 -geometry 320x240+0+240 -noborderИ т.д...
Размеры и координаты (-geometry) можно выбрать любые, лишь бы при соответствующем видеоразрешении монитора заполнялся весь экран.
И поскольку могут понадобится различные конфигурации показа (например, листинг или выборочный показ, по расписанию, по событию и т.д.), этот самый "geometry" поможет это дело реализовать. Нужно лишь поработать над скриптами показа, либо простенькой прогой.
з.ы. Да, в полноэкранный режим по двойному клику мышки (папка .mplayer в домашнем каталоге, файл - input.conf пропишем:
f vo_fullscreen
MOUSE_BTN0_DBL vo_fullscreen
).   :smile:
« Последнее редактирование: Января 16, 2010, 03:37:13 от Vladimir »

Оффлайн Vladimir

  • Full
  • ****
  • Сообщений: 6838
  • Репутация: +1/-0
    • http://
    • Личное сообщение (Оффлайн)
Motion - ???
« Ответ #34 : Января 18, 2010, 20:47:43 »
В связи с тем, что нормального мультиэкранного "вьювера" для локальной машины нет, мы, с участником alexis031182, решили сделать свой.
Итак, что на сегодня:
- проект "вьювера" на q;
- исходники v4l2loopback;
- измененный файл "video.c" проекта "motion" Versions 3.1.9-3.1.12... (для поддержки v4l2).
Все это можно посмотреть и взять здесь...
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Для того, чтобы запустить плэйер, необходимо:
- скомпилировать код v4l2loopback и установить модуль; (make, sudo make install...)
- заменить файл "video.c" в исходниках motion и скомпилировать проект;
- изменить в конфигурационных файлах камер опции "video_pipe" (пример для восьми камер) так:
- video_pipe /dev/video8 - для первой камеры;
- video_pipe /dev/video9 - для второй камеры;
- video_pipe /dev/video10 - для третьей камеры;
- video_pipe /dev/video11 - для четвертой камеры;
- video_pipe /dev/video12 - для пятой камеры;
- video_pipe /dev/video13 - для шестой камеры;
- video_pipe /dev/video14 - для седьмой камеры;
- video_pipe /dev/video15 - для восьмой камеры;
- video0 - video7 - источники сигналов для motion.
- загрузить модуль v4l2loopback: "sudo modprobe v4l2loopback vsources=8 voffset=8" (в примере - для восьми камер)
- запустить программу (вьювер) "EsperX"...
Константы (main.cpp):
#define ESPERX_LOOPBACK_START_INDEX 8
#define ESPERX_LOOPBACK_END_INDEX 15
#define ESPERX_FULLSCREEN 1
« Последнее редактирование: Января 18, 2010, 20:48:13 от Vladimir »

Оффлайн Vladimir

  • Full
  • ****
  • Сообщений: 6838
  • Репутация: +1/-0
    • http://
    • Личное сообщение (Оффлайн)
Motion - ???
« Ответ #35 : Января 31, 2010, 20:25:37 »
Переработан и оптимизирован код. Так же добавлен диалог выбора девайса по "ctrl" + "o".
Исходники вьювера:
[attachment=1296:EsperXM.tar.gz]
В программу добавлена возможность изменения вывода видеопотока в выбранное окно (* для пользователя - смена позиции видеоокна) при нажатии и удержании левой кнопки мыши с перемещением указателя в выбранную для показа область.
/////////////////////////////////////////////////////////////////
Замечания, предложения???

Оффлайн suspender

  • User
  • *
  • Сообщений: 1
  • Репутация: +0/-0
    • Личное сообщение (Оффлайн)
Motion - ???
« Ответ #36 : Марта 02, 2010, 21:44:12 »
Всем добрый день.
Есть вопросик.

Решил я замутить небольшое видеонаблюдение. Купил платку Orient SDVR 405 + 2 камеры а-ля дверной глазок. Собрал средненькую машинку класса p4 2.x GHz и стал экспериментировать.
Накатил slackware 13.0, собрал ffmpeg из svn, стал собирать motion 3.2.11.1, обломался, погуглил, пересобрал ffmeg с --enabled-shared, собрал motion 3.2.1.11 (со всеми опциями кроме postgresql).
в /etc появился motion.conf, в который я внес косметические изменения (ну типа разрешить удаленные коннекты на httpd и т.п.). Стартую motion
root@vidtst:~# motion -c /etc/motion.conf
[0] Processing thread 0 - config file /etc/motion.conf
[0] Motion 3.2.11.1 Started
[0] ffmpeg LIBAVCODEC_BUILD 3421952 LIBAVFORMAT_BUILD 3421696
[0] Thread 1 is from /etc/motion.conf
[1] Thread 1 started
[0] motion-httpd/3.2.11.1 running, accepting connections
[1] cap.driver: "bttv"
[0] motion-httpd: waiting for data on port TCP 8080
[1] cap.card: "BT878 video (Grand X-Guard / Tr"
[1] cap.bus_info: "PCI:0000:03:01.0"
[1] cap.capabilities=0x05000015
[1] - VIDEO_CAPTURE
[1] - VIDEO_OVERLAY
[1] - VBI_CAPTURE
[1] - READWRITE
[1] - STREAMING
[1] Supported palettes:
[1] 0: GREY (8 bpp, gray)
[1] 1: HI24 (8 bpp, dithered color)
[1] 2: RGBO (15 bpp RGB, le)
[1] 3: RGBQ (15 bpp RGB, be)
[1] 4: RGBP (16 bpp RGB, le)
[1] 5: RGBR (16 bpp RGB, be)
[1] 6: BGR3 (24 bpp RGB, le)
[1] 7: BGR4 (32 bpp RGB, le)
[1] 8: RGB4 (32 bpp RGB, be)
[1] 9: YUYV (4:2:2, packed, YUYV)
[1] 10: YUYV (4:2:2, packed, YUYV)
[1] 11: UYVY (4:2:2, packed, UYVY)
[1] 12: 422P (4:2:2, planar, Y-Cb-Cr)
[1] 13: YU12 (4:2:0, planar, Y-Cb-Cr)
[1] Selected palette YU12
[1] index_format 8 Test palette YU12 (320x240)
[1] Using palette YU12 (320x240) bytesperlines 320 sizeimage 115200 colorspace 00000000
[1] found control 0x00980900, "Brightness", range 0,65535
[1]     "Brightness", default 32768, current 32768
[1] found control 0x00980901, "Contrast", range 0,65535
[1]     "Contrast", default 32768, current 32768
[1] found control 0x00980902, "Saturation", range 0,65535
[1]     "Saturation", default 32768, current 32768
[1] found control 0x00980903, "Hue", range 0,65535
[1]     "Hue", default 32768, current 32768
[1] found control 0x00000000, "42", range 0,0 !DISABLED!
[1]     "42", default 0, current 0
[1] found control 0x00000000, "42", range 0,0 !DISABLED!
[1]     "42", default 0, current 0
[1] found control 0x00000000, "42", range 0,0 !DISABLED!
[1]     "42", default 0, current 0
[1] found control 0x00000000, "42", range 0,0 !DISABLED!
[1]     "42", default 0, current 0
[1] found control 0x00000000, "42", range 0,0 !DISABLED!
[1]     "42", default 0, current 0
[1] found control 0x00000000, "42", range 0,0 !DISABLED!
[1]     "42", default 0, current 0
[1] found control 0x08000000, "chroma agc", range 0,1
[1]     "chroma agc", default 0, current 0
[1] found control 0x08000001, "combfilter", range 0,1
[1]     "combfilter", default 0, current 0
[1] mmap information:
[1] frames=4
[1] 0 length=118784
[1] 1 length=118784
[1] 2 length=118784
[1] 3 length=118784
[1] Using V4L2
[1] Resizing pre_capture buffer to 1 items
[1] Started stream webcam server in port 8081

Вроде как все норм, на http://ip.ad.re.ss:8080 пускает и пишет что все пашет. Дает поделать из веб интерфейса всякие snapshots etc. На http://ip.ad.re.ss:8081 тоже пускает, НО и в snapshot-ах и на 8081 порту показывает картинку залитую синим цветом, только дата и время в нижнем углу. Махал рукой перед камерой - думал мб она только на движение реагирует - бестолку.
Из за чего это может быть ? Это неисправная камера ? или нужно что то донастроить ?

[attachment=1354:01_20100...snapshot.jpg]

Я пока что только пробовал плясать с бубном вокруг bttv скармливая ему различные card= (попробовал 103,77,118,0x69 - это все результат гугления). Картинка все также синяя.
Попробовал камеру вставлять в разные порты (там их 4) - тоже ничего.

Ткните носом куда копать плз.

ps. И ещё, везде пишут про использование v4l-info для получения параметров, но в моей слакваре его нет, пакет для слаки я тоже не нашел, как впрочем и исходников этого v4l-info (или это тупо скрипт ?)

ps2. Попробую воткнуть все эти дела в тачку с виндой и потестить хотя бы работоспособность комплекта.



Оффлайн fine13

  • User
  • *
  • Сообщений: 1
  • Репутация: +0/-0
    • Личное сообщение (Оффлайн)
Motion - ???
« Ответ #37 : Декабря 11, 2012, 11:37:47 »
пожалуйста помогите разобраться с программой kmotion, я полностью все настроил и подключаю ip-камеры но при движении картинка начинает прыгать между ними т.е. 2 окошка с камерой 1 и камерой 2, при движении они переключают картинку между собой, что это за функция и где её можно отключить!

 

Последние сообщения на форуме: