Modificar videos con nconvert y ffmpeg apartir de un video.

En este apartado voy a mostrar una forma de tratar los videos como haria cualquiera de los programas para tratamiento de video que hay por ahi, esta forma de hacerlo es original y inventada por mi mismo por lo que a cualquier persona que lo publique en algun otro sitio agradeceria que mostrara su origen.

Comentar que para el tratatamiento del video utilizaremos dos comandos que son el comando ffmpeg que se encuentra en todas las distribuciones de Puppy linux y el comando nconvert el cual nos podremos bajar y ver como funciona en :

https://misterelectronico.wordpress.com/2015/01/02/comnando-nconvert/

Bueno el por que modificar videos mediante comandos cuando hay programas profesionales y no profesionales para ello es sencillo de comentar, como veremos mas adelante, las combinaciones que podemos hacer mediante los comandos son infinitas.

Ningun programa por muy profesional que sea podra realizar tantas combinaciones.

Para nuestro ejemplo partiremos de un video echo por mi en las costas de Gijon en Asturias.

A partir de este video o cualquier otro video que tengamos nostros, procurar que no sea muy grande por ejemplo de 20 , 30 o 60 segundos.

PRIMER VIDEO EFECTO

1) crearemos una carpeta temporal mediante:

mkdir /temporal

2) Metemos el video que llamaremos por ejemplo “video1.mov” dentro de esta carpeta, no tiene por que ser en formato mov, puede ser en formato ts, mpeg, flv, avi etc..

3) Abrimos un terminal dentro del directorio temporal donde se encuentra el video.
No debe haber ningun otro archivo dentro de esta carpeta salvo el video.
Y ejecutamos el siguiente comando:

ffmpeg -i video.mov -qscale 0 imagen%d.jpg

Veremos que se crean muchos archivos *.jpg esto es por que saca todos los frame de imagenes que contiene el video.

4) Despues aplicaremos un filtro a cada uno de las imagenes que se han creado con el comando nconvert.

nconvert -out png -grey 256 -embossmore -balance 2 2 2 -autocontrast *.jpg

Crea un efecto tipo comic y se generara una imagen tipo png por cada una de las imagenes jpg que habia antes.

5) borraremos todas las imagenes «jpg»

rm *.jpg

6) Ahora volveremos a empaquetar todas las imagenes png con filtro en un video para ello ejecutamos el siguiente comando:

ffmpeg -f image2 -i imagen%d.png -target pal-dvd -aspect 16:9 final.mpeg
Obtendremos un video final.mpeg que contiene el video tipo comic del original

Y bueno el video resultante es el siguiente.

7) Borrar las imangenes png

rm *.png

SEGUNDO VIDEO EFECTO

Haciendo los mismos pasos que en el caso anterior pero abreviando la explicacion:

1) mkdir /temporal mover video.mov a /temporal

2) abrir terminal dentro de temporal y teclear:

ffmpeg -i video.mov -qscale 0 imagen%d.jpg

3) Despues teclear desde el terminal el filtro siguiente para convertir las imagenes a png:

nconvert -out png -grey 256 -embossmore -grey 256 -balance 30 30 30 -gamma 3.0 -contrast 20 -hls -904 -20 100 *.jpg

4) Borrar las imagenes «jpg»

rm *.jpg

6) Empaquetar de nuevo todas las imagens png mediante:

ffmpeg -f image2 -i imagen%d.png -target pal-dvd -aspect 16:9 final.mpeg

7) Borrar las imagenes png

rm *.png

El video que obtenemos al final es:

TERCER VIDEO EFECTO

Mas abreviado
1) mkdir /temporal video.mov a temporal
2) terminal : ffmpeg -i video.mov -qscale 0 imagen%d.jpg
3) Filtro: nconvert -out png -eedge 100 -eedge 100 -levels 1 30 -contrast 60 *.jpg
4) rm *.jpg
5) Termianal: ffmpeg -f image2 -i imagen%d.png -target pal-dvd -aspect 16:9 final.mpeg
6) rm *.png
7) El video final es:

CUARTO VIDEO EFECTO

