apt-get

FFmpeg: Solución para convertir, grabar y stream A/V (I)

Hace unos días atras hice una entrada sobre el Conversor de Video: WinFF así que buscando no me percate que no habia echo una guia/tutorial sobre su padre FFmpeg. Así que de esto tratara este post.
Por cierto antes de comenzar, una noticia para el mundo linuxero en pleno, me entere hoy 4 de Julio, que luego de 4 años FFmpeg y otros proyectos de codigo abierto (Mplayer y rtmpdump) estan en busqueda de nuevo proveedor de hosting, ya que Arpi el actual proveedor ya no podra alojarlos.Solo necesitan 4 Tb de espacio en disco y al menos 4 Tb de ancho de banda por mes, para su lista de correos, trac, samples repo, svn y más.
Pueden comunicarse a la lista de correo ffmpeg-admins o vía irc.freenode.net canal #ffmpeg-devel ,a continuación el feed:
screenshot gracias a la utilidad scrot
Continuemos, den un [play] y a seguir aprendiendo.

//widgets.jamendo.com/v3/track/1235170?autoplay=0&layout=standard&manualWidth=400&width=400&theme=dark&highlight=6&tracklist=true&tracklist_n=3&embedCode=

FFmpeg es una colección de software que puede grabar, convertir y hacer streaming de audio y video(1) además incluye la biblioteca de codecs libavcodec, demás decir que esta presente en todos las distros GNU/Linux e inclusive se puede compilar en Win$, el proyecto esta liberado bajo las licencias LGPL v2.1+ y GPL v2+ .
La instalación es sencilla, pueden buscarlo en sus respectivos repositorios o recurrir a la web del proyecto, inclusive clonarlo desde git(2).
sudo pacman -S ffmpeg
sudo yum install ffmpeg
sudo apt-get install ffmpeg
git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg

El proyecto lo compone 4 herramientas: ffmpeg que convierte audio y video de un formato a otro, además puede capturar y codificar en tiempo real desde DirectShow, tarjeta Tv o cualquier otro device compatible.

La forma más sencilla de usarlo sería:

ffmpeg -i input.mp4 output.avi

Lo espectacular de ffmpeg es que es más completo y complejo que solo esto, ya que tiene una amplia posibilidad de opciones.

Poniendo un ejemplo, si queremos ajustar la tasa de bits de video del archivo salida a 64 kbit/s, lanzamos el comando:

ffmpeg -i ingreso.avi -b:v 64k -bufsize 64k salida.avi
Si queremos forzar la velocidad de los fotogramas a 24fps:
ffmpeg -i ingreso.avi -r 24 salida.avi
La forma en que trabaja ffmpeg se puede resumir de la siguiente manera, este llama a libavformat (demultiplexor ó demuxer) para leer archivos de entrada y obtener paquetes que contienen datos codificados. Cuando hay varios archivos de entrada, intenta mantenerlos sincronizados mediante el seguimiento de marca de tiempo más bajo en cualquier flujo de entrada activa. Paquetes codificados se pasan al decodificador, el cual produce marcos sin comprimir (vídeo en bruto, audio PCM, etcetera ) que puede ser procesada por el filtrado. Después de filtrar, las tramas se transmiten al codificador, que codifica los paquetes y salidas. Finalmente los pasa al muxer (multiplexor), que escribe los paquetes codificados al archivo de salida.
Diagrama de Flujos hecho en Día
Para que tengan una idea, de entre las muchas opciones usadas tenemos:
-i nombre_de_archivo »» archivo ingreso
-f fmt »» fuerza el formato del archivo de ingreso o salida
-t duration »» cuando se usa como opcion del archivo de ingreso, limita la duración de los datos leídos, cuando se usa como opción del archivo de salida (se escribe antes del mismo) dejara de escibir la salida despues del tiempo escrito.
-c[:stream-specifier] codec ó -codec[:stream_specifier] »» seleccionar un codificador (cuando se utiliza antes de un archivo de salida) o un decodificador (cuando se utiliza antes de un archivo de entrada). codec es el nombre de un decodificador / codificador o un valor especial [copy] (sólo salida) para indicar que no es para ser re-codificado.
-to position »» detiene la escritura de salida en la posición XX
-fs size_limit »» establece el tamaño limite del archivo , expresado en bytes.
-frames [: stream_specifier] frameCount (salida, stream) »» deja de escribir el stream después de X frames [frameCount].
Creo yo que para un usuario normal es dificil conocer todas las opciones ya que tiene una barbaridad, me canse de leer el man ffmpeg así que el resto se los dejo a ustedes para que investiguen. 🙂

Señale 4 herramientas, a ffmpeg, se le une, ffserver, ffplay y ffprobe; pero creo que extender más esta entrada sería cansado, así que le dedicare un segundo post proximamente.

Así que por ahora me despido, buenas vibras lectores.


(1) esta ultima funcionalidad la desconocia.
(2) claro deben tener git previamente instalado en su distro.
Anuncios

Utilitarios CLI para analizar el HDD

Para esto usaremos iostat e iotop, el primero es parte de Sysstat (colección de herramientas de monitorización, que ya alcanza su versión 11.1.5 del 12-06-15), ninguna de las 2 opciones vienen preinstaladas, al menos en las distros que suelo usar, así que a instalarlas.

$ sudo pacman -S sysstat iotop
$ sudo yum -y install sysstat iotop
$ sudo apt-get install sysstat iotop

iotop
Nos permite monitorizar las entradas y salidas I/O a nuestro disco, indicándonos los procesos que usan un mayor porcentaje de lectura/escritura del disco.
Algunas hotkeys útiles como; [r] para indicar el orden de la columna donde nos ubiquemos, [←] [→] para movernos entre las columnas y la [q] para salir.
Argumentos como, —only nos permite visualizar los procesos que estén teniendo uso activo del disco, -k tamaño en kilobytes. Como siempre recurrir a un man iotop para información de mas opciones.
iostat

