ffmpeg comando_parte 1

En esta entrada que comienzo ahora encontrais uno de los comandos mas interesantes de Linux, se puede escribir un enciclopedia con este comando y puede hacer infinidad de cosas, entre las cosas que puede hacer son:

Convertir videos de un formato a otro, convertir la resolucion de los videos, convertir audio de un formato a otro,  unir videos, cortar video, quitar audio a un video, meter audio a un video, aumentar el volumen de un video, disminuir el volumen de un video, crear un video con nuestras imagenes, realentizar el video, acelerar el video, poner filtros y buen infinidad de cosas mas que veremos mas adelante.

La gente puede decir, vaya tonteria, hay programas que te hacen todas estas cosas, bueno pues decirles que ni de coña van a encontrar un programa que haga todo lo que hace ffmpeg, por que con ffmpeg podemos controlar hasta el minimo parametro, pero ademas al ser un comando podemos manejar cientos de archivos de video a la vez, o bien hacer script que hangan multiples cosas sobre un archivo de una sola vez y esto no lo haces con ningun programa ni de coña.

Lo basico.

# ffmpeg -i video.mpg

Al teclear este comando sobre un video que estemos trabajando se nos abre una serie de mensajes, una serie de librerias  que estan activas para el comando ffmpeg y que sera util,  para cosas que queramos hacer mas adelante, luego una informacion referente a nuestro video, cuyas cosas interesantes son:

ffmpeg  version:  nos indica la version de ffmpeg que estamos trabajando muy interesante si queremos hacer cosas mas actuales y que todavia no estan en nuestro version actual de ffmpeg.

Duration 00:00:15,04    Esto nos indica la duracion de este video en este caso es practicamente 15 segundos

bitrate:  6170 Kb/s  Nos indica la tasa de transferencia del video, cuanta mas alta mejor sera nuestro video de calidad pero tambien su tamaño, hay una tablas por ahi para segun la resolucion ver que tasa de transferencia es la adecuada.

Stream #0: 0 [0x1e0] Video mpeg1video,  yuv420p, 1920×1080

Esta linea nos indica que el Stream 0:0 incluye el video, esto no tiene por que ser asi puede ser que en otro caso este stream contenga el audio, o subtitulos o cualquier otra cosa mas.

mpeg1video = es el coder con el que esta codificado el video.

1920×1080  Indica que este video es Full – Hd

Si el video contiene audio cosa muy probable puede contener una linea parecida a esta:

Stream #0:1 : Audio:  aac (mp4a /0x6134706D)  44100 Hz, stereo, 96 Kbs/s

Nos dice que el canal de audio o stream es el 0:1  ,   que la conversion de audio    es analogico analogico.

Que el audio es estereo,   que la tasa de transferencia es de 96 Kb/s,  algo escasa de calidad.

nos encontraremos otras lineas como

  creation_time :   Donde nos indica la fecha y la hora que fue creado el video.

  handler_name: como el proveedor del video.

Y otras cosas muchas mas interesantes pero que por ahora para lo que nosotros queremos mas que suficiente.

EXTRAER AUDIO DE UN ARCHIVO DE VIDEO.

En los videos hay streams o canales por los que van distintas informaciones como hemos visto antes, que pueden ser el canal de video, de audio, subtitulos, distintos tipos de datos etc… en realidad son distintos contenedores que podemos ver  mediante  ffmpeg -i archivo.mp4

Puede que alguna vez nos interese extraer el audio de nuestros archivos de video  para ello abrimos el terminal en el directorio donde se encuentra nuestro archivo y tecleamos la siguiente orden.

ffmpeg -i archivo.mov -ab 192 salida.mp3

Obtendremos un archivo salida mp3 con una tasa de compresion de 192 bits, se puede aplicar otras tasas como 224, 320 etc… pero seria mejor ver que tasa de compresion ya trae este video.

En este caso el archivo es del tipo mov, pero se puede aplicar este comando a cualquier tipo de archivo mp4, vob, ts, mpg, etc..

SUBIR EL VOLUMEN DE UN ARCHIVO DE VIDEO

Muchas veces hemos hecho una grabacion con nuestra camara y el video se ha quedado bajo, o tenemos esa cinta de VHS de nuestra antigua camara que el video es bajisimo.

