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

Оффлайн Vladimir

  • Full
  • ****
  • Сообщений: 6838
  • Репутация: +1/-0
    • http://
    • Личное сообщение (Оффлайн)
Motion - ???
« : Ноября 22, 2008, 19:45:19 »
Видео приложение Motion, к которому написано множество дополнений и расширений свободным сообществом, позволяет создать любому желающему (конечно, при некотором имеющемся запасе знаний) недорогую охранную систему для своего жилища или офиса. Программа включает в себя отличный детектор движения, возможность реализации видеоинформации в mjpeg, ppm, или mpeg потоках с записью на винчестер, передачу файлов на ftp-сервер и многое, многое другое.
« Последнее редактирование: Ноября 22, 2008, 22:36:07 от Vladimir »

Оффлайн alexis031182

  • Full
  • ****
  • Сообщений: 1012
  • Репутация: +0/-0
    • http://www.slovensk.ru/fspo
    • E-mail
    • Личное сообщение (Оффлайн)
Motion - ???
« Ответ #1 : Ноября 22, 2008, 20:40:50 »
Чем принципиально от ZoneMinder отличается?

Оффлайн Vladimir

  • Full
  • ****
  • Сообщений: 6838
  • Репутация: +1/-0
    • http://
    • Личное сообщение (Оффлайн)
Motion - ???
« Ответ #2 : Ноября 22, 2008, 21:01:06 »
В большинстве дистрибутивов Linux, поставляемое ядро включает драйвера video4linux, разработкой значительной части которых занимается Gerd Knorr.
В продаже (не только в специализированных магазинах) чаще всего можно встретить карты видеозахвата, использующие видеодекодеры: BT878, CX2388x (Connexant Fusion) и SAA713x (Philips), с разрядностью АЦП: 8, 10, 9 bit соответственно.
Как правило, различают два класса устройств - с аппаратным сжатием и без такового.
В своих экспериментах по "захвату" видео я использую старенькую плату AverMedia на bt878, имеющую три аналоговых видео входа: два композитных и один S-VIDEO.
Модули на моем компьютере (ОС Ubuntu 8.10) размещены в каталоге: /lib/modules/ХХХХХХ/kernel/drivers/media/video (ХХХХХХ в моем случае: "2.6.27-7-generic").
 
Итак, вначале нужно определить тип платы при помощи утилит "lspci" (пакет pciutils) и "v4l-info" (пакет xawtv).

У меня:  
xxx@xxx:~$ lspci02:00.0 Multimedia video controller: Brooktree Corporation Bt878 Video Capture (rev 11)
Затем:

ххх@ххх:~$ v4l-info /dev/video0 | head -n
### v4l2 device info [/dev/video0] ###
general info
    VIDIOC_QUERYCAP
    driver                  : "bttv"
    card                    : "BT878 video (ProVideo PV143)"
    bus_info                : "PCI:0000:02:00.0"
    version                 : 0.9.17
    capabilities            : 0x5000015 [VIDEO_CAPTURE,VIDEO_OVERLAY,VBI_CAPTURE,READWRITE,STREAMING]

Обращаем внимание на строку, начинающуюся с "card". В моем случае установлен модуль (драйвер) - PV143, однако чаще всего при выполнении v4l-info можно увидеть нечто:
card : "BT878 video *** UNKNOWN/GENER", что означает неправильное определение карты системой...  
« Последнее редактирование: Ноября 22, 2008, 22:16:12 от Vladimir »

Оффлайн Vladimir

  • Full
  • ****
  • Сообщений: 6838
  • Репутация: +1/-0
    • http://
    • Личное сообщение (Оффлайн)
Motion - ???
« Ответ #3 : Ноября 22, 2008, 21:10:16 »
Цитата: alexis031182
Чем принципиально от ZoneMinder отличается?

Дааа-с, вопросик. Знаешь, ты меня даже в тупик поставил. Лично мне нравятся оба этих проекта, но тем не менее, на мой взгляд:
- у ZoneMinder возможностей (сервисных) все же больше, чем у Motion;
- Motion проще в реализации новичками.
« Последнее редактирование: Ноября 22, 2008, 21:10:40 от Vladimir »

Оффлайн Vladimir

  • Full
  • ****
  • Сообщений: 6838
  • Репутация: +1/-0
    • http://
    • Личное сообщение (Оффлайн)
