Tabla de contenido:

Cómo hacer un video secuencial: 7 pasos
Cómo hacer un video secuencial: 7 pasos

Video: Cómo hacer un video secuencial: 7 pasos

Video: Cómo hacer un video secuencial: 7 pasos
Video: Cómo hacer TIMELAPSE en GoPro 2024, Mes de julio
Anonim
Image
Image

En este Instructable, detallaré los pasos que utilizo para hacer un video de lapso de tiempo. El sistema y el hardware que utilizo para obtener las imágenes es una computadora Linux y una cámara IP en red. Una secuencia de comandos se ejecuta en la computadora Linux y cada x segundos sondea la cámara IP, toma una imagen, la redimensiona, la fecha y la hora y la guarda en el disco duro de la computadora. Para crear el video a partir de las imágenes, cubriré dos aplicaciones gratuitas diferentes en una PC con Windows y consideraré el uso de Linux como una opción.

Al obtener imágenes, debe calcular el tiempo entre cada imagen, o cuántas imágenes por hora o día necesitará para crear un video que se vea bien y no sea demasiado largo o corto.

En el caso de mi video ice off. Tomé una imagen cada 20 segundos desde justo antes del amanecer del primer día y pasé hasta el atardecer del día siguiente. Eliminé la mayoría de las imágenes nocturnas antes de procesarlas en el video, pero decidí mantener una "salida de la luna"

Esto me deja con alrededor de 4, 430 imágenes. Si produzco el video usando 25 cuadros por segundo, la duración será:

4, 430/25 = 177,2 segundos de duración. 177,2 segundos son casi 3 minutos.

Si desea capturar algo como una casa en construcción, entonces cada 3 a 5 minutos sería un buen lugar para comenzar.

Dependiendo de la frecuencia y el tiempo que necesite capturar imágenes, utilizo una para dos métodos diferentes.

Paso 1: Imágenes de una cámara IP

Imágenes de una cámara IP
Imágenes de una cámara IP

La mayoría de las cámaras IP que se utilizan en videovigilancia o para cámaras web de movimiento completo le permiten ver una imagen-j.webp

"https:///snap.jpg"

Para una cámara Planet:

"https:///image.cgi? resolution = 1920x1080"

Deberá buscar en Google la URL que se utilizará para la marca de su cámara.

Las imágenes de Ubiquiti y Planet que capturo tienen un tamaño de 1920 x 1080 (predeterminado para cada cámara, ya que son cámaras de 1080). Con este tamaño, terminas con una gran cantidad de datos y un archivo de video enorme. Me gusta cambiar el tamaño de la imagen a medida que la tomo y la escribo en el disco y mostraré este paso en mi guión. Yo uso convertir, que es parte de las herramientas de ImageMagick.

Paso 2: Captura de imágenes - Método 1

Captura de imágenes: método 1
Captura de imágenes: método 1
Captura de imágenes: método 1
Captura de imágenes: método 1

Utilizo este método para capturar eventos más cortos como el hielo. Puede usar este método para capturar algo como una mudanza y la configuración de un evento, algo que toma unas pocas horas o 1 o 2 días y donde puede eliminar cualquier imagen no deseada como la noche manualmente antes de procesarla en un video.

En Linux, un script para mi cámara Ubiquiti se ve así:

#! / bin / bash

# ir a la carpeta correcta

cd / inicio / steve / iceoff

# Ubiquiti - cámara ubnt

URL = "https://192.168.2.114/snap.jpg"

# dónde escribir imágenes

ubnt_dir = / inicio / steve / iceoff / ubnt

# retraso entre imágenes

retraso = 20

# el lazo

mientras que es verdad

# use la hora / fecha para estampar el nombre del archivo; esto debe estar en la sección de bucle

ahora = $ (/ bin / date '+% Y% m% d% H% M% S')

# obtener la imagen y escribirla como ubnt.jpg

/ usr / bin / wget -q -O "$ ubnt_dir / ubnt.jpg" -t 1 $ URL

# cambie el tamaño de la imagen ubnt-j.webp

convert -geometry 1024x "$ ubnt_dir / ubnt.jpg" "$ ubnt_dir / $ {ahora}.jpg"

# dormir durante el tiempo de retraso y luego obtener otra imagen

/ bin / sleep "$ retraso"

hecho

Qué hace el guión:

establecer una URL variable a la ubicación de la imagen en la red / cámara

establezca la variable ubnt_dir en el lugar donde queremos guardar las imágenes (deberá crear el directorio antes de ejecutar el script)

establezca la demora variable en cuántos segundos entre imágenes; esto hace que sea fácil cambiar el tiempo entre imágenes, simplemente cambie esta variable y vuelva a ejecutar el script

iniciar un ciclo con while true do - estos ciclos deberían continuar hasta que detenga el script con un ctrl-c