El volumen de un archivo de video se puede subir mediante el comando:

ffmpeg -i video_entrada.mpg -qscale 0 -vol  1200 video_salida.mpg

se puede aplicar para cualquier tipo de archivo de video, normalmente  el volumen -vol

se ajusta a 256 por defecto, pero yo por ejemplo en un video muy bajo de volumen que tenida puse 1200 y luego

lo ajuste a 1800 y me dio un volumen bastante fuerte.

Simplemente tendreis que jugar con ello para saber cual es la mejor opcion.

 

Anuncios

Comando NCONVERT

Del comando nconvert se podria escribir una enciclopedia entera se pueden hacer infinidad de cosas muy interesante aqui voy a empezar un tutorial y ire añadiendio cada vez mas cosas.

Este comando es un comando que lo que hace es modificar imagenes, pero bueno tiene infinidad de utilidades, filtros etc..

Y vosotros direis para que utilzar este comando si hay programas como el mtpaint, el gimp y un monton mas de editores que ya lo hacen, pues muy sencillo la respuestas son las siguientes.

1) Imaginar que queremos convertir o aplicar un filtro o cualquier otra cosa a 450 imagenes por decir una cifra que se encuentran en un directorio, hacer una por una en mtpaint u otro editor es un coñazo, pues con una sola linea de comando de nconvert variamos los 450 archivos de una sola vez y muy rapidito.

2) Si queremos variar 450 imagenes o las que queramos pero a cada una con un filtro distinto o cualquier otra cosa hariamos un script con 450 lineas que se pueden hacer muy facil con copia y pega, y el script se encargaria de ello.

3) Si queremos a aplicar un filtro o varios filtros sobre una imagen o todas las imagenes que queramos, pero al mismo tiempo pues por cualquier editor de imagenes como mtpaint u otro, tendrias que hacer primero un filtro y luego aplicar el otro y asi sucesivamente, con una linea de comando aplicamos todos de una vez.

Bueno ya vereis lo comodo que es y la de multiple infinidad de combinaciones que se pueden obtener, combinando filtros y demas.

Espero que os enganche este comando por que es un comando que para lo poquito que ocupa de tamaño, la de infinidad de cosas que hace.

Podemos bajarnos  noconver de:

http://www.mediafire.com/download/ho0k6yp7ui5u58d/nconvert

Y una vez bajado lo colocamos dentro del directorio /usr/bin

Bueno vamos a ello, si desde el terminal tecleamos las siguiente orden:

# nconvert -help

Obtenemos la ayuda de todo el comando nconvert, si queremos salvarla en un fichero, para luego localizar mejor las opciones y demas podemos escribir la siguiente orden:

# nconvert  > /mnt/home/ayuda_nconvert.txt 

Bien vamos ir viendo algunos ejemplos de lo que podemos hacer con nconvert, vamos a trabajar con una imagen en este caso halle berry


Bueno partiendo de esta imagen que llamamos img1.jpg bueno vamos a abrir un terminal en el directorio donde esta esta imagen y tecleamos el siguiente comando.

nconvert -out png -embossmore img1.jpg

Lo que estamos diciendole es que nos cree una salida de archivo de imagen con extension png y que le aplique el filtro -embossmore y el resultado es un archivo img1.png que si lo abrimos con el visor nos sale esto:


Bueno el numero de combinaciones son infinitas casi, vamos a por otro.

nconvert -out png -embossmore -binary floyd img1.jpg

Con esta imagen aplicamos dos filtros a la vez -embossmore y -binary , recordar que podemos aplicar todos los
que queramos a la vez.

con esto obtenermos lo siguiente:

 

Otro mas:

nconvert -out png -embossmore -swirl 80 img1.jpg

Pobrecila la halle como a quedado ..

Bueno para no poner mas imagenes vosotros mismo podeis comprobando todo lo que puede hacer tecleando.

nconvert -help > /mnt/home/nconvert.txt

En este archivo nconvert.txt encontrareis todas las posibilidades de e nconvert, aqui o dejo una cuantas que he probado yo:

nconvert -out png -sepia 80 img1.jpg
nconvert -out png -solarize 120 img1.jpg

