Menu

Home

Ilya Brusin

Привет всем.

Предыстория. После приобретения Logitech C920 остро стала проблема в софте для видео захвата. Причем нужен был софт, позволяющей извлечь из камеры родной поток H264. Лучшей из множества перелопаченного софта оказалась MiniCAM. Но она не лишена несовершенств и багов. Поэтому было решено написать свою програмулину.
После 3х месяцев копания по всем известным библиотекам лучшей была признана DirectShowNet. На её основе была создана прога для видео захвата.

Особенности.Прога работает тихо и почти бесшумно как Win Service или консольное приложение. Программа создавалась в первую очередь для использования с камерой С920, но думаю будет работать и с остальными, главное правильно подобрать настройки.

Описание. Позволяет записывать видео и звук с USB UVC устройств (теоретически можно писать сразу с нескольких устройств). Может работать как системный сервис, консольное приложение в автоматическом или ручном режимах. Пишет ролики задаваемой в конфигурационном файле длинны в указанное место. Перезаписывает ролики по кругу после того, как размер архива превысит указанный размер, и т.д.

Программа основана на библиотеке DirectShow.Net library (directshownet.sourceforge.net). Огромная благодарность авторам!


Hi all.

Intro.

After buying a Logitech C920 i thought about direct capturing a H264 stream. The best of existing software for this functionality was the MiniCam. But I got couple of bugs and imperfections in functionality. So I have decided to create my own software for affecting all my needs.
After 3 month of digging in dll's I found DirectShowNet. I created a program engine based on this library.

Description.

Program works silent and fast as Windows Service or Console application. This program was created for using my C920 by it works with other USB devices great, you only have to create proper configuration.

Program features.
DxDvrCapture can record video\audio stream from USB UVC devices. You can setup a program to record from many devices at the same time. Program runs as Windows Service on automatic\manual manner or Console application. It writes video files on disk by configured duration in loop, overwrites old files when configured total size of all recording is reached.

Programs is based on DirectShow.Net library (directshownet.sourceforge.net).
Great respect and thanks for authors.