1) mkdir /temporal video.mov a temporal
2) terminal : ffmpeg -i video.mov -qscale 0 imagen%d.jpg
3) Filtro: nconvert -out png -grey 10 -eedge detect -eedge detect *.jpg
4) rm *.jpg
5) Termianal: ffmpeg -f image2 -i imagen%d.png -target pal-dvd -aspect 16:9 final.mpeg
6) rm *.png
7) El video final es:

 QUINTO VIDEO EFECTO

1) mkdir /temporal video.mov a temporal
2) terminal : ffmpeg -i video.mov -qscale 0 imagen%d.jpg
3) Filtro: nconvert -out png -sepia 90 *.jpg
4) rm *.jpg
5) Termianal: ffmpeg -f image2 -i imagen%d.png -target pal-dvd -aspect 16:9 final.mpeg
6) rm *.png
7) El video final es:

SEXTO VIDEO EFECTO

1) mkdir /temporal video.mov a temporal
2) terminal : ffmpeg -i video.mov -qscale 0 imagen%d.jpg
3) Filtro: nconvert -out png -binary nodither *.jpg
4) rm *.jpg
5) Termianal: ffmpeg -f image2 -i imagen%d.png -target pal-dvd -aspect 16:9 final.mpeg
6) rm *.png
7) El video final es:

SEPTIMO VIDEO EFECTO

Una de las maravillas de los comandos es que podemos crear script para hacer como en este caso comandos combinados.

El siguiente filtro no es un filtro sino la aplicacion de un script a las imagenes.

Tenemos que crear un script con en nombre por ejemplo «convert» y que contenga lo siguiente:

#!/bin/sh
# Sirve para convertir imagnes jpg a mosaico de forma progresiva

N=0
M=0
P=0
S=1

MR=21

for F in *.jpg
  do
 archivo=$F

 if [ $P -lt 91 ] && [ $M -eq 0 ]; then echo $F $S; nconvert -out png -mosaic $S $F; let P=$P+1;  fi
 
 if [ $P -lt 11 ] && [ $M -eq 0 ]; then let S=$S+1; let P=0; fi

 if [ $S -eq 40 ] && [ $M -eq 0 ]; then let M=1 ; let P=0; let S=$S-2; fi

 if [ $P -lt 91 ] && [ $M -eq 1 ]; then nconvert -out png -mosaic $S $F; let P=$P+1; fi

 if [ $P -lt 11 ] && [ $M -eq 1 ]; then let S=$S-1; let P=0; fi

 if [ $S -eq 1 ] && [ $M -eq 1 ]; then let M=0 ; let P=0; let S=2; fi

 rm $F   
done 

Este script lo que hace basicamente es ir contando las imagenes y apartir de un numero determinado va incrementando el valor del filtro «-mosaic» dentro del comando nconvert:

El efecto es que la imagen se va pixelando en mosaicos de mas a menos y de menos a mas.

No me quedo muy bien por que no me lo he trabajado mucho pero bueno el efecto se puede apreciar.

Para crear el video hacemos lo siguiente:

1) mkdir /temporal video.mov a temporal
2) terminal : ffmpeg -i video.mov -qscale 0 imagen%d.jpg
3) Filtro: Ejecutar en el mismo directorio ./nconvert
4) Termianal: ffmpeg -f image2 -i imagen%d.png -target pal-dvd -aspect 16:9 final.mpeg
5) rm *.png
5) El video final es: FILTRO6

1) mkdir /temporal video.mov a temporal
2) terminal : ffmpeg -i video.mov -qscale 0 imagen%d.jpg
3) Filtro: nconvert -out png -binary nodither *.jpg
4) rm *.jpg
5) Termianal: ffmpeg -f image2 -i imagen%d.png -target pal-dvd -aspect 16:9 final.mpeg
6) rm *.png
7) El video final es:



El script anterior para ejecutarlo, esta echo de forma improvisada, y muy ampliamente mejorable, puede que sea necesario darle permiso de ejecucion:

chmod 777 convert

Espero sea todo esto interesante nos vemos:

 

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s