Motion - ???
« Ответ #4 : Ноября 22, 2008, 21:46:46 »
В каталоге, например: "/usr/src/хххххх/drivers/media/video" находим соответствующую вашему видеокодеру папку, причем "хххххх" у меня: "linux-source-2.6.27-7", а нужная папка - "bt8хх".
В этой папке находим заголовочный файл "bttv.h", а в файле - свой драйвер:
#define BTTV_BOARD_UNKNOWN                 0x00
#define BTTV_BOARD_MIRO                         0x01
#define BTTV_BOARD_HAUPPAUGE               0x02
#define BTTV_BOARD_STB                           0x03
#define BTTV_BOARD_INTEL                        0x04
#define BTTV_BOARD_DIAMOND                  0x05
#define BTTV_BOARD_AVERMEDIA               0x06
#define BTTV_BOARD_MATRIX_VISION         0x07
#define BTTV_BOARD_FLYVIDEO                 0x08
#define BTTV_BOARD_TURBOTV                  0x09
#define BTTV_BOARD_HAUPPAUGE878         0x0a
#define BTTV_BOARD_MIROPRO                  0x0b
#define BTTV_BOARD_ADSTECH_TV            0x0c
#define BTTV_BOARD_AVERMEDIA98           0x0d
#define BTTV_BOARD_VHX                          0x0e
#define BTTV_BOARD_ZOLTRIX                    0x0f
#define BTTV_BOARD_PIXVIEWPLAYTV         0x10
#define BTTV_BOARD_WINVIEW_601             0x11
#define BTTV_BOARD_AVEC_INTERCAP         0x12
#define BTTV_BOARD_LIFE_FLYKIT              0x13
#define BTTV_BOARD_CEI_RAFFLES             0x14
#define BTTV_BOARD_CONFERENCETV        0x15
#define BTTV_BOARD_PHOEBE_TVMAS        0x16
#define BTTV_BOARD_MODTEC_205             0x17
#define BTTV_BOARD_MAGICTVIEW061        0x18
#define BTTV_BOARD_VOBIS_BOOSTAR        0x19
#define BTTV_BOARD_HAUPPAUG_WCAM      0x1a
#define BTTV_BOARD_MAXI                         0x1b
#define BTTV_BOARD_TERRATV                   0x1c
#define BTTV_BOARD_PXC200                      0x1d
#define BTTV_BOARD_FLYVIDEO_98             0x1e
#define BTTV_BOARD_IPROTV                      0x1f
#define BTTV_BOARD_INTEL_C_S_PCI           0x20
#define BTTV_BOARD_TERRATVALUE            0x21
#define BTTV_BOARD_WINFAST2000             0x22
#define BTTV_BOARD_CHRONOS_VS2            0x23
#define BTTV_BOARD_TYPHOON_TVIEW        0x24
#define BTTV_BOARD_PXELVWPLTVPRO        0x25
#define BTTV_BOARD_MAGICTVIEW063         0x26
#define BTTV_BOARD_PINNACLE                   0x27
#define BTTV_BOARD_STB2                          0x28
#define BTTV_BOARD_AVPHONE98                0x29
#define BTTV_BOARD_PV951                         0x2a
#define BTTV_BOARD_ONAIR_TV                   0x2b
#define BTTV_BOARD_SIGMA_TVII_FM           0x2c
#define BTTV_BOARD_MATRIX_VISION2         0x2d
#define BTTV_BOARD_ZOLTRIX_GENIE          0x2e
#define BTTV_BOARD_TERRATVRADIO           0x2f
#define BTTV_BOARD_DYNALINK                   0x30
#define BTTV_BOARD_GVBCTV3PCI                0x31
#define BTTV_BOARD_PXELVWPLTVPAK         0x32
#define BTTV_BOARD_EAGLE                        0x33
#define BTTV_BOARD_PINNACLEPRO             0x34
#define BTTV_BOARD_TVIEW_RDS_FM           0x35
#define BTTV_BOARD_LIFETEC_9415             0x36
#define BTTV_BOARD_BESTBUY_EASYTV       0x37
#define BTTV_BOARD_FLYVIDEO_98FM         0x38
#define BTTV_BOARD_GRANDTEC                  0x39
#define BTTV_BOARD_ASKEY_CPH060            0x3a
#define BTTV_BOARD_ASKEY_CPH03X            0x3b
#define BTTV_BOARD_MM100PCTV                0x3c
#define BTTV_BOARD_GMV1                          0x3d
#define BTTV_BOARD_BESTBUY_EASYTV2      0x3e
#define BTTV_BOARD_ATI_TVWONDER           0x3f
#define BTTV_BOARD_ATI_TVWONDERVE       0x40
#define BTTV_BOARD_FLYVIDEO2000             0x41
#define BTTV_BOARD_TERRATVALUER            0x42
#define BTTV_BOARD_GVBCTV4PCI                 0x43
#define BTTV_BOARD_VOODOOTV_FM            0x44
#define BTTV_BOARD_AIMMS                         0x45
#define BTTV_BOARD_PV_BT878P_PLUS          0x46
#define BTTV_BOARD_FLYVIDEO98EZ             0x47
#define BTTV_BOARD_PV_BT878P_9B              0x48
#define BTTV_BOARD_SENSORAY311              0x49
#define BTTV_BOARD_RV605                          0x4a  
#define BTTV_BOARD_POWERCLR_MTV878      0x4b
#define BTTV_BOARD_WINDVR                        0x4c
#define BTTV_BOARD_GRANDTEC_MULTI         0x4d
#define BTTV_BOARD_KWORLD                       0x4e
#define BTTV_BOARD_DSP_TCVIDEO               0x4f
#define BTTV_BOARD_HAUPPAUGEPVR            0x50
#define BTTV_BOARD_GVBCTV5PCI                 0x51
#define BTTV_BOARD_OSPREY1x0                   0x52
#define BTTV_BOARD_OSPREY1x0_848            0x53
#define BTTV_BOARD_OSPREY101_848            0x54
#define BTTV_BOARD_OSPREY1x1                   0x55
#define BTTV_BOARD_OSPREY1x1_SVID           0x56
#define BTTV_BOARD_OSPREY2xx                   0x57
#define BTTV_BOARD_OSPREY2x0_SVID           0x58
#define BTTV_BOARD_OSPREY2x0                   0x59
#define BTTV_BOARD_OSPREY500                   0x5a
#define BTTV_BOARD_OSPREY540                   0x5b
#define BTTV_BOARD_OSPREY2000                 0x5c
#define BTTV_BOARD_IDS_EAGLE                    0x5d
#define BTTV_BOARD_PINNACLESAT                0x5e
#define BTTV_BOARD_FORMAC_PROTV            0x5f
#define BTTV_BOARD_MACHTV                       0x60
#define BTTV_BOARD_EURESYS_PICOLO          0x61
#define BTTV_BOARD_PV150                           0x62
#define BTTV_BOARD_AD_TVK503                   0x63
#define BTTV_BOARD_HERCULES_SM_TV         0x64
#define BTTV_BOARD_PACETV                         0x65
#define BTTV_BOARD_IVC200                          0x66  
#define BTTV_BOARD_XGUARD                        0x67
#define BTTV_BOARD_NEBULA_DIGITV            0x68
#define BTTV_BOARD_PV143                           0x69
#define BTTV_BOARD_VD009X1_MINIDIN         0x6a
#define BTTV_BOARD_VD009X1_COMBI           0x6b
#define BTTV_BOARD_VD009_MINIDIN            0x6c
#define BTTV_BOARD_VD009_COMBI               0x6d
#define BTTV_BOARD_IVC100                          0x6e  
#define BTTV_BOARD_IVC120                          0x6f
#define BTTV_BOARD_PC_HDTV                      0x70
#define BTTV_BOARD_TWINHAN_DST              0x71
#define BTTV_BOARD_WINFASTVC100             0x72
#define BTTV_BOARD_TEV560                         0x73
#define BTTV_BOARD_SIMUS_GVC1100            0x74
#define BTTV_BOARD_NGSTV_PLUS                 0x75
#define BTTV_BOARD_LMLBT4                        0x76
#define BTTV_BOARD_TEKRAM_M205             0x77
#define BTTV_BOARD_CONTVFMI                    0x78
#define BTTV_BOARD_PICOLO_TETRA_CHIP     0x79
#define BTTV_BOARD_SPIRIT_TV                     0x7a
#define BTTV_BOARD_AVDVBT_771                  0x7b
#define BTTV_BOARD_AVDVBT_761                  0x7c
#define BTTV_BOARD_MATRIX_VISIONSQ         0x7d  
#define BTTV_BOARD_MATRIX_VISIONSLC        0x7e
#define BTTV_BOARD_APAC_VIEWCOMP           0x7f
#define BTTV_BOARD_DVICO_DVBT_LITE         0x80
#define BTTV_BOARD_VGEAR_MYVCD             0x81
#define BTTV_BOARD_SUPER_TV                     0x82
#define BTTV_BOARD_TIBET_CS16                   0x83
#define BTTV_BOARD_KODICOM_4400R            0x84
#define BTTV_BOARD_KODICOM_4400R_SL       0x85
#define BTTV_BOARD_ADLINK_RTV24               0x86
#define BTTV_BOARD_DVICO_FUSIONHDTV_5_LITE          0x87
#define BTTV_BOARD_ACORP_Y878F                                0x88
#define BTTV_BOARD_CONCEPTRONIC_CTVFMI2              0x89
#define BTTV_BOARD_PV_BT878P_2E                               0x8a
#define BTTV_BOARD_PV_M4900                                      0x8b
#define BTTV_BOARD_OSPREY440                                    0x8c
#define BTTV_BOARD_ASOUND_SKYEYE                           0x8d
#define BTTV_BOARD_SABRENT_TVFM                             0x8e
#define BTTV_BOARD_HAUPPAUGE_IMPACTVCB                0x8f
#define BTTV_BOARD_MACHTV_MAGICTV                        0x90

