1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/leon_xi-time-lapse

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Использование камеры наблюдения для создания видео с задержкой съёмки

Я давно хотел заснять процесс цветения, но использование функции задержки съёмки на камере затруднительно, так как неизвестно, когда именно распустятся цветы, а ёмкость карты памяти камеры ограничена. В 2020 году из-за пандемии COVID-19 у меня появилось время заняться этим вопросом. У меня есть камера наблюдения Xiaomi 1080P (обычно используется для наблюдения, угол обзора 130 градусов, поддерживает сетевое хранилище для записи видео), маршрутизатор Xiaomi (с хранилищем 1 Тб, поддерживает NAS), лупа (опционально) и компьютер с Windows. Также есть две вазы с растениями, которые вот-вот зацветут.

Постоянное отслеживание процесса цветения Полное видео

Поэтому я снял и создал следующее видео:

Замедленное видео 1 Замедленное видео 2
Замедленная съёмка видео 1 Замедленная съёмка видео 2

Друзья, увидев это видео, были в восторге и спросили о процессе и сложности его создания. Ниже представлено моё руководство по созданию, надеюсь, оно поможет тем, кто интересуется замедленной съёмкой.

Содержание

  • Подготовка
    • [1. Предпосылки](#1 Предпосылки)
    • [2. Подготовка маршрутизатора/NAS к сетевому хранению](#2 Подготовка маршрутизатора/NAS к сетевому хранению)
    • [3. Подготовка камеры](#3 Подготовка камеры)
    • [4. Подготовка компьютера](#4 Подготовка компьютера)
  • [Съёмка видео](#Съёмка видео)
  • [Обработка видео](#Обработка видео)
    • [1. Предварительная подготовка к обработке видео](#1 Предварительная подготовка к обработке видео)
      • [Установка Python](#Установка Python)
      • [Установка pip](#Установка pip)
      • [Использование pip для установки других компонентов](#Использование pip для установки других компонентов)
      • [Загрузка программы](#Загрузка программы)
    • [2. Запуск программы захвата изображений с задержкой](#2 Запуск программы захвата изображений с задержкой)
      • [Настройка параметров запуска](#2-1 Настройка параметров запуска)
      • [Запуск](#2-2 Запуск)
    • [3. Запуск программы объединения видео](#3 Запуск программы объединения видео)
      • [Настройка параметров запуска](#2-1 Настройка параметров запуска)
      • [Запуск](#2-2 Запуск)
    • [4. Добавление музыки к видео](#4 Добавление музыки к видео)
      • [Установка компонентов](#2-1 Установка компонентов)
      • [Настройка параметров запуска](#2-2 Настройка параметров запуска)
      • [Запуск](#2-3 Запуск)
    • [5. Преобразование видео в анимированный GIF](#5 Преобразование видео в анимированный GIF)
    • [6. Монтаж видео](#6 Монтаж видео)
  • Заключение
  • Приложение

Подготовка

Перед началом съёмки необходимо настроить камеру, NAS и компьютер, чтобы обеспечить автоматическое и непрерывное сохранение записанного видео на NAS, а также убедиться, что компьютер может получить доступ к месту хранения видео на NAS.

1. Предпосылки

Сетевая камера уже подключена к сети, компьютер также подключён к сети и может получить доступ к сетевому жёсткому диску через Windows File Explorer. Обратитесь к руководству по эксплуатации соответствующего оборудования для получения инструкций по настройке.

2. Подготовка маршрутизатора/NAS к сетевому хранению

В этот раз я использовал встроенное сетевое хранилище маршрутизатора Xiaomi, поэтому в веб-интерфейсе управления маршрутизатором достаточно выполнить следующие настройки:

image-20200302101831199

Как показано на рисунке выше, мы находим подключённую интеллектуальную камеру Xiaomi, затем предоставляем ей права на полный доступ к диску и настройка завершена.

3. Подготовка камеры

На этот раз я использую интеллектуальную камеру Xiaomi (1080P). В приложении Xiaomi Camera на телефоне откройте настройки камеры, нажмите «...» в правом верхнем углу главного экрана, чтобы вызвать меню, показанное на втором скриншоте, и выберите «Управление хранилищем», как показано на третьем скриншоте. Перейдите на страницу управления хранилищем и выберите сетевое хранилище NAS.

Чтобы предотвратить потерю видео из-за сбоя сети, я также использовал карту памяти (можно использовать карту памяти на 16 ГБ или 32 ГБ, обычно она не входит в комплект поставки камеры, её нужно приобрести отдельно, можно использовать старую карту расширения памяти телефона, если таковая имеется).

<img src="https://pluto.guobaa.com/cal/img/camera-settings-01.jpg" alt="camera-settings-01" style="zoom:20%;" /><img src="https://pluto.guobaa.com/cal/img/camera-settings-02.jpg" alt="camera-settings-02" style="zoom:20%;" /><img src="https://pluto.guobaa.com/cal/img/camera-settings-03.jpg" alt="camera-settings-03" style="zoom:20%;" />

Далее настройте сетевое хранилище NAS. Сначала, как показано на первом изображении, откройте хранилище видео.

Длительность хранения видео выбирается в зависимости от доступного пространства на вашем NAS; интервал загрузки я выбрал «в реальном времени», что может повлиять на другие устройства, использующие WIFI.

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

<img src="https://pluto.guobaa.com/cal/img/camera-settings-04.jpg" alt="camera-settings-04" style="zoom:25%;" /><img src="https://pluto.guobaa.com/cal/img/camera-settings-05.jpg" alt="camera-settings-05" style="zoom:25%;" />

Перейдите на страницу редактирования хранилища, при первом использовании приложение автоматически просканирует доступные сетевые накопители и позволит вам выбрать один из них. Если на накопителе установлены имя пользователя и пароль, вы можете ввести их в поля имени пользователя и пароля, как показано на первой картинке. После ввода проверьте, можете ли вы читать и записывать данные (мой сетевой накопитель настроен на анонимный доступ, и через маршрутизатор он предоставляет полный доступ этой камере, поэтому мне не нужно настраивать имя пользователя и пароль).

После настройки сетевого накопителя NAS необходимо выбрать место для хранения. На странице настроек хранилища выберите «Изменить каталог хранения», как показано на второй картинке. Приложение автоматически просканирует доступные каталоги, и вы сможете выбрать нужный, нажав на название каталога.

<img src="https://pluto.guobaa.com/cal/img/camera-settings-06.jpg" alt="camera-settings-06" style="zoom:25%;" /><img src="https://pluto.guobaa.com/cal/img/camera-settings-07.jpg" alt="camera-settings-07" style="zoom:25%;" />

После выполнения всех этих настроек настройка камеры завершена.

4. Подготовка компьютера

Для компьютера я использую старый настольный ПК с 4 ГБ оперативной памяти, встроенной графикой, процессором i7-4510U 2.60 ГГц и операционной системой Windows 7 (Apple MacOS также подойдёт, просто у меня нет Mac для создания руководства). Для обработки видео требуется много места для хранения данных, поэтому я подключил внешний жёсткий диск на 250 ГБ через USB.

После подключения компьютера к сети откройте Windows File Explorer (сочетание клавиш Win + E), как показано на рисунке ниже. Введите путь к сетевому накопителю NAS в адресной строке (обычно в формате \192.168.0.1).

Найдите папку, в которой хранятся видеофайлы с камеры на NAS, позже они понадобятся для обработки видео (у меня они находятся в папке \192.168.0.1\XiaoMi\xiaomi_camera_videos\04cf8c6b0439).

<img src="https://pluto.guobaa.com/cal/img/nas-storage.png" />

После того как вы найдёте папку с видеофайлами и убедитесь, что они нормально сохраняются, настройка компьютера завершена.

Съёмка видео

Разместите камеру в оптимальном месте для съёмки, учитывая длительное время съёмки и предотвращая случайное отключение питания.

Также следует учитывать, что утреннее, полуденное и вечернее солнце не должно светить прямо, делая объекты съёмки плохо различимыми. Обычно выбирают позицию, параллельную окну.

Если требуется улучшить качество съёмки вечером, можно рассмотреть использование дополнительного источника света, поскольку внутреннего освещения обычно недостаточно. В этот раз вечернюю съёмку я не планировал, поэтому дополнительный источник света не использовался.

Обработка видео

Чтобы добиться эффекта замедленной съёмки, нам нужно взять записанное камерой непрерывное видео и извлечь кадры через определённые промежутки времени (я установил интервал в 24 секунды), сохраняя эти кадры в виде изображений на локальном диске.

Затем мы объединяем извлечённые кадры в видеофайл, следуя временной последовательности. Полученный видеофайл не содержит звуковой дорожки.

Наконец, используя видеоредактор, мы добавляем звуковую дорожку или субтитры и экспортируем финальный видеофайл.

1. Предварительная подготовка к обработке видео

Для быстрого создания этой программы обработки видео я использовал язык Python, причина проста: это скриптовый язык, после написания кода не нужно компилировать, можно сразу запустить; кроме того, это наиболее важная причина — его модули для работы с изображениями и видео хорошо развиты, функции машинного зрения, используемые в популярных системах искусственного интеллекта, реализуются с его помощью; поэтому Python — лучший выбор для реализации необходимых нам функций.

Установка Python

Если на вашем компьютере уже установлен Python, вы можете пропустить этот шаг. Посетите официальный сайт Python (https://www.python.org/), скачайте последнюю версию установщика (https://www.python.org/downloads/release/python-382/). Windows x86-64 executable installer macOS 64-bit installer Конкретный процесс установки... (если у вас есть вопросы, вы можете связаться со мной отдельно). После завершения установки убедитесь, что установка прошла успешно, вы можете использовать... Откройте окно командной строки (сочетание клавиш Win + R), нажмите кнопку «ОК», чтобы открыть. Откройте его, вы получите следующее окно. Введите py, затем нажмите Enter, вы увидите следующий контент, означающий успешную установку. Введите Ctrl + Z, затем нажмите Enter, чтобы выйти из вышеуказанной функции и вернуться в командную строку.

Установка pip

Скачайте get-pip.py, установите pip с помощью скрипта. Сначала создайте каталог на внешнем жёстком диске (мой диск — D, а каталог называется time-lapse), затем поместите загруженный файл get-pip.py в этот каталог. Откройте командную строку, выполните следующие команды, перейдите в каталог time-lapse, затем установите через скрипт get-pip.py. Если установка не удалась, вы можете повторно ввести последнюю команду и снова выполнить программу установки, пока установка не будет успешной.

> D:
> cd time-lapse
> py get-pip.py --user

После успешной установки введите команду pip, вы увидите следующее содержимое, подтверждающее успешную установку.

Использование pip для установки других компонентов

Через pip нам нужно установить три компонента (opencv-python, pytest-shutil, pyyaml) для реализации наших функций. В окне командной строки перейдите в каталог time-lapse и выполните следующие три команды отдельно.

pip install opencv-python
pip install pytest-shutil
pip install pyyaml

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

pip install -r requirements.txt

Загрузка программы

Загрузите исходный код time-lapse с GitHub на свой компьютер или напрямую загрузите файл time-lapse.zip, затем распакуйте его на внешний жёсткий диск (мой диск — D), замените только что созданный каталог time-papse, как показано на рисунке после распаковки.

Запуск программы захвата изображений с задержкой

2.1 Настройка параметров запуска

Используйте текстовый редактор (Notepad++, Atom и т. д.), чтобы открыть файл time-lapse.yml и отредактировать параметры. [^srcdir]: каталог видеофайлов, необходимо указать на место хранения видео на сетевом хранилище NAS. [^captureGap]: задержка по времени (единица измерения: секунды), 24 означает задержку в 24 секунды, задержка не может быть больше 60 секунд, если вам нужна большая задержка, вы можете контролировать её, объединяя видео. [^shotfrom]: время начала захвата, точность времени может контролироваться до минут, установка секунд недействительна. [^shotto]: время окончания захвата, точность времени может достигать часов (включая указанный час). [^current]: текущее обрабатываемое время, по умолчанию совпадает с начальным временем настройки, во время процесса захвата это значение будет обновляться, при повторном выполнении захват начнётся с последней захваченной позиции.

2.2 Запуск

После настройки параметров запуска в окне командной строки выполните следующую команду для запуска программы захвата изображений с задержкой.

> py time-lapse.py

Отображается, как показано на следующем рисунке. Когда все видео будут обработаны, программа завершится и выйдет. После добавления нового видео вы можете выполнить вышеуказанную команду ещё раз, программа начнёт обработку нового добавленного видео с места, где она была остановлена в прошлый раз. Все изображения с задержкой сохраняются в каталоге tmp, как показано на рисунке ниже. Обработка одного часа видео занимает примерно один час и 40 минут.

Запуск программы объединения видео

После обработки захвата видео или после завершения необходимого периода времени вы можете запустить программу объединения видео, чтобы объединить обработанные изображения в видео.

3.1 Настройка параметров запуска

Используя текстовый редактор (Notepad++ и т.д.), откройте файл merge-captures.yml и отредактируйте параметры. [^capturesdir]: каталог хранения файлов захваченных изображений. [^targetdir]: выходной каталог объединённых видеофайлов. [^targetfile]: имя сохранённого файла объединённого видео. [^mergestep]: скорость объединения видео, по умолчанию — 1, что соответствует скорости захвата, установленной на 2, что в два раза превышает скорость захвата и объединяет их в видео.

3.2 Запуск

После установки параметров запуска выполните следующую команду в окне командной строки, чтобы запустить программу объединения видео.

> py merge-captures.py

Отображение, как показано на следующем рисунке. После обработки всех захваченных изображений программа завершает работу и выходит. При изменении параметров запуска или наличии новых изображений для обработки требуется повторная обработка, рекомендуется изменять имя выходного файла каждый раз при запуске, иначе он продолжит объединять изображения после последнего объединённого видео, поскольку в папке с захваченными изображениями могут быть изображения, которые уже были объединены, что может привести к дублированию. Объединённые видеофайлы сохраняются в выходном каталоге, как показано на рисунке ниже. Примерно за одну минуту можно объединить 312 изображений или потребуется более пяти минут для объединения и обработки видео за минуту.

Добавление музыки к видео

4.1 Установка компонентов

Чтобы добавить музыку к видео, вам нужно добавить компонент (moviepy). В окне командной строки перейдите в каталог time-lapse и выполните следующую команду.

> pip install moviepy

Повторяйте вышеуказанную команду, пока не исчезнет красное сообщение об ошибке, что указывает на успешную установку.

4.2 Настройка параметров запуска

С помощью текстового редактора (Notepad++ и т. д.) откройте файл merge-audio.yml и настройте параметры. Синтетический аудиофайл [^videofile]: синтетический видеофайл [^targetdir]: каталог вывода видео [^targetfile]: имя выходного файла видео

<h5 id="4-3Запуск">Запуск

После настройки параметров запуска выполните следующую команду в командной строке, чтобы запустить программу объединения видео и музыки

> py merge-audio.py

Выполнение отображается, как показано на рисунке ниже

image-20200303122424582

<h4 id="5、Преобразование видео в анимированный gif">5. Преобразование видео в анимированный gif

Поскольку видеофайлы большие и большинство веб-сайтов не поддерживают встраивание и отображение видео в формате markdown, я создал скрипт для преобразования уже сгенерированного видео в анимированный GIF (make-gif.py).

> py make-gif.py

<h4 id="6、Обрезка видео">6. Обрезка видео

В объединённом видео есть только видеодорожка, но нет звуковой дорожки, поэтому при воспроизведении звука нет или вы хотите добавить заголовки, трейлеры и субтитры и другие эффекты, вам нужно использовать инструмент для обрезки видео, чтобы помочь вам выполнить последующую работу.

Я использовал бесплатное программное обеспечение для обрезки видео с открытым исходным кодом Shotcut, вы также можете использовать другое программное обеспечение, например, встроенное средство обрезки видео в Windows 10.

Как именно обрезать видео, здесь не описывается, вы можете обратиться к справочным инструкциям соответствующего программного обеспечения для обрезки видео.

\

<h2 id="Заключение">Заключение

  1. Позже мы рассмотрим возможность переноса функций захвата видеоизображений и объединения видео на Raspberry Pi, так что нам не нужно будет постоянно запускать компьютер для обработки видео.
  2. Если вы используете macOS и хотите использовать эту программу для обработки, свяжитесь со мной, и помогите мне завершить руководство по macOS.
  3. Приглашаем всех поделиться созданными видео и сообщить мне адрес, я открою отдельную страницу для сбора ваших видео.

\

<h2 id="Приложение">Приложение

<a name="note1">Примечание 1: NAS (Network Attached Storage: сетевое подключённое хранилище) — это просто устройство, подключённое к сети и имеющее функцию хранения данных, поэтому его также называют «сетевым накопителем».

<a name="note2">Примечание 2: Замедленная фотосъёмка также называется «покадровой фотосъёмкой» или «замедленной фотосъёмкой», это один из методов специальной фотосъёмки. Замедленная съёмка заключается в съёмке изображений или видео с относительно низкой частотой кадров, а затем воспроизведении отснятого материала с нормальной или более высокой скоростью. Используя контроллер задержки, затвор срабатывает каждые определённые промежутки времени, несколько фотографий, сделанных через некоторое время, проецируются непрерывно. Примером того, что часто можно увидеть по телевизору, являются распускающиеся цветы, восход солнца, ветер и облака.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Использование мониторинга с видеокамеры для создания замедленной съёмки видео. NAS и скрипты на Python. Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/leon_xi-time-lapse.git
git@api.gitlife.ru:oschina-mirror/leon_xi-time-lapse.git
oschina-mirror
leon_xi-time-lapse
leon_xi-time-lapse
master