establezca la variable ahora como año, mes, día, hora, segundo

El 16 de febrero de 2019 a las 8 minutos y 29 segundos después de la 1 p.m. se vería como 20190216130829

use wget para tomar una imagen de la URL y escribirla como ubnt-j.webp

convierta la imagen ubnt-j.webp

dormir durante el número de segundos en la variable de retardo

retroceda y comience en el while verdadero do step

Para ejecutar este script, inicio sesión en mi cuenta y lo ejecuto desde la terminal, por lo que esto es bueno para capturar algo como el hielo de un lago, se hace en uno o dos días y necesito una imagen cada 20 segundos.

Paso 3: Captura de imágenes - Método 2

Captura de imágenes: método 2
Captura de imágenes: método 2

Para lapsos de tiempo más largos, como la construcción de un edificio o un proyecto de lapso de tiempo de un año, utilizo una forma diferente de capturar imágenes. Para esto utilizo cron.

Cron es una utilidad que ejecuta un comando una vez cada x minutos, horas, días o meses. Por lo tanto, puede personalizar cuándo se ejecuta el comando por minuto, hora, día, día del mes, etc. Un usuario en un sistema Linux puede tener su propio trabajo cron y se guarda en su archivo crontab.

Para un lapso de tiempo que dura meses en el que obtengo una imagen cada X minutos, uso un trabajo cron y un script ligeramente diferente en el sentido de que no requiere un bucle (mientras que es cierto, do y hecho) ya que cron llamará al script cada X número de minutos.

No solo puede usarlo para ejecutar el script cada X minutos, sino que puede restringirlo para que se ejecute entre ciertas horas para no tener que eliminar muchas imágenes nocturnas. A medida que cambian la temporada y las horas de luz, cambio mi trabajo cron para reflejarlo.

Para crear un trabajo cron, inicie sesión en su servidor Linux y ejecute: crontab -e Esto iniciará una edición de su crontab. Mi archivo crontab tiene una línea como esta:

* / 5 4-23 * * * /home/steve/timelapse/get.ubnt> / dev / null 2> & 1

El * / 5 significa ejecutar cada 5 minutos

El 4-23 significa ejecutarlo de 4 a.m. a 11 p.m. (esto cambia con la temporada para mí)

El primer * significa ejecutarlo todos los días del mes

El segundo * significa ejecutarlo todos los meses del año

El tercer * significa ejecutarlo todos los días de la semana

/home/steve/timelapse/get.ubnt es el nombre del script que se ejecuta

/ dev / null 2> & 1 significa poner la salida estándar en nulo y cualquier error en nulo; si no tiene esto, recibirá un correo electrónico cada vez que se ejecute el trabajo cron.

Mi script /usr/steve/timelapse/get.ubnt se ve así:

#! / bin / bash

cd / inicio / steve / timelapse

URL = "https://192.168.2.114/snap.jpg"

ahora = $ (/ bin / date '+% Y% m% d% H% M% S')

/ usr / bin / wget -q -O ubnt-j.webp

convertir -geometría 1024x ubnt-j.webp" />

Qué hace este script:

cambiar a / home / steve / timelapse

establecer una URL variable a la ubicación de la imagen en la red / cámara