У меня установлен - PV143.
« Последнее редактирование: Ноября 22, 2008, 21:54:06 от Vladimir »

Оффлайн Vladimir

  • Full
  • ****
  • Сообщений: 6838
  • Репутация: +1/-0
    • http://
    • Личное сообщение (Оффлайн)
Motion - ???
« Ответ #5 : Ноября 22, 2008, 22:15:31 »
Выгрузим драйвер:
ххх@ххх:~$ sudo rmmod bt878 bttv
И загрузим выбранный:
ххх@ххх:~$ sudo modprobe -v bttv card=0x69  tuner=-1 autoload=0
Проверим, что получилось:
ххх@ххх:~$ v4l-info | head
### v4l2 device info [/dev/video0] ###
general info
    VIDIOC_QUERYCAP
    driver                  : "bttv"
    card                    : "BT878 video (ProVideo PV143)"
    bus_info                : "PCI:0000:02:00.0"
    version                 : 0.9.17
    capabilities            : 0x5000015 [VIDEO_CAPTURE,VIDEO_OVERLAY,VBI_CAPTURE,READWRITE,STREAMING]

Все ОК!

Для того, чтобы посмотреть картинку, можно использовать, например, программу "TVtime", ну или тот же "xawtv"  
« Последнее редактирование: Ноября 22, 2008, 22:38:55 от Vladimir »

Оффлайн Vladimir

  • Full
  • ****
  • Сообщений: 6838
  • Репутация: +1/-0
    • http://
    • Личное сообщение (Оффлайн)
Motion - ???
« Ответ #6 : Ноября 22, 2008, 22:55:21 »
Итак, если все установилось нормально, можно прописать драйвер в автозагрузку.
В Ubuntu, например, в каталоге "/etc/modprobe.d" создается файл "video4linux" и в него прописываются строки:
alias char-major-81-0 bttv
options bttv card=0x69 tuner=-1 autoload=0

Все. Далее можно приступать к установке "Motion"
а затем - ffmpeg и ffmpeg-devel
« Последнее редактирование: Ноября 23, 2008, 01:19:14 от Vladimir »

Оффлайн Vladimir

  • Full
  • ****
  • Сообщений: 6838
  • Репутация: +1/-0
    • http://
    • Личное сообщение (Оффлайн)
Motion - ???
« Ответ #7 : Декабря 13, 2008, 22:37:09 »
Цитата: Vladimir
Далее можно приступать к установке "Motion"
а затем - ffmpeg и ffmpeg-devel

Можно и в обратном порядке.    
/////////////////////////////////////////////////
Обычно, при установке Motion, создается пример главного конфигурационного файла: motion.conf и конфигов по камерам: thread1.conf, thread2.conf  в /etc/motion.

Пример этого файла в моей системе:

# /etc/motion/motion.conf
#
# This config file was generated by motion 3.2.9

# Start in daemon (background) mode and release terminal (default: off)
daemon off

#File to store the process ID, also called pid file. (default: not defined)
process_id_file /var/run/motion.pid

# Start in Setup-Mode, daemon disabled. (default: off)
setup_mode off

# The video norm to use (only for video capture and TV tuner cards)
# Values: 0 (PAL), 1 (NTSC), 2 (SECAM), 3 (PAL NC no colour). Default: 0 (PAL)
norm 0

# Image width (pixels). Valid range: Camera dependent, default: 352
width 768

# Image height (pixels). Valid range: Camera dependent, default: 288
height 576

# Maximum number of frames to be captured per second.
# Valid range: 2-100. Default: 100 (almost no limit).
framerate 100

# Minimum time in seconds between capturing picture frames from the camera.
# Default: 0 = disabled - the capture rate is given by the camera framerate.
# This option is used when you want to capture images at a rate lower than 2 per second.
minimum_frame_time 0

# Let motion regulate the brightness of a video device (default: off).
# The auto_brightness feature uses the brightness option as its target value.
# If brightness is zero auto_brightness will adjust to average brightness value 128.
# Only recommended for cameras without auto brightness
auto_brightness off

# Set the initial brightness of a video device.
# If auto_brightness is enabled, this value defines the average brightness level
# which Motion will try and adjust to.
# Valid range 0-255, default 0 = disabled
brightness 0

# Set the contrast of a video device.
# Valid range 0-255, default 0 = disabled
contrast 0

# Set the saturation of a video device.
# Valid range 0-255, default 0 = disabled
saturation 0

# Set the hue of a video device (NTSC feature).
# Valid range 0-255, default 0 = disabled
hue 0

# Threshold for number of changed pixels in an image that
# triggers motion detection (default: 1500)
threshold 1500

# Automatically tune the threshold down if possible (default: off)
threshold_tune off

# Noise threshold for the motion detection (default: 32)
noise_level 32

# Automatically tune the noise threshold (default: on)
noise_tune on

# Enables motion to adjust its detection/noise level for very dark frames
# Don't use this with noise_tune on. (default: off)
night_compensate off

# Despeckle motion image using (e)rode or (d)ilate or (l)abel (Default: not defined)
# Recommended value is EedDl. Any combination (and number of) of E, e, d, and D is valid.
# (l)abeling must only be used once and the 'l' must be the last letter.
# Comment out to disable
despeckle EedDl