Discussion

  • Ilya Brusin

    Ilya Brusin - 2013-03-13

    Как использовать:

    Для начала запустить HostService.exe с ключом /d (_1_show_devices.cmd), запомнить индексы устройства, далее сконфигурировать файл HostService.exe.config.

    1 Можно инсталлировать как Windows Service (_4_install_service.cmd, _4_install_service_Win8.cmd). Появится в списке Сервисов как DirectX DVR Capturing service. Программа будет работать тихо и незаметно. Ошибки будет писать в лог в каталог с программой и в Windows Event Log, секция DxDvrCaptureLog. В Event Log можно создать Scheduled Task, который выкидывает сообщение когда сервис падает с ошибкой. Так же Сервису можно задать восстановление после ошибки (вкладка Recovery в свойствах сервиса) и рестарт по истечение нескольких часов (полезно для освобождения памяти)

    2 Можно использовать как консольное приложение. Сконфигурировать и поставить на авто запуск при загрузке.

     

    Last edit: Ilya Brusin 2014-01-17
    • Ilya Brusin

      Ilya Brusin - 2014-01-17

      Using:

      Run HostService.exe with /d key, it will show you installed devices and video formats. Remember chosen indexes and edit HostService.exe.config with this parameters.

      1. You can run this program as Windows Service. For installing program as Windows Service run _4_install_service.cmd or _4_install_service_Win8.cmd. Program will appear in Services list as 'DirectX DVR Capturing service'. Next program will work silent. But it will write errors in log file on the disk and in the Windows Event Log (DxDvrCaptureLog section). You can also create a Scheduled Task of DxDvrCaptureLog error event, for e.g show a message alert on error.
        Also you have a possibility to setup a recovery options for a Service on service properties page and restarting feature after some time.

      2. Program may run as Console Application. You can add _3_run_configured.cmd to the System auto-start.

       
  • Ilya Brusin

    Ilya Brusin - 2013-03-13

    Ключи, которыми управляется программа:

    /? - показать помощь
    /d - показать список установленных в системе устройств записи
    /i - инсталлировать программу как Windows Service
    /u - деинсталлировать ранее установленный Windows Service
    /r - запустить программу как консольное приложение
    /s - запустить мастер настройки записи и начать запись
    /e - скопировать важное видео за указанное в конфиге время в особую папку (тоже настройка в конфиге)

    /? - show help
    /d - show recording devices
    /i - install program as Windows Service
    /u - uninstall program as Windos Service
    /r - run program on console
    /s - start Config Wizard and record after configuring
    /e - copy emergency recording

     

    Last edit: Ilya Brusin 2014-01-31
    • Ilya Brusin

      Ilya Brusin - 2013-12-11

      Версия 2.0. Добавлены ключи (для выбранных в конфиг файле параметров):

      /v - Запустить тест записи видео с установленными в системе видео кодеками
      /a - Запустить тест записи видео с установленными в системе аудио кодеками
      /c - Показать настройки видео устройства (если доступны)
      /y - Показать настройки аудио устройства (если доступны)
      /t - Показать настройки видео кодека (если доступны)
      /o - Показать настройки аудио кодека (если доступны)

      Version 2.0. Added keyses (for values in config file):
      /v - Run recording test for installed video codecs
      /a - Run recording test for installed audio codecs
      /c - Show properties of video recording device (if exists)
      /y - Show properties of audio recording device (if exists)
      /t - Show properties of video codec (if exists)
      /o - Show properties of audio codec (if exists)

       

      Last edit: Ilya Brusin 2014-01-31
  • Ilya Brusin

    Ilya Brusin - 2013-03-13

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

    videoDeviceIndex- системный номер записывающего видео устройства. Для С920 - 70
    audioDeviceIndex - системный номер записывающего аудио устройства (микрофон)

    frameRate - количество фреймов в секунду
    recordingWidth - ширина записываемого изображения
    recordingHeight - длинна записываемого изображения
    ИЛИ
    streamFormatIndex - индекс формата поддерживаемого камерой на аппаратном уровне

    streamFormat - тип записываемого видео (MPG4, RGB16, H264 etc)
    videoCompressor - название видео компрессора, можно оставить пустым
    audioCompressor - название аудио компрессора, можно оставить пустым
    fileNamePattern - паттерн названия файла записи, в которое подставиться текущая дата
    fileNameDateFormat - формат даты для имени файла
    filePath - путь для записи видео файлов
    recordingDurationPerFileInSec - время записи ролика в секундах
    recordingSizeLimitMb - максимальный размер для записи роликов, после которого программа начнет чистить старые. Лучше написать на 1гб меньше реального размера.
    todayFolderNameFormat - формат папки, в которую будут записаны ролики за день.

    autoFocus="false" - управление автофокусом камеры. Если камера не принимает конфигурационный параметр для автофокуса можно удалить его из конфига.
    focusValue="0" - значение фокуса камеры. От 0 до 250.

    paranoidLogging="true" - логировать режим работы сервиса

    subtitleDateFormat - паттерн субтитров, в которое подставиться текущая дата
    writeSubtitle - писать или не писать субтитры

    emergencyFolderPath - путь для копирования важного видео
    emergencyDurationHours - временной интервал в часах, по которому программа скопирует видео файлы, которые необходимо сохранить. Например, если выставлен 1 час, то программа скопирует записи за последний час.

    tempFilePath - путь для сохранения временных (видео)файлов.

    useGpsDevice="true" - использовать или нет GPS
    gpsLibrary="OpenGps" - библиотека для GPS. Доступно "OpenGps" или "GeoFramework"
    gpsDevicePortName="COM1" - порт GPS устройства
    gpsDevicePortBaudRate="4800" - скорость порта
    emulateGpsDevice="false" - эмуляция GPS устройства
    autoDetectGpsDevice="false" - авто определение GPS устройства

    Configuration parameters:

    videoDeviceIndex- system index of video recording device
    audioDeviceIndex - system index if audio recording device
    frameRate - fps value (1-30)

    recordingWidth - video recording width
    recordingHeight - video recording height
    OR
    streamFormatIndex - recording setting index of video device
    streamFormat - тtype of video (MPG4, RGB16, H264 etc)

    videoCompressor - full name of the video compressor installed to the system, may be empty
    audioCompressor - full name of the audio compressor installed to the system, may be empty

    fileNamePattern - recording file name pattern, will be applied current date
    fileNameDateFormat - date format for applying
    filePath - system path for recording video
    recordingDurationPerFileInSec - time on recording (sec)
    recordingSizeLimitMb - max size of recording storage, when size is reached program will overwrite old video files. Add a bit smaller than a real size
    todayFolderNameFormat - folder name for day recording storage

    autoFocus - auto focus setting for the camera.
    focusValue - auto focus value (0-250)

    paranoidLogging="true" - write log

    subtitleDateFormat - subtitle pattern where will be applied current date
    writeSubtitle - turn subtitles writing on\off

    emergencyFolderPath - system path for emergency recording copying
    emergencyDurationHours - time interval (hrs) for searching emergency recording, e.g. if 1, will copy all recording for the last hour

    tempFilePath - system path for temporary video recording files

    useGpsDevice - turn GPS on\off
    gpsLibrary="OpenGps" - library for GPS info. "OpenGps" or "GeoFramework"
    gpsDevicePortName="COM1" - GPS port name
    gpsDevicePortBaudRate="4800" - GPS baud port rate
    emulateGpsDevice="false" - эмуляция GPS устройства
    autoDetectGpsDevice="false" - авто определение GPS устройства

     

    Last edit: Ilya Brusin 2014-02-06
    • Ilya Brusin

      Ilya Brusin - 2013-12-11

      Версия 2.0. Добавлены ключи:

      showPreview="false" - показывает окно просмотра видео в реальном времени (рекомендовано только в консольном запуске)
      previewWindowWidth="800" - ширина окна
      previewWindowHeight="600" - высота окна
      previewWindowPositionLeft="0" - позиция окна от левого верхнего края
      previewWindowPositionTop="0" - позиция окна сверху

      Version 2.0. Added config parameters:

      showPreview="false" - show recording preview (for console only)
      previewWindowWidth="800" - preview window width
      previewWindowHeight="600" - preview window height
      previewWindowPositionLeft="0" - preview window position X
      previewWindowPositionTop="0" - preview window position Y

       

      Last edit: Ilya Brusin 2014-01-31
    • Ilya Brusin

      Ilya Brusin - 2013-12-19

      Версия 2.0.1 Добавлены ключи:

      playSoundOnRecordStart="true" - проигрывать аудио при начале записи ролика
      playSoundOnRecordStartPath="С:...\name.wav" - путь к аудио файлу
      playSoundOnRecordStartVolume="1" - громкость

      Version 2.0.1 Added config parameters:

      playSoundOnRecordStart="true" - play audio on recording start
      playSoundOnRecordStartPath="С:...\name.wav" - path to audio file
      playSoundOnRecordStartVolume="1" - volume

       

      Last edit: Ilya Brusin 2014-01-31
    • Ilya Brusin

      Ilya Brusin - 2013-12-27

      Отличная инструкция по конфигурации программы от prts

       
  • Ilya Brusin

    Ilya Brusin - 2013-03-13

    Для слежения за состоянием сервиса в Windows 7\8 можно и нужно создать системное событие, сообщающие каждый раз о глюках. Подробная инструкция здесь

     

    Last edit: Ilya Brusin 2013-03-14

Log in to post a comment.

MongoDB Logo MongoDB