nconvert -out png -rotate 20 img1.jpg
nconvert -out png -sepia 80 img1.jpg
nconvert -out png -resize 300 148 img1.jpg
nconvert -out png -mosaic 30 img1.jpg
nconvert -out png -negate img1.jpg
nconvert -out png -medianb 5 img1.jpg
nconvert -out png -medianb 11 img1.jpg

nconvert -out png -levels 30 20 img1.jpg
nconvert -out png -levels 50 20 img1.jpg
nconvert -out png -levels 100 100 img1.jpg
nconvert -out png -lents 50 img1.jpg
nconvert -out png -grey 4 img1.jpg
nconvert -out png -grey 32 img1.jpg

Bueno ire poniendo muchos mas y combinaciones curiosas de los mismos animo a la gente que vaya poniendo muchos mas y pruebe.

Bueno una ultima cosa por ahora si lo que quereis es aplicar el mismo filtro a todas las imagenes jpg de un directorio lo que tendrias que escribir es un comado:

nconvert -out png -negate *.jpg

Esto lo que haria es que todas las imagenes de jpg se compiarian en archivos png pero estos saldrian negativos del original. *.jpg es el filtro para todas las imagenes de directorio, si son png *.png, *.tif, etc…

Bueno un saludo y nos vemos en el proximo post….. espero que os haya gustado.

Crear o manipular pdf de archivos texto doc, abiword, etc..

Bueno aqui tenemos el comando puppypdf es muy rapido y sencillo para crear ficheros pdf

La verdad que sencillo es crear ….. ejemplo tenemos un fichero en formato word que queremos convertir a pdf…. escribiriamos la siguiente linea de comando :

puppypdf -i fichero_entrada.doc -o fichero_salida.pdf

Y ya esta con esto hemos convrtido un fichero doc a pdf…

Y lo mismo para los abw de abiword….. de puppy

puppypdf -i fichero_entrada.abw -o fichero_salida.pdf

Que sencillito y que rapido.

Una de las cosas que me molesta y me quema mucho la vista es ver ficheros doc o abiword con fondo blanco.

Bueno abiword abre ficheros doc o de muchos formatos entre ellos el suyo con extension abw.

Una vez abierto les podemos variar los colores de las letras a nuestro gusto y luego poner un fondo oscuro de pagina para que nos queme la vista, y luego salvarlo con extension abiword, y lo podemos dejar asi y o bien convertirlo a pdf como hesmos visto anteriormente.

puppypdf -i fichero_fondo_negro.abw -o fichero_fondo_negro.pdf

Podemos tambien como hemos visto  anteriormente en vez un fondo de color,  ponerle mediante abiword la imagen que nostros queramos y hacer los pdf a nuestro gusto.

De esta forma ya vemos casi todas las opciones de crear un texto tipo doc, abw, rtf, docx, odt, txt, text, ps, sxw, etc.. a pdf.

CONVERTIR UN PDF A TEXTO

Si queremos recuperar texto de un pdf para poderlo utilizarlo en otro archivo podemos hacerlo mediante el siguiente comando.

pdftotext -layout archivo.pdf output.txt

El texto que nos sale es en formato texto plano, esto no esta enriquecido ni nada y ademas puede que segun este la pagina dicho texto nos salga descolocado, aun asi este comando nos puede ser utiles para ciertas cosas condiciones.

Si tecleamos el comando :

pdftotext –help

Podemos ver todas las opciones de este comando que son bastante y que nos puede ayudar a que el fichero de salida tenga mejor apariencia.

Una cosa muy util de estas opciones es que solo extraiga las paginas que nos interesa de un archivo pdf, ya que hay pdf con muchas paginas y no queramos extraerlas todas, el siguiente comando.

pdftotext -f 12 -l 18 -layout archivo.pdf output.txt

Solo sacara las paginas entre 12 y 18 ambas inclusive del archivo pdf.

CONVERTIR UN PDF A HTML

Una forma de convertir un pdf a formato pagina web, o html es el siguiente comando que es muy interesante y con  el que luego podemos trabajar como queramos para luego convertirlo a de nuevo a pdf si queremos.

Ya se que hay editores de Pdf que pueden hacer todo esto, pero a mi nunca me acabaron de convencer totalmente, y mediante este metodo nostros simpre podemos llegar a tener el control total de toda la paginas.