# Ignore sudden massive light intensity changes given as a percentage of the picture
# area that changed intensity. Valid range: 0 - 100 , default: 0 = disabled
lightswitch 0

# Picture frames must contain motion at least the specified number of frames
# in a row before they are detected as true motion. At the default of 1, all
# motion is detected. Valid range: 1 to thousands, recommended 1-5
minimum_motion_frames 3

# Specifies the number of pre-captured (buffered) pictures from before motion
# was detected that will be output at motion detection.
# Recommended range: 0 to 5 (default: 0)
# Do not use large values! Large values will cause Motion to skip video frames and
# cause unsmooth mpegs. To smooth mpegs use larger values of post_capture instead.
pre_capture 0

# Number of frames to capture after motion is no longer detected (default: 0)
post_capture 150

# Gap is the seconds of no motion detection that triggers the end of an event
# An event is defined as a series of motion images taken within a short timeframe.
# Recommended value is 60 seconds (Default). The value 0 is allowed and disables
# events causing all Motion to be written to one single mpeg file and no pre_capture.
gap 60

# Maximum length in seconds of an mpeg movie
# When value is exceeded a new mpeg file is created. (Default: 0 = infinite)
max_mpeg_time 0

# Number of frames per second to capture when not detecting
# motion (saves CPU load) (Default: 0 = disabled)
low_cpu 0

# Always save images even if there was no motion (default: off)
output_all off

# Output 'normal' pictures when motion is detected (default: on)
# Valid values: on, off, first, best
# When set to 'first', only the first picture of an event is saved.
# Picture with most motion of an event is saved when set to 'best'.
# Can be used as preview shot for the corresponding movie.
output_normal off

# Output pictures with only the pixels moving object (ghost images) (default: off)
output_motion off

# The quality (in percent) to be used by the jpeg compression (default: 75)
quality 75

# Output ppm images instead of jpeg (default: off)
ppm off

# Use ffmpeg to encode mpeg movies in realtime (default: off)
ffmpeg_cap_new on

# Use ffmpeg to make movies with only the pixels moving
# object (ghost images) (default: off)
ffmpeg_cap_motion off

# Use ffmpeg to encode a timelapse movie
# Default value 0 = off - else save frame every Nth second
ffmpeg_timelapse 0

# The file rollover mode of the timelapse video
# Valid values: hourly, daily (default), weekly-sunday, weekly-monday, monthly, manual
ffmpeg_timelapse_mode manual

# Bitrate to be used by the ffmpeg encoder (default: 400000)
# This option is ignored if ffmpeg_variable_bitrate is not 0 (disabled)
ffmpeg_bps 400000

# Enables and defines variable bitrate for the ffmpeg encoder.
# ffmpeg_bps is ignored if variable bitrate is enabled.
# Valid values: 0 (default) = fixed bitrate defined by ffmpeg_bps,
# or the range 2 - 31 where 2 means best quality and 31 is worst.
ffmpeg_variable_bitrate 0

# Codec to used by ffmpeg for the video compression.
# Timelapse mpegs are always made in mpeg1 format independent from this option.
# Supported formats are: mpeg1 (ffmpeg-0.4.8 only), mpeg4 (default), and msmpeg4.
# mpeg1 - gives you files with extension .mpg
# mpeg4 or msmpeg4 - gives you files with extension .avi
# msmpeg4 is recommended for use with Windows Media Player because
# it requires no installation of codec on the Windows client.
# swf - gives you a flash film with extension .swf
# flv - gives you a flash video with extension .flv
# ffv1 - FF video codec 1 for Lossless Encoding ( experimental )
ffmpeg_video_codec ffv1

# Use ffmpeg to deinterlace video. Necessary if you use an analog camera
# and see horizontal combing on moving objects in video or pictures.
# (default: off)
ffmpeg_deinterlace off

# Make automated snapshot every N seconds (default: 0 = disabled)
snapshot_interval 0

# Locate and draw a box around the moving object.
# Valid values: on, off and preview (default: off)
# Set to 'preview' will only draw a box in preview_shot pictures.
locate off

# Draws the timestamp using same options as C function strftime(3)
# Default: %Y-%m-%d\n%T = date in ISO format and time in 24 hour clock
# Text is placed in lower right corner
text_right %Y-%m-%d\n%T

# Draw characters at twice normal size on images. (default: off)
text_double off

# File path for snapshots (jpeg or ppm) relative to target_dir
# Default: %v-%Y%m%d%H%M%S-snapshot
# Default value is equivalent to legacy oldlayout option
# For Motion 3.0 compatible mode choose: %Y/%m/%d/%H/%M/%S-snapshot
# File extension .jpg or .ppm is automatically added so do not include this.
# Note: A symbolic link called lastsnap.jpg created in the target_dir will always
# point to the latest snapshot, unless snapshot_filename is exactly 'lastsnap'
snapshot_filename %v-%Y%m%d%H%M%S-snapshot

# File path for motion triggered images (jpeg or ppm) relative to target_dir
# Default: %v-%Y%m%d%H%M%S-%q
# Default value is equivalent to legacy oldlayout option
# For Motion 3.0 compatible mode choose: %Y/%m/%d/%H/%M/%S-%q
# File extension .jpg or .ppm is automatically added so do not include this
# Set to 'preview' together with best-preview feature enables special naming
# convention for preview shots. See motion guide for details
jpeg_filename %d-%m-%Y__%H:%M:%S-%q

# File path for motion triggered ffmpeg films (mpeg) relative to target_dir
# Default: %v-%Y%m%d%H%M%S
# Default value is equivalent to legacy oldlayout option
# For Motion 3.0 compatible mode choose: %Y/%m/%d/%H%M%S
# File extension .mpg or .avi is automatically added so do not include this
# This option was previously called ffmpeg_filename
movie_filename %d-%m-%Y__%H:%M:%S

# File path for timelapse mpegs relative to target_dir
# Default: %Y%m%d-timelapse
# Default value is near equivalent to legacy oldlayout option
# For Motion 3.0 compatible mode choose: %Y/%m/%d-timelapse
# File extension .mpg is automatically added so do not include this
timelapse_filename %d-%m-%Y-timelapse

# TCP/IP port for the http server to listen on (default: 0 = disabled)
control_port 8080

# Restrict control connections to localhost only (default: on)
control_localhost off

# Output for http server, select off to choose raw text plain (default: on)
control_html_output on

# Do not sound beeps when detecting motion (default: on)
# Note: Motion never beeps when running in daemon mode.
quiet on

# Output images to a video4linux loopback device
# The value '-' means next available (default: not defined)
video_pipe '-'