Nos permite conocer el rendimiento del disco, acepta una serie de argumentos opcionales con los cuales se especifica un intervalo de segundos y un contador para las repeticiones.
-c muestra el uso del CPU
-k muestra las estadísticas en k/s
-x muestra estadísticas extendidas
-d muestra un reporte a los “X” segundos
Y más, no se olviden de pasar por man iostat
Así que como comprenderan trabaja recopilando información del sistema de archivos /proc , generando una fila con los datos de cada uno de los discos físicos del sistema.
Debería hablar algo más sobre sysstat, pero ya existe una buen articulo muy completo sobre ella: sysstat, la colección de herramientas de monitorización de rendimiento
Hasta otro post y buenas vibras lectores.

Conversor de Video: WinFF

WinFF es una GUI para FFmpeg, así que como comprenderan solo los archivos de vídeo que pueda manipular ffmpeg sera los que usara WinFF, los formatos más conocidos que soporta son: 3G2, 3GP, FLV, H.264, M4A, AMR, MP3, MOV, VCD, WAV, WMV, AVI, MP4, JPEG, PNG, etc.
Esta disponible para distintas distribuciones Linux así como para Windows (incluida Win8), es un software open source, escrito en FreePascal y Lazarus.
Algunas de sus características principales:
  • Interfaz de uso sencillo.
  • Producción de alta calidad.
  • Convierte varios archivos diferentes, todos con el mismo formato a la vez.
  • Convierte de vídeo a audio.
  • No requiere codecs externos.
  • Gran variedad de ajustes predefinidos para la conversión de los formatos mas usados para Pc y dispositivos.
  • Soporta multi FFmpeg para procesadores de doble núcleo.
  • Especificaciones de parámetros CLI adicionales para usuarios avanzados.
  • Multilenguaje. 
Para instalarlo, basta con:
$ sudo pacman -S winff  (Arch/Manjaro)
$ sudo apt-get install winff (Debian/Trisquel)
Hasta otro post, buenas vibras lectores.

Synfig Studio: Software de Animación Open Source

Esa era la idea original desde el primer día la eliminación del proceso de interpolación. Pero ciertamente no es la única característica de Synfig que la hace única. Además de eliminar el proceso de interpolación, también quería que Synfig se utilizara para casi todas las partes de la producción excepto story-boarding y edición .

Robert Quattlebaum OSNews

Synfig Studio es un software libre y de código abierto para animación 2D, diseñada como una solución poderosa para la creación de animación de calidad cinematográfica utilizando ilustraciones vectoriales y de mapa de bits. Elimina la necesidad de crear la animación fotograma a fotograma, lo que le permite producir animaciones 2D de una calidad superior con un menor número de personas y recursos. Y para mejorar la cosa, es multiplataforma, está disponible para Windows, Linux y MacOS X.
 
Ya se encuentra en la versión 0.64.3, se han corregido varios bugs, como se muestra en la imagen a continuación.

Cuenta con un video curso de entrenamiento, aunque en solo 4 idiomas, ruso, ingles, chino y portugues, claro hay que hacer un pequeño pago por este $1 usando el método pay-what-you-want ó paga lo que quieras.

Inclusive pueden darse una vuelta por la wiki, donde encontraran bastante información, sea como usuario, developer y redactor; entiendo que se encuentra bien documentado.
Web del Proyecto: http://www.synfig.org/cms/
Como instalarlo:
En Arch – Manjaro
$ sudo pacman -S synfigstudio
Si se fijan bien, hace recordar a Gimp, por las ventanas flotantes, desconozco si se podrá usarlo en una ventana unificada.
En Fedora
$ sudo yum  install synfigstudio
En Fedora 21 encontraran el paquete 0.64.2-1.fc21
o el paquete RPM desde su web y luego doble click 
En Debian
$ sudo apt-get install synfigstudio
En Debian estable encontraran el paquete 0.63.05-1, ya saben lo estable que busca ser, para todos sus usuarios.
o el paquete DEB desde la web
Buenas vibras lectores, hasta otro post.

Opcion simulacion en apt-get ó aptitude

Cuando hay algo de tiempo, siempre me doy una vuelta por los man de los comandos buscando curiosidades o opciones que me puedan ser útiles y claro seguir aprendiendo.
Esta vez me estaba paseando por mi Debian y me fui a revisar el manual de apt-get.

$ man apt-get

Leyendo un poco, me encontré con esto, la opción -s (simulación):

Como dice, simula la ejecución de algún comando sin hacer cambios en el sistema, mostrando en pantalla lineas que representan una acción de dpkg. Desactivando los bloqueos (restricciones, permisos) de forma automática, para solo poder ser visualizados y nada más.
Por ejemplo:

$ apt-get -s install vlc

dando como resultado lo que se muestra a continuación:

Como ven aparece una nota advirtiéndonos que es una simulación y que apt-get necesita privilegios de administrador para la ejecución real y que tengamos en cuenta que se han desactivado los bloqueos, sin mas resuelve las dependencias y procede.
Ahora con aptitude la cosa cambia un poco, por no decir mucho, siempre usando el mismo paquete VLC. Probamos

$ aptitude -s install vlc

dando como resultado lo siguiente

Como verán pues no aparece ningún mensaje y luego de dar un (y) a la pregunta ¿Quiere continuar? pues nos salta una linea, sin mayores embrollos.
Inclusive en el manual de aptitude no cambia mucho la descripción de la opción, pero claro sin mayores alcances como con apt-get. A continuación el $ man aptitude con el detalle.

 

No olviden que la CLI es su amiga.
Buenas vibras lectores.