Показать сообщение отдельно
Старый 01.06.2009, 13:59   #1
LI()n
Творец LeoCar'a
 
Аватар для LI()n
 
Регистрация: 28.03.2007
Город: Москва
Регион: 77, 97, 99, 177
Машина: LeoCar GT-Four Turbo и Рыжий Элемент
Сообщений: 747
LI()n is a jewel in the roughLI()n is a jewel in the roughLI()n is a jewel in the rough
По умолчанию LeoCam - Программа для записи видео

Качаем
Размер: 0,28 мегабайт

В общем, решил немного заморочиться видеорегистрацией.



Насколько хорошей получилась программа - пока что не знаю, так как писал ее всего пару дней, и еще три дня гонял на карпьютере, который сейчас лежит у меня дома.

Основная идея заключается в следующем:
Видео с подключенного устройства захвата пришется в НЕСЖАТОМ виде, что существенно уменьшает нагрузку на процессор, но при этом программа становится весьма "прожорливой" в плане свободного места на диске. Затем, при необходимости, записанное видео (тот файл, который действительно важно сохранить) можно сжать любым установленным в системе кодеком и быстро перекинуть на флэшку. А так все файлы пишутся по кругу с учетом заданных настроек, при создании нового файла вначале удаляется самый старый.



Окно настроек
1. Выбор папки, в которую будут сохраняться видеофайлы

2. Возможность выбора формата (разрешение и глубина цвета)
3. Возможность выбора источника (устройство видеозахвата и его параметры). Тестировалось на пяти компьютерах с разными веб-камерами - везде источник подхватывался без проблем. Однако гарантий по поводу работы с конкретными железками (тюнеры, устройства аппаратного кодирования и т.д.) давать не могу. По умолчанию будет использоваться первое подключенное устройство видеозахвата, однако движок программы поддерживает работу с одним конкретным или несколькими устройствами (возможностей выбора пока что не реализовал).
4. Выбор кодека в том случае, если вы не хотите писать видео несжатым (нагрузка на процессор будет существенно выше). При перезапуске программы эта настройка не сохраняется.

5. Выбор формата аудио и возможность записывать звук вместе с видео.

6, 7. При записи видео для экономии ресурсов процессора по умолчанию обновление картинки будет отключено (то есть запись идет, а что именно сейчас записывается - на экране не отображается). Также имеется возможность полностью отключить обновление картинки даже в ждущем режиме (когда запись не осуществляется).

8. Возможность выбора количества кадров в секунду (от 5 до 30)
9. Возможность выбора длины одного видеофайла (от 10 секунд до 10 минут).

10. Настраиваемый режим "поверх всех окон", а также указание точного положения и размеров окна для встраивания его в оболочки. При этом программа автоматически будет обновлять свое положение каждую секунду.
11. Возможность задания низкого приоритета процесса (система будет выделять ей меньше ресурсов процессора).

12. Задаваемая частота обновления картинки с камеры на экране программы (не путать с количеством кадров в секунду при записи видео). Допустим, можно задать обновление картинки на экране с частотой 3 кадра в секунду, а при этом запись видео будет идти с частотой 20 кадров в секунду.

13. Автоматическое начало записи после старта программы
14. Циклическая запись, когда записывается определенное количество файлов
15. Настройка, сколько именно файлов надо записывать (от 1 до 99), прежде чем удалять более старые записи
16. Количество файлов, перемещаемых в отдельную папку при нажатии на кнопку "Сохранить". Во время сохранения запись текущего видео прекращается, и оно вместе с указанным количеством предыдущих файлов будет перемещено в отдельную папку с текущей датой и временем.



Встроенный "органайзер" для видеозаписей
1. В левой верхней части окна расположен список (красного цвета), используя который можно перемещаться по папкам с сохраненными файлами.
2. Удаление любого выбранного файла, если в папке все файлы удалены - программа также удалит пустую папку.
3. Сжатие файла. При нажатии на эту кнопку появится диалоговое окно с выбором кодека и его параметров, после чего файл будет обработан. При сжатии показывается диалоговое окно с прогрессом, сам процесс в любой момент можно отменить. После сжатия в названии файла слово "Video" изменится на "DIVX", и программа предложит удалить оригинальный файл.
4. Быстрое копирование выбранного файла в указанную папку (выбранная папка сохраняется в настройках).
5. Отображение размера файла, общего размера всех файлов и оставшегося свободного места в заголовке окна.
6. Просмотр видео встроенным медиаплеером, перемещение между файлами, текущая позиция и перемещение по видеофайлу при помощи полосы прокрутки.
7. Несколько режимов просмотра - обычный, широкий (место списков займет медиаплеер при нажатии на кнопку "Экран"), полноэкранный (при двойном щелчке на самом медиаплеере).

Видеозахват осуществляется родными средствами Windows, просмотр осуществляется встроенным компонентом Windows Media Player.

При запуске программы также стартует файл LeoCamHelper, который в фоновом режиме постоянно следит за LeoCam, и в случае вылета программы автоматически перезапустит ее в течение 20 секунд.

Ждущий режим поддерживается следующим образом: программа отслеживает момент перехода, останавливает запись и пытается мгновенно сохранить файл (у меня это занимает где-то полсекунды), после чего завершает свою работу, но оставляет в памяти LeoCamHelper, который примерно через 20 секунд после возобновления работы ее перезапустит, и если опция "Запись при старте" включена - то запись видео сразу же начнется автоматически.

Конфигурация моей системы: Процессор AMD Athlon 1,2 GHz, 512MB (из них 32 идет на видеокарту), 1024MB Swap-file.
Запись видео 640*480 20FPS с веб-камеры Logitech QuickCam for Notebooks: загрузка процессора в пределах 20-30%, при запущенном ЛеоКаре без визуализации - 40-50%, с визуализацией (в режиме проигрывания музыки) - 50-60% тормозов не наблюдается вообще.

Посмотрим, как программа покажет себя в реальных условиях. Если все будет здорово, то в планах - встраивание ее в LeoCar, поддержка приемника GPS (опция включения записи только при движении машины), а также управление из внешних программ.

Вроде бы все! Удачи в пользовании! Жду отзывов!
LI()n вне форума   Ответить с цитированием