thread /etc/motion/thread1.conf
thread /etc/motion/thread2.conf
/////////////////////////////////////////////////////////////////////////////////////
# /etc/motion/thread1.conf
#
# This config file was generated by motion 3.2.9
# Videodevice to be used for capturing  (default /dev/video0)
# for FreeBSD default is /dev/bktr0
videodevice /dev/video0

# The video input to be used (default: 8)
# Should normally be set to 1 for video/TV cards, and 8 for USB cameras
input 0

# Target base directory for pictures and films
# Recommended to use absolute path. (Default: current working directory)
target_dir /var/www/motion/camera1

text_left Camera 1

# The mini-http server listens to this port for requests (default: 0 = disabled)
webcam_port 8081

# Quality of the jpeg images produced (default: 50)
webcam_quality 50

# Maximum framerate for webcam streams (default: 1)
webcam_maxrate 25

# Restrict webcam connections to localhost only (default: on)
webcam_localhost off

# Limits the number of images per connection (default: 0 = unlimited)
# Number can be defined by multiplying actual webcam rate by desired number of seconds
# Actual webcam rate is the smallest of the numbers framerate and webcam_maxrate
webcam_limit 0
/////////////////////////////////////////////////////////////////////////////////////
# /etc/motion/thread2.conf
#
# This config file was generated by motion 3.2.9
# Videodevice to be used for capturing  (default /dev/video0)
# for FreeBSD default is /dev/bktr0
videodevice /dev/video1

# The video input to be used (default: 8)
# Should normally be set to 1 for video/TV cards, and 8 for USB cameras
input 0

# Target base directory for pictures and films
# Recommended to use absolute path. (Default: current working directory)
target_dir /var/www/motion/camera2

text_left Camera 2

# The mini-http server listens to this port for requests (default: 0 = disabled)
webcam_port 8082

# Quality of the jpeg images produced (default: 50)
webcam_quality 50

# Maximum framerate for webcam streams (default: 1)
webcam_maxrate 25

# Restrict webcam connections to localhost only (default: on)
webcam_localhost off

# Limits the number of images per connection (default: 0 = unlimited)
# Number can be defined by multiplying actual webcam rate by desired number of seconds
# Actual webcam rate is the smallest of the numbers framerate and webcam_maxrate
webcam_limit 0

Оффлайн Vladimir

  • Full
  • ****
  • Сообщений: 6838
  • Репутация: +1/-0
    • http://
    • Личное сообщение (Оффлайн)
Motion - ???
« Ответ #8 : Декабря 20, 2008, 13:47:50 »
В консоли запускаем программу:
~$ motionВидим следующее:
[0] Processing thread 0 - config file /etc/motion/motion.conf
[0] Processing config file /etc/motion/thread1.conf
[0] Processing config file /etc/motion/thread2.conf
[0] Motion 3.2.9 Started
[0] ffmpeg LIBAVCODEC_BUILD 3355136 LIBAVFORMAT_BUILD 3409664
[0] Thread 1 is from /etc/motion/thread1.conf
[1] Thread 1 started
[1] cap.driver: "bttv"
[1] cap.card: "BT878 video (ProVideo PV143)"
[1] cap.bus_info: "PCI:0000:02:00.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] 14: YV12 (4:2:0, planar, Y-Cr-Cb)
[1] 15: 411P (4:1:1, planar, Y-Cb-Cr)
[1] 16: YUV9 (4:1:0, planar, Y-Cb-Cr)
[1] 17: YVU9 (4:1:0, planar, Y-Cr-Cb)
[1] Test palette YU12 (768x576)
[1] Using palette YU12 (768x576) bytesperlines 768 sizeimage 663552 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=663552
[1] 1 length=663552
[1] 2 length=663552
[1] 3 length=663552
[1] Using V4L2
[0] Thread 2 is from /etc/motion/thread2.conf
[2] Thread 2 started
[2] cap.driver: "bttv"
[2] cap.card: "BT878 video (ProVideo PV143)"
[2] cap.bus_info: "PCI:0000:02:01.0"
[2] cap.capabilities=0x05000015
[2] - VIDEO_CAPTURE
[2] - VIDEO_OVERLAY
[2] - VBI_CAPTURE
[2] - READWRITE
[2] - STREAMING
[2] Supported palettes:
[2] 0: GREY (8 bpp, gray)
[2] 1: HI24 (8 bpp, dithered color)
[2] 2: RGBO (15 bpp RGB, le)
[2] 3: RGBQ (15 bpp RGB, be)
[2] 4: RGBP (16 bpp RGB, le)
[2] 5: RGBR (16 bpp RGB, be)
[2] 6: BGR3 (24 bpp RGB, le)
[2] 7: BGR4 (32 bpp RGB, le)
[2] 8: RGB4 (32 bpp RGB, be)
[2] 9: YUYV (4:2:2, packed, YUYV)
[2] 10: YUYV (4:2:2, packed, YUYV)
[2] 11: UYVY (4:2:2, packed, UYVY)
[2] 12: 422P (4:2:2, planar, Y-Cb-Cr)
[2] 13: YU12 (4:2:0, planar, Y-Cb-Cr)
[2] 14: YV12 (4:2:0, planar, Y-Cr-Cb)
[2] 15: 411P (4:1:1, planar, Y-Cb-Cr)
[2] 16: YUV9 (4:1:0, planar, Y-Cb-Cr)
[2] 17: YVU9 (4:1:0, planar, Y-Cr-Cb)
[2] Test palette YU12 (768x576)
[2] Using palette YU12 (768x576) bytesperlines 768 sizeimage 663552 colorspace 00000000
[2] found control 0x00980900, "Brightness", range 0,65535
[2]     "Brightness", default 32768, current 32768
[2] found control 0x00980901, "Contrast", range 0,65535
[2]     "Contrast", default 32768, current 32768
[2] found control 0x00980902, "Saturation", range 0,65535
[2]     "Saturation", default 32768, current 32768
[2] found control 0x00980903, "Hue", range 0,65535
[2]     "Hue", default 32768, current 32768
[2] found control 0x00000000, "42", range 0,0 !DISABLED!
[2]     "42", default 0, current 0
[2] found control 0x00000000, "42", range 0,0 !DISABLED!
[2]     "42", default 0, current 0
[2] found control 0x00000000, "42", range 0,0 !DISABLED!
[2]     "42", default 0, current 0
[2] found control 0x00000000, "42", range 0,0 !DISABLED!
[2]     "42", default 0, current 0
[2] found control 0x00000000, "42", range 0,0 !DISABLED!
[2]     "42", default 0, current 0
[2] found control 0x00000000, "42", range 0,0 !DISABLED!
[2]     "42", default 0, current 0
[2] found control 0x08000000, "chroma agc", range 0,1
[2]     "chroma agc", default 0, current 0
[2] found control 0x08000001, "combfilter", range 0,1
[2]     "combfilter", default 0, current 0
[2] mmap information:
[2] frames=4
[2] 0 length=663552
[2] 1 length=663552
[2] 2 length=663552
[2] 3 length=663552
[2] Using V4L2
[0] motion-httpd/3.2.9 running, accepting connections
[0] motion-httpd: waiting for data on port TCP 8080
[1] Opened input of /dev/video2
[1] Started stream webcam server in port 8081
[2] Opened input of /dev/video4
[2] Started stream webcam server in port 8082
Любое движение... и:
[1] File of type 8 saved to: /var/www/motion/camera1/%d-%m-%Y/11:43:58.avi
Запись WAVE 'stdin' : Signed 16 bit Little Endian, Частота 44100 Гц, Стерео
[2] File of type 8 saved to: /var/www/motion/camera2/%d-%m-%Y/11:43:59.avi
« Последнее редактирование: Декабря 20, 2008, 13:48:32 от Vladimir »