establezca la variable ahora en año, mes, día, hora, minuto, segundo (para que podamos estampar la fecha / hora en la imagen-j.webp

obtener la imagen de la URL y escribirla en ubnt.jpg

cambie el tamaño de la imagen a 1024 píxeles de ancho manteniendo la proporción correcta y escriba el archivo como una marca de fecha / hora.

Al igual que con el método / script anterior, hará que los nombres de los archivos sean secuenciales y nos permitirá crear el video con los fotogramas en la secuencia correcta. Después de tener unos días de imágenes, las copiaré a una carpeta en mi PC con Windows para crear el archivo de video. Normalmente uso ftp para obtener los archivos en la PC con Windows, ya que están en la misma red y el inicio de sesión / contraseña como texto sin cifrar no está visible en Internet.

Paso 4: Copie las imágenes a una PC con Windows

Para copiar las imágenes del sistema Linux a una PC con Windows para procesarlas en un video, uso FTP.

El programa de Windows que utilizo para esto es FileZilla Client. Puede usar cualquier cliente ftp que prefiera, incluso la versión de línea de comandos en Windows.

Si sabe lo que está haciendo, también puede usar Samba o NFS y hacer que los archivos de Linux aparezcan como una carpeta en Windows.

Paso 5: Creación del video - Photolapse 3

Creación del video - Photolapse 3
Creación del video - Photolapse 3
Creación del video - Photolapse 3
Creación del video - Photolapse 3
Creación del video - Photolapse 3
Creación del video - Photolapse 3

Ahora que tenemos las imágenes, necesitamos unirlas para crear un archivo de video.

Hay muchos programas que puede utilizar para hacer esto y es posible que desee experimentar con diferentes programas.

Sin embargo, para una cantidad relativamente pequeña de imágenes como las que capturo durante uno o dos días sin hielo, utilizo el programa de Windows Photolapse 3, que desafortunadamente ya no se actualiza y ya no puedo encontrar el sitio web original. Sin embargo, está disponible en varios sitios de "descarga". Una búsqueda rápida en Google debería estar bien.

Lo bueno de este programa es que es un solo binario, por lo que no hay instalación. Simplemente descargue el binario y ejecútelo. La desventaja es que no procesará una gran cantidad de archivos. Por enorme me refiero a probablemente 20 mil o más, pero para algo como mi video ice off con aproximadamente 5, 000 imágenes está bien.

Inicie el programa, en el cuadro superior izquierdo profundice o busque dónde están almacenadas sus imágenes, luego ingrese el número de fotogramas por segundo (un número más pequeño hará que el video aparezca como cámara lenta). A continuación, haga clic en el botón "Cargar archivos de la carpeta actual"

Photolapse cargará y previsualizará cada fotograma y tendrás una idea de cómo se verá el video.

Cuando haya terminado de procesar toda la carpeta, haga clic en el botón "Crear película", cambie el nombre del archivo si lo desea y luego haga clic en "Guardar".

A continuación, debe elegir un método de compresión para el video o dejarlo sin comprimir. Utilizo "Microsoft Video 1". Todo lo que queda es hacer clic en "Aceptar"

Aunque deberá seguir todos los pasos nuevamente para elegir un método de compresión o códec diferente, vale la pena probar diferentes configuraciones aquí si necesita el video comprimido.

Las imágenes que utilicé para las capturas de pantalla en este paso fueron algunas de las imágenes originales de ice off. Usé 1191 imágenes de 1024x576 píxeles. Ocuparon aproximadamente 110 MB de espacio en disco. El video comprimido tenía 235 MB de tamaño y el sin comprimir 1,96 GB

Paso 6: Creación del video - VirtualDub

Creando el video - VirtualDub
Creando el video - VirtualDub
Creando el video - VirtualDub
Creando el video - VirtualDub
Creando el video - VirtualDub
Creando el video - VirtualDub

El otro programa que he usado es VirtualDub

Descarga los archivos zip aquí. Hay una versión de 32 y 64 bits

Descomprima los archivos en su propia carpeta.

Una de las cosas que deberá hacer con sus imágenes es volver a numerarlas secuencialmente. El uso de los nombres de archivo de sello de fecha / hora como los que crean mis scripts no funcionará con VirtualDub. Hay un par de formas de volver a numerar los archivos:

Primero, haga una copia de seguridad de sus archivos, luego otra copia de seguridad. Luego, usando la segunda copia:

Abra la carpeta con las imágenes, cambie la vista a "detalles", resalte el primer archivo de la lista, presione ctrl-a para seleccionar todos los archivos, haga clic derecho y seleccione "renombrar". Cambie el nombre del archivo a 1 y luego presione enter.

Esto procesará la lista de archivos y agregará (1).jpg, luego (2).jpg, etc., al nombre de archivo de 1.jpg

La segunda forma es utilizar un programa llamado Irfanview. Tiene un modo por lotes donde puede cambiar el nombre de los archivos secuencialmente como 1.jpg, 2.jpg, 3.jpg, etc. El modo por lotes también le permite cambiar el tamaño de las imágenes por lotes a un tamaño más pequeño si es necesario.

Una vez que se cambie el nombre de los archivos, inicie VirtualDub, haga clic en "archivo" y luego en "abrir archivo de video". Seleccione el primer-j.webp

Haga clic en "Video" y luego en "Velocidad de fotogramas", cambie esto a 30 (o la velocidad de fotogramas que desee probar).

Haga clic en "Video" y luego en "Compresión"; como con photolapse 3, usé "Microsoft video 1"

Para comenzar a procesar las imágenes, haga clic en "Archivo" y luego en "Guardar como AVI". Nombre el archivo y luego haga clic en "Guardar"

Esto iniciará el procesamiento y mostrará cuánto tiempo llevará.

Aunque hay más pasos para usar VirtualDub, procesará más archivos que Photolapse 3.

Hice un timelapse con más de 88,000 imágenes usando VirtualDub.

Paso 7: Conclusión

Para ver los videos de lapso de tiempo, puede usar un programa como VLC o el propio reproductor multimedia de Windows.

Hay muchas, muchas formas de capturar imágenes y hacer un timelapse.

Si tiene una cámara Canon, hay un firmware CHDK de terceros para algunos modelos que le permitirá usar la cámara en modo intervalómetro y tomar una foto cada x segundos.

¡Experimente mucho! Espero que hayas encontrado interesante este Instructable y si haces un timelapse, asegúrate de dejar un enlace en los comentarios.

Recomendado: