Как сделать Stop Motion или покадровой видео с веб-камерой?

У меня есть веб-камера, которая работает как устройство v4l2.

Каков наиболее удобный способ съемки видео в режиме стоп-кадра или покадровой съемки?

NB

остановка и замедленная съемка взаимосвязаны, но концептуально различны.

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

Остановка движения - это место, где вы управляете сценой и делаете снимок для каждого изменения, которое вы делаете, чтобы сформировать анимацию (например, Уоллес и Громмит).

Приложение для покадровой съемки должно иметь возможность делать фотографии с заданным интервалом.

8 ответов

Решение

Захватывает миллион изображений.

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

mkdir ~/Desktop/cap
cd ~/Desktop/cap

Мы используем streamer чтобы сделать захват, давайте установим его:

sudo apt-get install streamer

И теперь мы хотим захватить

streamer -o 0000.jpeg -s 300x200 -j 100 -t 2000 -r 1

-t это количество кадров, которые мы хотим захватить. -r это количество кадров в секунду. Так что это должно захватывать один кадр каждую секунду. Если вы сожмете это в видео 30 кадров в секунду, одна минута захвата станет 2 секундами видео. Вы захотите настроить это соответствующим образом в зависимости от того, сколько выходного видео вы хотите.

Эта строка даст вам 2000 изображений, для записи потребуется полчаса, а при 30 кадрах в секунду будет сгенерировано чуть более 1 минуты видео.

Собираем все вместе

Я собираюсь использовать ffmpeg, Есть много разных способов, включая mencoder но я просто предпочитаю ffmpegВзгляд на жизнь. После его установки (sudo apt-get install ffmpeg) просто отмахнулся от этого:

ffmpeg -r 30 -i %04d.jpeg -s hd480 -vcodec libx264 -vpre hq time-lapse.mp4

Настройки качества не похожи на настройки моей веб-камеры, поэтому вы можете поэкспериментировать с опциями, чтобы получить лучшее кодирование, но это должно дать вам хорошее видео со скоростью 30 кадров в секунду, сжатое в x264.

Вы можете поиграть с частотой кадров (-r) но я бы не стал опускаться ниже 15fps.

Для захвата каждые X секунд с веб-камеры используйте движение.

устанавливать motion

sudo apt-get install motion или же sudo aptitude install motion

Настройте движение для каждого количества секунд Х

sudo nano /etc/motion/motion.conf

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

10 минут = 600 секунд
20 минут = 1200 секунд
30 минут = 1800 секунд
1 час = 3600 секунд
2 часа = 7200 секунд и так далее...

запустить движение с sudo motion остановить это с помощью CTRL + C

ПРИМЕЧАНИЕ. - Настройте файл motion.conf для сохранения файлов в другом каталоге, чем каталог по умолчанию /tmp. Например, ваша домашняя папка. Поскольку переход к / tmp требует больше привилегий. Вы также найдете много полезных опций в файле motion.conf для многих других вещей, которые могут вам понравиться.

gTimelapse ( ссылка для скачивания)

введите описание здесь

Приложение для захвата изображений для создания видео с интервальной съемкой, созданное на основе библиотек gPhoto2 и wxWidgets.

Составить инструкцию

Загрузите источник с сайта sourceforge

в терминале наберите следующее:

cd Downloads 
gunzip gtimelapse-0.1.tar.gz
tar -xvf gtimelapse-0.1.tar
cd gtimelapse
sudo apt-get install build-essential libgphoto2-2-dev libwxbase2.8-dev libwxgtk2.8-dev gphoto2
./configure
make
sudo make install

Для запуска типа приложения

gtimelapse &

примечание 1

gphoto2 --list-cameras | more

примечание 2

см этот блог для получения дополнительной полезной информации

перечисляет все совместимые устройства, которые поддерживает приложение

примечание 3

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

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

ffmpeg -pattern_type glob -framerate 25 -i 'image-*.jpg' -c:v libx264 \
    -profile:v high -crf 20 -pix_fmt yuv420p output.mp4

Вот добавляю -pattern_type glob, используя подстановочный знак *и поместив мое имя файла в одинарные кавычки: 'image-*.jpg',

Преимущество: этот синтаксис позволяет вам начинать с любого номера и иметь любой шаблон в вашей нумерации (я часто создаю счет на 20, начиная, например, с 20000).

Недостатки: этот синтаксис не позволяет пропускать повторяющиеся цифры, как позволяет синтаксис "%##d". Кроме того, у вас не может быть схемы нумерации без предшествующих 0. То есть схема именования файлов должна быть чем-то вроде 00001, 00002,...00033... (Нумерация не может быть 1,2,3,...33,..., иначе число "3" будет сортироваться между "39" и "40", например).

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

Из этого редактирования от анонимного пользователя.

Лучший и простой способ сделать это - установить Motion. Это полнофункциональное программное обеспечение для наблюдения за операционными системами на базе Linux.

Установить через центр программного обеспечения

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

Camorama - это средство просмотра / записи веб-камеры, которое я использовал для съемки фотографий с интервалом в 1 минуту и ​​загрузки их на веб-сервер с моей веб-камеры; это простая установка. Также он доступен в Центре программного обеспечения Ubuntu или вы можете установить его, используя:

sudo apt-get install camorama

Надеюсь это поможет.

Вы должны иметь возможность настроить движение (в файле motion.conf) для потоковой передачи - по умолчанию он транслируется на порт 8081. Все, что вам нужно сделать, чтобы получить зеркало заднего вида, это открыть VLC, "Открыть сетевой поток" и укажите на http://localhost:8081/.

Другие вопросы по тегам