Оффлайн Vladimir

  • Full
  • ****
  • Сообщений: 6838
  • Репутация: +1/-0
    • http://
    • Личное сообщение (Оффлайн)
Motion - ???
« Ответ #9 : Декабря 20, 2008, 13:55:23 »
При существующих настройках, для того, чтобы увидеть картинки, стоит лишь прогуляться по адресам: _http://localhost:8081, _http://localhost:8082  
Настройки программы также можно изменять через вэб интерфейс, указав в любимом браузере адрес: _http://localhost:8080  

Оффлайн Vladimir

  • Full
  • ****
  • Сообщений: 6838
  • Репутация: +1/-0
    • http://
    • Личное сообщение (Оффлайн)
Motion - ???
« Ответ #10 : Января 21, 2009, 02:09:54 »
vloopback

Не есть хорошо - воспроизведение видео на локальном компьютере через web-интерфейс.
Для того, чтобы без проблем выводить картинки, используя OpenGL, возможно создание виртуальных видеоустройств.
Итак,  vloopback
Качаем отсюда: http://www.lavrsen.dk/svn/vloopback/trunk/
Компилим make, получаем драйвер vloopback.co, устанавливаем make install
и загружаем по надобности: sudo modprobe vloopback
В моционе (/etc/motion/motion.conf) разремим опцию:

video_pipe '-'
Получаем (если имели одну ТВ камеру) в /dev/: video0, video1, video2
Motion использует video0 и транслирует видео в video1
video2 легко цепляет xawtv: xawtv -c /dev/video2 -geometry 768x568

Пишем при помощи моциона инфу в файл, а в OpenGL гляделке xawtv - смотрим чудесную картинку безо всяких напрягов.

Оффлайн Vladimir

  • Full
  • ****
  • Сообщений: 6838
  • Репутация: +1/-0
    • http://
    • Личное сообщение (Оффлайн)
Motion - ???
« Ответ #11 : Марта 14, 2009, 20:20:14 »
В motion не предусмотрена запись звука вместе с видео, но проблему можно решить.
Например так, как я сделал у себя:
В моем компьютере, с осью Debian 5 "Lenny", установлена восьми-входовая карта видеозахвата HW-LX808
В файле: /etc/modprobe.d/saa_motion вбито следующее:

alias char-major-81-0 videodev
alias char-major-81-1 videodev
alias char-major-81-2 videodev
alias char-major-81-3 videodev
alias char-major-81-4 videodev
alias char-major-81-5 videodev
alias char-major-81-6 videodev
alias char-major-81-7 videodev
options saa7134 card=33,33,33,33,33,33,33,33

Установлен Video4Linux Loopback Device, который взят здесь:

svn co http://www.lavrsen.dk/svn/vloopback/trunk/ vloopback
Скомпилированный и установленный модуль подгружается при автозагрузке компьютера следующей строкой:

/sbin/modprobe vloopback pipes=16 dev_offset=8
Мой конфигурационный файл /etc/motion/motion.conf выглядит так:

# /etc/motion/motion.conf
daemon off
process_id_file /var/run/motion.pid
setup_mode off
minimum_frame_time 0
threshold 1500
threshold_tune off
noise_level 32
noise_tune on
night_compensate off
despeckle EedDl
lightswitch 0
minimum_motion_frames 1
pre_capture 0
post_capture 25
gap 60
max_mpeg_time 0
output_all off
output_normal off
quality 100
ffmpeg_cap_new off
snapshot_interval 0
locate off
text_right %Y-%m-%d\n%T
text_double on
control_port 8080
control_localhost off
control_html_output on
thread /etc/motion/camera1.conf
thread /etc/motion/camera2.conf
thread /etc/motion/camera3.conf
thread /etc/motion/camera4.conf
thread /etc/motion/camera5.conf
thread /etc/motion/camera6.conf
thread /etc/motion/camera7.conf
thread /etc/motion/camera8.conf

и, соответственно, конфиг первой камеры:

# /etc/motion/camera1.conf
videodevice /dev/video0
input 0
video_pipe /dev/video8
v4l2_palette 8
width 720
height 576
framerate 100
minimum_frame_time 0
target_dir /var/www/motion/camera1
movie_filename %d-%m-%Y/.temp
text_left camera1
auto_brightness off
brightness 0
contrast 0
saturation 0
hue 0
webcam_port 8081
webcam_quality 100
webcam_motion off
webcam_maxrate 25
webcam_localhost off
webcam_limit 0
on_event_start ffmpeg -f oss -ar 48000 -ac 1 -i /dev/dsp -deinterlace -b 3072k -r 25 -pix_fmt YUV420 -s 720x576 -f rawvideo -i /dev/video9 -vcodec mpeg4 -acodec libmp3lame -t 60 -y /var/www/motion/camera1/\%d-%m-%Y/\%H:%M:%S.avi

Здесь видно, что механизм записи в файл программы motion отключен, а в камерном конфиге для записи и видео и аудио используется событие on_event_start, причем останов записи обеспечивается параметром "t", который установлен в 60 секунд.
Остальные конфигурационные файлы не привожу, поскольку они (пока) отличаются лишь следующими строками (например для камеры 2):