El siguiente comando convierte un archivo pdf a html

pdftohtml -c -noframes  archivo.pdf archivo.html

Bueno veris que junto con el archivo html que se genera se generan un monton de imagenes que son las contenidas dentro del archivo pdf aparte del texto extraido que esta en el archivo html.

No borreis estas imagenes por que obviamente no se cargaran en el archivo html.

Como en el comando anterior las opciones de este comando las veremos tecleando.

pdftohtml -h

y al igual que el comando anterior queremos extraer unas paginas en determinado.

pdftohtml -f 12 -l 18 -c -noframes  archivo.pdf archivo.html

Nos extraira solamente las paginas que van de la 12 a la 18 inclusive.

Esta forma de extraer la informacion de un PDF es mucho mas interesante que, que el comando pdftotext ya que a diferencia de este , el pdftohlm nos guarda todas las configuraciones.

Luego mediante cualquier editor html podemos modificarlo y luego mas tarde convertilo de nuevo a pdf o cualquier otro formato.

CONVERTIR UN PDF A IMAGENES

Alguna vez puede ser interesante sacar una o mas paginas de un archivo pdf a imagen, para convertir un pdf en imagenes, podemos utilizar el siguiente comando:

pdftoppm  archivo.pdf  archivo

Este comando saca un monton de imagenes en formato ppm que empiezan por el nombre “archivo” con varios numeros secuenciales y un con extension ppm.

Al igual que los anteriores comandos si teclemamos el comando

pdftoppm -h

Podemos ver todas las opciones de este comando.

Los archivos ppm no se pueden visualizar con todos los visores de imagen, pero en puppy se pueden abrir con mtpaint y modificar, pero si no queremos tomarnos este trabajo y queremos que a la salida obtener archivos jpg pues tecleamos el siguiente comando.

pdftoppm  -jpeg archivo.pdf  archivo

Obtendremos archivos de extension jpg y con el comando:

pdftoppm  -png archivo.pdf  archivo

Obtendremos archivos png, lo mismo para tiff.

Bueno este comando tiene un monton de opciones con las que podremos jugar y hacer las combinaciones que queremos.

 

CONVERTIR IMAGENES A UN PDF

Imaginemos que las imagenes anteriores las modificamos y luego las queremo convertir de nuevo a un pdf, o que queremos de imagenes que nostros tenemos hacer un pdf, para aglutinarlas todas en un archivo.

Bueno si no tenemos el comando nconvert bajarnos de aqui:

http://www.mediafire.com/download/ho0k6yp7ui5u58d/nconvert

Este comando nos va ha ser muy util en el futuro, para infinidad de cosas es un comando super interesante que ya veremos la infinidad de utilidades que tiene.

Bueno lo bajamos y lo colocamos dentro del directorio :

/usr/bin

Y bueno lo aconsejable es copiar todas las imagenes que se generaron en la descompresion del pdf con el comando

pdftoppm  -jpeg archivo.pdf  archivo

dentro de un directorio creado para tal fin como por ejemplo  temporal, metemos todas las imagenes alli y nos metemos dentro de este directorio.

Podemos modificar todas estas imagenes como queramos, he incluso meter mas imagenes mas numerandolas con el nombre adecuado para su orden correcto y un monton de cosas mas.

Una vez tengamos todas las imagenes ordenadas correctamente teclearemos el siguiente comando:

nconvert -out pdf -quiet *.jpg salida.pdf

Y veremos que en el directorio a cada una de las imagenes jpg se ha creado un fichero con el mismo nombre en pdf.

Luego con el comando gs — o goshScript  que viene por defecto en muchas distros de Linux tecleamos el siguiente comando.

gs -q -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=final.pdf *.pdf

Al final obtenemos un archivo final.pdf que es la suma de todos los archivos  pdf que se generaron anteriormente y en orden.

 

Bueno al que no le gusten los comandos este post realmente este post no le resultara interesante pero al que como yo le gusta cacharrear con los comandos, este post es interesante en el sentido que abre un campo a multiples cosas como ya vemos y como ya veremos mas adelante.

Creacciond de script que automaticen la conversion de pdf a otros formatos  y viceversa de la forma que nosotros queramos y de multiples archivos a la vez.

 

Nos vemos un saludo.