videodevice /dev/video1
video_pipe /dev/video10
target_dir /var/www/motion/camera2
text_left camera2
webcam_port 8082
on_event_start ffmpeg -deinterlace -b 3072k -pix_fmt YUV420 -s 720x576 -f rawvideo -i /dev/video11 -vcodec mpeg4 -r 25 -t 60 -y /var/www/motion/camera2/\%d-%m-%Y/\%H:%M:%S.avi

Звук с видео пишу пока только с первой камеры, поскольку в наличии всего один аудио вход (на материнке).
И последнее. Если нужно на этом же компьютере просматривать реальное видео, не останавливая motion (например с первых двух камер), то достаточно выполнить:

xawtv -c /dev/video9 -geometry 768x576 -yesgl  -noh -m
xawtv -c /dev/video11 -geometry 768x576 -yesgl  -noh -m

Следует заметить, что для записи файлов и просмотра видео в реальном времени использованы нечетные pipes: 9,11,13,15,17,19,21,23, а motion цепляет восемь четных, начиная с 8-го

з.ы. Установщик ffmpeg.
Поддержка lame mp3 и x264 библиотек.
« Последнее редактирование: Марта 14, 2009, 20:30:44 от Vladimir »

Оффлайн Vladimir

  • Full
  • ****
  • Сообщений: 6838
  • Репутация: +1/-0
    • http://
    • Личное сообщение (Оффлайн)
Motion - ???
« Ответ #12 : Апреля 08, 2009, 19:35:31 »
A super cool web interface to view multiple live motion feeds & archive events with variable speed playback, now at v1.22b
Motion - Kmotion Web Viewer!  

Оффлайн Vladimir

  • Full
  • ****
  • Сообщений: 6838
  • Репутация: +1/-0
    • http://
    • Личное сообщение (Оффлайн)
Motion - ???
« Ответ #13 : Апреля 08, 2009, 19:46:44 »
В самом простом случае, для вывода картинок на web-страничку в корне web-сервера нужно создать файл: "index.html"
и  отредактировать его, вставив:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>Motion</title>
</head>
<body bgcolor="black" text="white">
<h1 align="center">Motion Videostreaming Server</h1>
<table>
  <tr>
      <td>
      <img src="http://localhost:8081/stream.mjpg" width="768" height="576">
      </td>
      <td>
      <img src="http://localhost:8082/stream.mjpg" width="768" height="576">
  </td>
</tr>
</table>
</body>
</html>


Здесь видно, что создается таблица из одной строки и двух колонок, в ячейки которой вставляются картинки с камер.
Этот код будет работать с любым браузером, кроме IE  

Для этого урода предусмотрен плагин cambozola:
[attachment=836:cambozola.tar.gz]
Файл из архива должны быть скопирован в корень web-сервера, а код в файле "index.html" для IE будет таким:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>Motion</title>
</head>
<body bgcolor="black" text="white">
<h1 align="center">Motion Videostreaming Server</h1>
<table>
<tr>
<td>
<applet code="com.charliemouse.cambozola.Viewer" archive="cambozola.jar" width="768" height="576">
        <param name="url" value="http://localhost:8081"/>
</applet>
</td>
<td>
<applet code="com.charliemouse.cambozola.Viewer" archive="cambozola.jar" width="768" height="576">
        <param name="url" value="http://localhost:8082"/>
</applet>
</td>
</tr>
</table>
</body>
</html>
« Последнее редактирование: Апреля 08, 2009, 19:47:38 от Vladimir »

Оффлайн Vladimir

  • Full
  • ****
  • Сообщений: 6838
  • Репутация: +1/-0
    • http://
    • Личное сообщение (Оффлайн)
Motion - ???
« Ответ #14 : Апреля 08, 2009, 19:50:28 »
Можно, конечно это дело объединить (на любителя), т.е. if "ОК", -> первый код, else -> второй.
Но я сторонник того, чтобы этот поганый IE вымер бы как класс, а поэтому считаю лучшим решением поставить на виндозу Оперу или Лисичку- Firefox.
В этом случае никакие комбозолы не нужны, поскольку все и так работает корректно.

Что касается строк:

<table>
  <tr>
      <td>
      <img src="http://localhost:8081/stream.mjpg" width="768" height="576">
      </td>
      <td>
      <img src="http://localhost:8082/stream.mjpg" width="768" height="576">
  </td>
</tr>
</table>

то здесь две ячейки для двух камер. Для того, чтобы сделать четыре, нужно записать табличку так:
<table>
  <tr>
      <td>
      <img src="http://localhost:8081/stream.mjpg" width="768" height="576">
      </td>
      <td>
      <img src="http://localhost:8082/stream.mjpg" width="768" height="576">
  </td>
</tr>
<tr>
      <td>
      <img src="http://localhost:8083/stream.mjpg" width="768" height="576">
      </td>
      <td>
      <img src="http://localhost:8084/stream.mjpg" width="768" height="576">
  </td>
</tr>
</table>

Здесь (выше) у нас получилось две строки и две колонки, т.е. квадратор.
Для девяти камер таблица будет выглядеть так:

<table>
  <tr>
      <td>
      <img src="http://localhost:8081/stream.mjpg" width="320" height="240">
      </td>
      <td>
      <img src="http://localhost:8082/stream.mjpg" width="320" height="240">
      </td>
      <td>
      <img src="http://localhost:8083/stream.mjpg" width="320" height="240">
      </td>
</tr>
<tr>
      <td>
      <img src="http://localhost:8084/stream.mjpg" width="320" height="240">
      </td>
      <td>
      <img src="http://localhost:8085/stream.mjpg" width="320" height="240">
      </td>
      <td>
      <img src="http://localhost:8086/stream.mjpg" width="320" height="240">
      </td>
</tr>
<tr>
      <td>
      <img src="http://localhost:8087/stream.mjpg" width="320" height="240">
      </td>
      <td>
      <img src="http://localhost:8088/stream.mjpg" width="320" height="240">
      </td>
      <td>
      <img src="http://localhost:8089/stream.mjpg" width="320" height="240">
      </td>
</tr>
</table>

Вполне естественно, нужно уменьшить размеры картинок, т.к. иначе они просто не поместятся на экране монитора.  

Оффлайн Vladimir

  • Full
  • ****
  • Сообщений: 6838
  • Репутация: +1/-0
    • http://
    • Личное сообщение (Оффлайн)
Motion - ???
« Ответ #15 : Апреля 08, 2009, 19:56:29 »
ТНК:
Позволю себе небольшие коментарии к авторским примерам html-кода.
1. Все они работают, но только на компъютере, где выполняется Motion.
2. Для доступа с удаленной машины необходимо заменить localhost на IP адрес или имя машины, на которой установлен Motion.
3. При указании IP все работает гораздо быстрее, нежели при указании имени машины.
Цитировать
Можно, конечно это дело объединить (на любителя), т.е. if "ОК", -> первый код, else -> второй.
Но я сторонник того, чтобы этот поганый IE вымер бы как класс, а поэтому считаю лучшим решением поставить на виндозу Оперу или Лисичку- Firefox.
Вопрос как это реализовать? (как узнать, какой браузер используется?)
Цитировать
Разве вариант с cambozola не будит работать с той-же Оперой?
Ответ на мой вопрос: нет не будет.
Покрайней мере у меня с Оперой 9.62 корректно не работает ни один вариант (никакие плагины не установлены).
С Mozilla Firefox 3.0.5 работают оба варианта.
С IE 5.00 (Win 2000) работает вариант с cambozola.
« Последнее редактирование: Апреля 08, 2009, 19:59:23 от Vladimir »

Оффлайн Vladimir

  • Full
  • ****
  • Сообщений: 6838
  • Репутация: +1/-0
    • http://
    • Личное сообщение (Оффлайн)
Motion - ???
« Ответ #16 : Апреля 08, 2009, 20:01:28 »
Цитата: ТНК
ТНК:
Вопрос как это реализовать?

Вариантов множество. Можно сделать просто, например так:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html" >
<title>Motion</title>
</head>
<body>
<script language="JavaScript">
var n=navigator.appName
var norm=(n=="Netscape" || n=="Opera" || n=="Firefox")
var ie=(n=="Microsoft Internet Explorer")
if (norm)
location="index.html,"
else if (ie)
location="ie.html"
</script>
</body>
</html>

Здесь видно, что необходимо создать три странички: index.html, norm.html и ie.html и разместить в них требуемое.
- в index.html - скрипт, что выше;
- в index.html - таблички вывода видео для нормальных браузеров;
- в ie.html - для мелкософтовской туфты.

Оффлайн Vladimir

  • Full
  • ****
  • Сообщений: 6838
  • Репутация: +1/-0
    • http://
    • Личное сообщение (Оффлайн)
Motion - ???
« Ответ #17 : Апреля 08, 2009, 20:45:29 »
Архив с рабочим квадратором.
Вложение:
[attachment=837:vlor1_motion.tar.gz]

Размер видео окон устанавливается в файлах: quad.php и quadoptions.php в каталоге "live" путем редактирования параметра style="width:70%; " в тегах таблицы, а именно в строке:
<table cellspacing="0" cellpadding="0" border="0" style="width:70%; ">указанных файлов.
Стиль вывода информации во фреймы определяется файлом "gen_styles.css" в каталоге "styles".

p.s. Не забываем про редактирование портов в "setup.inc", про указание путей к файлам записей в файлах getdir<номер камеры>.php в каталоге "getdir", ну и "localhost" поменять на то, что кому нравится...

Оффлайн Vladimir

  • Full
  • ****
  • Сообщений: 6838
  • Репутация: +1/-0
    • http://
    • Личное сообщение (Оффлайн)
Motion - ???
« Ответ #18 : Апреля 08, 2009, 21:03:20 »
Для устранения нагромождения файлов списка записей во фрейме "Recordings", я у себя динамично создаю каталоги путем использования переменных в конфигурационных файлах. Например, в конфиге первой камеры путь к записям "target_dir":

target_dir /var/www/motion/camera1/а имя файла записей в общем конфиге вот такое:

movie_filename %d-%m-%Y/%H:%M:%S
Т.е. мы получаем папки записей по дате в каталоге именованной камеры, а сами записи - по времени события.

Оффлайн Vladimir

  • Full
  • ****
  • Сообщений: 6838
  • Репутация: +1/-0
    • http://
    • Личное сообщение (Оффлайн)
Motion - ???
« Ответ #19 : Апреля 08, 2009, 21:20:50 »
Небольшое отступление...
"Пара фраз" о вещании видео и аудио в сеть.
Решил попробовать разные связки: Icecast2 + Darkice, vlc, ffserver. Есть много других вариантов (в зависимости от задачи)
Самое простое решение - использование ffserver.
Настройка проста, нужно лишь прописать в конфигурационный файл сервера /etc/ffserver.conf нужное пользователю. Например, у меня:

########################################
# /etc/ffserver.conf
Port 8090
BindAddress 0.0.0.0
MaxClients 2
MaxBandwidth 100000
CustomLog /var/log/ffservser.log
NoDaemon
########################################
<Feed feed1.ffm>
File /tmp/feed1.ffm
FileMaxSize 1024M
ACL allow 127.0.0.1
</Feed>
########################################
<Stream test1.swf>
Feed feed1.ffm
Format swf
AudioBitRate 64
AudioChannels 2
AudioSampleRate 44100
VideoBitRate 4096
VideoFrameRate 25
VideoSize 720x576
AudioCodec libmp3lame
VideoCodec flv
VideoQMin 3
VideoQMax 31
Preroll 1
</Stream>
########################################
<Stream stat.html>
Format status
ACL allow localhost
ACL allow 192.168.0.0 192.168.255.255
</Stream>
########################################
<Redirect index.html>
URL http://localhost
</Redirect>
########################################
После этого нужно запустить ffserver и отправить видео и аудио на сервер (в motione временно вырубив захват звука), а в консоли:

$ffserver
$ffmpeg -f oss -ab 64k -ar 44100 -ac 2 -i /dev/dsp -deinterlace -b 4096k -r 25 -pix_fmt YUV420 -s 720x576 -f rawvideo -i /dev/video11 -vcodec flv -acodec libmp3lamev -y http://127.0.0.1:8090/feed1.ffm

Смотреть в сети можно, например используя mplayer
(url=http://localhost:8090/test1.swf), или в браузере. В последнем случае нужно иметь плагин от adobe, или использовать в /var/www например вот такой java script:
Вложение:
swfobject.js.tar.gz [2.31 Кб]
[attachment=838:swfobject.js.tar.gz]

... а в index.html или любой другой файл сайта вставить это:

<table id="table" align="center">
<tr>
   <td>
        <script type="text/javascript" src="swfobject.js"></script>
                <div id="flashcontent">
                CAMERA1
                </div>
                <div id="splayer">Movie</div>
                <script type="text/javascript">
                var so = new SWFObject('http://localhost:8090/test1.swf','player','720','576','8');
                so.write('splayer');
                </script>
         </td>
</tr>
</table>

 

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