viernes, 30 de diciembre de 2022

¿Cómo emulo una Fairlight CMI IIx en Ubuntu?

En una nota del mensuario Panorama, Juan Perón expone cómo instalar QasarBeach IIz, el emulador de la mítica computadora sampler Fairlight CMI IIx en Ubuntu.

¡Masas Descamisadas!

Hemos vencido en las más importantes lides que se nos han presentado, pero no podemos dormitar en los laureles. Ya sabemos lo que sucede cuando dejamos de percibir - en las acciones inconfesables de siempre - a la antipatria y a la traición.  

El único dogma que hemos impuesto es que todo ha de estar al alcance del Pueblo, para que lo use el Pueblo. Sólo así tendrá un sentido beneficiario. Cualquier otra cosa solo servirá para dominarlo.

Nuestro Movimiento busca la auténtica Liberación del Pueblo, interpretando que ésta puede ser facilitada por quien - como reflejo preclaro de su alma - sea capaz de realizar este anhelo en forma de instrucciones de programación licenciadas en un todo bajo GPL. Esto es lo que hemos comprendido.

Vean señores, una CPU que existe sólo para intermediar en el control oligárquico del Pueblo, debe overclockearse hasta quemarse. Sólo se perderá así un elemento malévolo. Al fin y al cabo ya hemos afirmado aquello de que en cómputo propio, solo basta instalar software propio, y ir de /home a /var y de /var a /home.

Esto no siempre estuvo claro. Cuando nosotros dijimos eso el horno no estaba para bollos, había terminado la Guerra, pero hoy el mundo ha avanzado y este ya es un tango no lo toco yo solo; en este momento toda el África, el Asia, son todas repúblicas socialistas.

Existe cierto hardware que - a pesar de ser concebida con la mente puesta en el Pueblo - siempre fue seña de un Oligarca. Uno de las cocardas más representativas fue el de la Fairlight CMI, de 1979. 

Se trataba de un instrumento musical revolucionario por el hecho de ser computarizado, el primero en contar con la posibilidad de conducir muestras digitales adaptables en tiempo real, y como tal, el primer Sampler de la historia. Esta computadora de 8 bits de factura australiana fue diseñada por los compañeros Kym Ryrie y Peter Vogel del Sindicato del Sintetizador, y operaba un extremadamente potente sistema operativo situado en diskettes de 8 pulgadas. Su novísima interfaz permitía hacer uso de gráficas monocromáticas, e introducir información a través del teclado de sintetizador, el teclado de computadora, un futurista lápiz óptico, y una entrada de línea o micrófono, capaz de registrar y reproducir muestras digitales de entre 8 y 24 Khz. Al adquirir una se le podía hacer cantar la marcha peronista, ya que su nombre indicaba ser una Luz de Justicia Social. Lamentablemente, sólo podía hacerse después de abonar 12.000 libras del momento.

Nuestro Movimiento no se ha hecho fuerte por promesas, sino por sus realizaciones. Es por ello que hoy damos al Pueblo de la Nación el lujo de un sucedáneo fiel de esta máquina, a sólo título de gritar un sintetizado "¡Viva Perón!". Y lo hemos dado como sólo puede hacerse: con todo.

Se trata de QasarBeach IIz, un programa de audio dable de instalar en sistemas GNU con Linux como Ubuntu.

Se trata de una sumamente lograda reproducción de la primigenia estación de composición digital, la Fairlight CMI, especialmente en su iteración IIx. Por otro lado, incorpora nuevas funcionalidades planificadas por los desarrolladores originales, pero que nunca vieron la luz.

Para instalarla en nuestro sistema GNU con Linux debemos dirigirnos a la página de descargas y hacernos con el fichero qasarbeach129g.tar.gz para Linux. Asimismo conviene bajar el fichero QasarBeach.zip que contiene una demo de 25 MB, como la documentación, guide.zip y cookbook.zip.

Si todo va bien, estos ficheros irán a parar a nuestro directorio de ~/Descargas/. Como no tenemos un instalador automático, lo instalaremos a mano. Todo debería salir bien al abrir una terminawl con Ctrl+Alt+T e ingresar el siguiente bloque de Comandos de Organización:

cd ~/Descargas/
tar xvzf
qasarbeach129g.tar.gz ;
unzip QasarBeach.zip
mv ~/Descargas/qasarbeach ~/.quasarbeach/
mv ~/Descargas/QasarBeach/ ~/.quasarbeach/
echo "#!/bin/sh" > ~/.qasarbeach.sh ;
echo "cd /home/$USER/.qasarbeach/ ;" >>
~/.qasarbeach.sh ;
echo "./qasarbeach" >> ~/.qasarbeach.sh ;
echo "cd ~" >> ~/.qasarbeach.sh ;
chmod +x ~/.qasarbeach.sh

Una vez instalado, de forma opcional pero recomendable podríamos crear un lanzador para nuestro entorno gráfico. En el caso de Mate o GNOME hacemos clic con botón izquierdo sobre el panel de Aplicaciones, y en el menú contextual elegimos Editar Menús. En el panel de menús elegimos "Sonido y Video" y hacemos clic el botón "Nuevo ítem". Esto abrirá la ventana "Crear Lanzador", en la cual podremos instruir la orden: /home/usuario/.qasarbeach.sh.

Una vez completada la creación del lanzador, ya pooremos ejecutar fácilmente el programa desde Aplicaciones / Sonido y Video / Qasarbeach.

El humilde Pueblo Trabajador conoce de oído que esta revolucionaria Fairlight CMI operaba a través de un teclado y un señalador en forma de lápiz óptico, dirigiendo una serie de pantallas de control denominadas "Pages" (activables con los números y letras). Ahora podrán manipularlo, ya que al ejecutar por vez primera el peronista QasarBeach IIz, nos encontraremos con la primer Page, el índice, accesible siempre con 1.

Naturalmente, en esta versión acomodada a las Masas del Pueblo, el índice es operable por medio del ratón.

En primer lugar debemos ver la Ayuda, la cual accedemos presionando 9 para acceder a una novedosa Page 9 "Help".

Por medio de la tecla S, que activará la Page S, donde podremos configurar algunos aspectos de visualización de la aplicación - como activar pantalla completa, dar presentación a color o la más clásico tono verde monocromático (incluyendo efecto de video empalizado opcional). Todo esto apunta a ofrecer una lograda reproducción efectista desde lo visual.

La Page M nos permitirá configurar los aspectos MIDI, que se adaptarán si contamos con un controlador conectado al sistema. En caso de no contar con un controlador MIDI, bien podremos usar la fila inferior de las teclas del teclado, con la incomodidad ahorrativa que esto implica.

Hasta aquí las opciones mas o menos únicas de esta implementación modernizada. El resto lo constituye un versionado notablemente transparente del modo de uso y feeling de la Fairlight CMI IIx. Esto va desde la vetusta interfaz de comandos activable con la tecla Escape, hasta las páginas de su bien amado secuenciador Page R que la hizo reconocida en el mundo de la música pop de los 80s.

Como sucede con los grandes descubrimientos, este compositor de ritmos sumamente interactivo implicó una evolución de la que no se retornaría: permitía armar la partitura de samples preprogramados, y dispararlos para realizar temas, un concepto notablemente novedoso en 1980 y fundante de toda una nueva manera de componer música digitalizada.

En el Page R podremos acoplarlo también con las posibilidades MIDI que sólo incporporaron las Fairlight en sus últimas versiones, aquí totalmente integrado.

En apretado resumen didáctico, diré que la obra puede definirse una biblioteca de voces y secuenciarlas en el Page R, definiendo patrones rítmicos o secciones melódicas. Estos se pueden utilizar en forma de bucles o dispararlos en una matriz de patrones. Las partes melódicas es posible grabarlas desde un controlador MIDI (o con el teclado de la computadora).

La Page 2 permite agregar una carpeta de samples como favorita, a la vez trabajar en la elaboración de toda una biblioteca de samples que sirvan como ingredientes de la secuencias que podremos crear para nuestro proyecto actual.

Podremos seleccionar las muestras sonoras clásicas en formato .vc que se distribuían en los diskettes de 8 pulgadas de la Fairlight (sus 500KB que permitían contener hasta 22 muestras digitalizadas de unos pocos segundos). Sin embargo, como prenda de modernidad también podremos operar con formatos de audio modernos, incluyendo .ogg, .mp3, .wav, .au,  etc. Al seleccionar un sample en esta página podremos visualizarlo y oírlo. Al presionar nuevamente 2, podremos guardar la biblioteca en un fichero englobador nuevo (ideal para coleccionar samples en base a proyectos).

Si necesitamos capturar nuevas muestras sin tener que recurrir a samples originales, podremos hacerlo a través de la Page A. Esta permitía contemplar la grabación de muestras digitales a través de un micrófono o entrada de línea balanceada conectada a la máquina original a través de una plaqueta conversora analógico-digital especialmente concebida por Fairlight (la primer placa de sonido propiamente dicha), y hoy superada por el excelente sistema de audio de nuestro sistema GNU con Linux, quien toma la posta en este menester.

En la Page A en efecto delimitar qué sector de la muestra capturada ha de considerarse como sample, a la vez de determinar sus parametría básica general. Por lo demás, como sucedía en la Fairlight original, podremos generar armónicos de voz "a mano" graficando los armónicos como el la CMI original, que daba uso a un lapiz óptico conectado al monitor por un cable espiral tipo teléfono.

Por otro lado, podremos directamente editar la forma de onda con un completo editor integrado en la Page E.


 

Si presionamos 3 podremos conmutar entre las Page 3. La visión primaria de esta Page es permitir asignar la librería de voces previamente seleccionadas en la Page 2.

En tanto que la secundaria - presionando nuevamente 3 - se nos presenta el selector de voces para el teclado. Lo natural es que las voces se acondicionan a las teclas, alterando su altura tonal de forma proporcional como si de un piano afinado se tratara. Fue esta condición la que hizo de la Fairlight el primer sampler con teclado de estado productivo.

Ahora bien, en caso de requerir complejizar la muestra, bien podremos recurrir a la Page 4, con la cual se hará factible graficar directamente perfiles armónicos de distinta índole para alterar la paleta sónica de la muestra en cuestión.

Esto no quedaba aquí. Por medio de la Page 6 hacía posible también trazar una onda sónica inexistente, lo que permitía una creación puramente sintética del sonido que escapaba del áurea paramétrica tan en boga en la era de la síntesis substractiva. A su vez, esta podía servirse de una portadora programable de onda sinusoidal, diente de sierra o rectangular. Es que no sólo fungía de Sampler, la Fairlight podía controlar tres voces de sintetizador también.

La Page 7 permitía definir más a fondo los parámetros de las 3 voces de oscilación, lo que completaba esta estación de trabajo musical con una potencia creativa inusitada en lo que hacía a los efectos digitales (limitados y en mono) que permitía la original.

El modelado final podía darse con una etapa de edición de armónicos. Estos armónicos permitían trazar el carácter del sonido de una novedosa forma visual, que incluso incluía - al procesarla - la clásica visión tridimensional a 45º de la Page V de la Fairlight, hoy rutilantemente rotativa gracias a la alta potencia de cómptuo Justicialista.


Las opciones de síntesis también están contempladas, con LFO, y distintos parámetros realizables.

Por otro lado, en la Page F dispararemos un bus estéreo de efectos de sonido programables. Estos equivalen en gran medida y cuantía a los originales, pero en este caso son reproducciones digitales de la circuitería en gran parte analógica y mono de la Fairlight original.

Naturalmente, el manejo requiere explayarse en el manual de la Fairlight original, pero no es absolutamente necesario.

Pues bien señores, estos instrumentos fueron diseñados para que los use el Pueblo. Es una herramienta, otra herramienta. Una herramienta puede ser un hacha para cortar madera y construir una casa, o ser un arma para reventarle la crisma a un vecino. Todo depende de cómo lo usa el Pueblo. Nosotros decimos que si hay que hackear, hackearemos para el pueblo.

martes, 20 de diciembre de 2022

¿Cómo instalo un emulador de ZX Spectrum en Ubuntu?

Incluso reunido con Sindicalistas en su mítica residencia de Puerta de Hierro, Juan Perón centralizaba los vaivenes de política argentina. En uno de dichos encuentros explicó cómo emular un ZX Spectrum en Ubuntu.

(...)

De poco le vale el Gobierno a estos señores que todo lo que han hecho, lo han realizado en contra del Pueblo.

La acción de los hombres patriotas y el trabajo mancomunado es hoy lo único que salvará a la Patria. Porque yo no llamo Patria a sus campos, o a sus casas, sino a los hombres que trabajan en pos de estas realizaciones. Es para ello que nos hemos encuadrado, para realizar aquello que por otra parte, no ha sido sino el objetivo de los caballeros que lucharon por la Independencia, y de sus hijos que trabajaron por consolidarla.

Nosotros sabemos perfectamente bien cuales son los anhelos de los Trabajadores, y será usted un gran representante y delegado en el país, que les hará llegar mis saludos, esta carta, y esta cinta magnetofónica. Indudablemente que mi regreso está hoy mas cerca que nunca pues si este señor sigue en esta tesitura, no habrá más que volcar a la calle a las Masas con una consigna clara, y en un pronto santiamén todo tendrá el cause que nosotros esperamos. En ello cobra gran relevancia el rol de nuestros dirigentes.

Yo sólo ansío volver sin sangre, que es para lo que hemos invertido tiempo. Lo demás no lo haremos nosotros, sino que lo ha hecho ya nuestro enemigo. Que por otro lado ya son, cada día, menos. Pocos tienen pelo en las filas de Aramburu. Cuando hace mucho calor, el agüita se hace nube sola, ¿sabe?
 

En nuestro Movimiento, lo importante es llegar a las Masas. De nada serviría un software que sólo pueda ejecutarse en las más onerosas máquinas, mientras que el hardware más humilde permanece en la oprobiosa necesidad del más mínimo byte.

Es por ello que ya desde el Primer Peronismo nos dimos a suplir las necesidades de cómputo de un Pueblo que todo lo daba.

Naturalmente que esto implicaba grandes sacrificios que sólo podían venir de una certera forma de programar. Una en la que lo máximo se hiciera con lo mínimo, y en lo posible con nada. Esta es la verdadera forma de hacerlo: una donde eficiencia da todo de los últimos bits de memoria, resguardando en lo ínfimo material una espiritual computación para todos.

La Spectrum ZX82 de Sinclair Research consistía en la segunda versión de una microcomputadora de 8 bits concebida para masiva producción, basada en un procesador Zilog Z80 de 3,5 Megaciclos y con una memoria que que revistaba - de acuerdo al modelo o implementación - desde unos pijoteros 16 kilobytes hasta los 128 kilobytes de memoria RAM.

El objetivo era contar con un instrumento de cómputo al alcance del obrero de overol, que pudiese usar en su hogar para compilar una revolución en BASIC.

El sistema de operación iba contenido en 16 kilobytes de memoria ROM en placa, surtiendo el microcódigo del intérprete de Sinclair Spectrum BASIC 48 que permitía ingeniar microprogramas a través de un mediocre teclado gomoso. La salida de audiovisual comprendía un sintonizador de radiofrecuencia controlado por el microprocesador en sí, y unida a un aparato de televisión color presentaba un terminal de texto a 24x32 o gráficas de hasta 7 colores entre 15 posibles con una resolución tope de 256x192 pixels.

En fin, el conjunto permitía hacer cómputo, por media chirola.

Naturalmente esta maravilla del minimalismo se vio también clonada y copiada - tanto con licencias como por ingeniería inversa - en actos que podrían describirse como "robarle la billetera" a Sir Sinclair. 

Con justicia podremos continuar haciéndolo a través de Fuse, el Emulador Libre de Spectrum para Unix (y similares como el GNU con Linux). Podremos instalarlo fácilmente en Ubuntum abriendo una terminal con Ctrl+Alt+t e ingresando el siguiente Comando de Organización:

sudo apt install fuse-emulator-gtk spectrum-roms fuse-emulator-sdl fuse-emulator-utils

Tras introducir nuestra contraseña de Conductor del Ubuntu se instalará el emulador. Podremos ejecutarlo desde Aplicaciones / Juegos / Fuse (GTK+).

Al iniciar, el Fuse nos presentará una ventana con no pocas opciones que implican el modelo de Spectrum (basada en cantidad de memoria). También el nivel de velocidad emulada y los menúes de configuración. Pero por sobre todo, la pantalla del intérprete.

Naturalmente, siempre he afirmado que emular no es mas que meterle la mula al microprocesador. En esta vertiente, podremos simular el Zilog Z80 con diferentes volcados de memoria de máquina. Desde el menú Options / Select ROMs / Machine ROMs se nos permitirá simular desde las Sinclair Spectrum  16K, 38K, 128K, pasando por las versiones producidas bajo licencia por Times, y las versiones ampliadas de Spectrum hasta su modelo último SE. También podremos configurarle aditamentos como la interfaz de Joysticks Kempston, popular adminículo opcional para meterle dos palancas, o un controlador de puerto serial tipo Centronics.

Con sacrificio, la microcomputadora podía adosar un lento lector de cintas cassette, método favorito para resguardo de masa. Este método se encuentra sencillamente emulado para incorporarle software pre-hecho: podremos descargar programas desde sitios recopilatorios como www.worldofspectrum.org. Allí encontraremos varios formatos de almacenamiento, tanto de diskettes como de cintas cassette. 

Sin duda la manera más fácil es con los volcados cinta cassette, los cuales cuentan con un formato .tzx. En este caso, presionamos la tecla F3 para cargar el fichero tzx en el emulador y ejecutarlo sin más miramientos. También podremos hacer el mismo temperamento simplemente arrastrando un fichero .tzx a la ventana gráfica del emulador.

Mediante la emulación de los clásicos joystick Kempston, útiles para algunos juegos de plataforma típicos de esta máquina.

Naturalmente, también podremos programar en el BASIC 48 de 8K, haciendo uso del inefable teclado de múltiples usos, recurriendo a las teclas Mayúsculas para definir el cambio entre mayúsculas y minúsculas, Control para definir el caracter alternativo (indicado en rojo) y Alt para definir un caracter gráfico en las teclas que cuentan con ellas.

Vean señores, las teclas del teclado tradicional del ZX Spectrum permitían ahorrar tiempo en mecanografiado ya que comprendían no sólo caracteres (letras, dígitos, y acepciones gráficas) sino funciones (palabras clave, nombres de funciones de programación, colores, etc). Ciertas teclas contaban incluso hasta cinco usos.

 

La entrada con el teclado aparece en la parte inferior de la pantalla, a la izquierda del cursor, el cual podremos desplazar con las flecha izquierda y derecha del cursor. Debemos considerar, sin embargo, que su inserción no era tan "directa" como podríamos suponer, sino que debíamos recurrir a combinaciones de teclas para definir uno de los modos de inserción

Las teclas combinables eran:

Tecla CAPS SHIFT: (Mayúsculas): Alterna entre insertar caracteres en mayúsculas o en minúsculas.
Tecla SYMBOL SHIFT: (Control): Conmuta al símbolo alterno marcado en rojo en la tecla.

Como vemos, estas teclas permitían operar según el "modos de inserción" de la consola del Spectrum. indicados por la letra indicada en el proverbial cursor parpadeante de video inverso. Este podía ser:

Modo K: ("palabra claves"). El modo por defecto, que se encarga de insertar una función de programación, según el contexto (al comienzo de una línea, o a continuación de la función THEN, o luego de un : (excepto en una cadena). Si no presiona Mayúsculas, lo siguiente se interpretará como una palabra clave (escrita) o un dígito.

Modo L: ("letras") este modo inserta los caracteres en minúscula de forma convencional. Podrás utilizar la tecla Mayúsculas para conmutar a mayúsculas o bien presionar la tecla Caps Lock para activar el Modo C y escribir en mayúsculas.

Modo E. ("Función Extendida"): Por medio de la tecla Tab o Ctrl+Mayúsculas podrán insertar aquellas funciones de programación indicadas por debajo de la tecla. Las teclas con números tienen funciones extendida de color.

Modo G ("gráficos): Por medio de Mayúsculas+9 activa el carácter gráfico indicado en la mayoría de los números y teclas, permitiendo hacer gráficas simiescas, con autorepetición al presionar una tecla durante mas de 2 segundos. Se desactiva presionando 9.

Al presionar la tecla Intro ejecutaremos la línea de BASIC, y si la misma cuenta con un número de listado, la almacenará en memoria a no ser que cuente con un error de sintaxis de BASIC, en cuyo caso nos indicará un error en forma de insolente "?".

En la medida que escribamos algún programa de BASIC, el listado se presentará en la parte superior, el cual podremos desplazar con Mayúsculas+6 y Mayúsculas+7. Si presionamos Mayúsculas+1 pasaremos al modo edición, y la línea seleccionada pasará a la línea inferior de edición, donde podremos retocarla.

También podremos solicitar un listado del microprograma con la palabra clave K, o y correrlo con la palabra clave R

En ciertos casos podremos interrumpir la ejecución o bucle de programación con Mayúsculas+Barra Espaciadora.

Podremos encontrar un manual de ZX Spectrum aquí.

martes, 6 de diciembre de 2022

¿Cómo utilizo ffmpeg para convertir videos en Ubuntu?

Durante la visita veraniega de Juan Perón a Córdoba acompañado por su señora esposa, el Conductor del Justicialismo explicó cómo utilizar ffmpeg para convertir videos en Ubuntu.

(...)

Vean señores,

Este pródigo día Peronista nos recuerda la necesidad plena de contar del consabido descanso de nuestras actividades anuales. Las vacaciones pagas - las cuales hemos hecho realidad nosotros para todos los Argentinos - son uno de los logros que más hacen por el país. No sólo permiten retemplar el espíritu, sino que permiten elaborar mejor lo que debemos hacer en la hora del trabajo.

Las tareas de planificación en concierto con un alto objetivo como el que nos hemos impuesto, no puede más que depararnos en el futuro la grandeza que cultivamos con la felicidad del Pueblo.

Sabemos que nuestro Movimiento es uno que enarbola la necesidad de obrar por la Patria, y reconoce una sóla clase de hombres: los que trabajan. Atrás quedó una Oligarquía que no hacía nada y para beneficio de la cual se agotaban las verdaderas fuerzas productivas del país.
 

No todo es material en la vida. Es indudable que el tiempo de ocio nos permite un enriquecimiento espiritual, pero también intelectual. 

Vean ustedes que en nuestro sistema GNU con Linux, normalmente recomiendo utilizar el inefable Handbrake para operar las a veces necesarias conversiones de video. Se trata de un programa muy completo para estos menesteres.

Pero en las ocasiones donde las acciones de conversión o manipulación se vuelven repetitivas, qué mejor que utilizar la terminal de nuestro. En estas condiciones, la línea de comandos nos permitirá utilizar la ya histórica suite ffmpeg.

Se trata de un gran programa para la terminal en capacidad de oficiar para todo tipo de actividades poderosas en lo que incumben al control audiovisual de un fichero. En particular, se encadena a las librerías de codificadores de sonido y de imagen en movimiento, para poder hacer por diseño lo que nosotros queremos.

Si no lo tenemos instalada en nuestro sistema, podremos hacerlo abriendo una terminal con Ctrl+Alt+T e ingresando el siguiente comando de organización:

sudo apt update ;
sudo apt install ffmpeg

Una vez cargada la suite, también podremos cargar

El programa es muy completo, pero consta de muchos sufijos. Algunos de los más utilizados son los siguientes procedimientos:

  • Extraer el sonido de un video y guardarlo como MP3:

ffmpeg -i video.mp4 -vn sonido.mp3

  • Convertir fotogramas de un fichero de video o GIF en imagenes numeradas individuales:

ffmpeg -i video.mp4 -vn fotograma_%d.png
ffmpeg -i animacion.gif -vn fotograma_%d.png

  • Combinar imagenes numeradas (cuadro_1.jpg, cuadro_2.jpg, etc) en un archivo de video MPG o GIF:

ffmpeg -i cuadro%d.jpg -f image2 video.mpg
ffmpeg -i cuadro%d.jpg -f image2 animacion.gif

  • Extraer un fotograma de un video desde la marca de tiempo mm:ss y guardarla como una imagen de resolución 128x128 píxels:

ffmpeg -ss mm:ss -i video.mp4 -frames 1 -s 128x128 -f image2 fotograma.png

  • Recortar un video desde la marca de tiempo inicial mm:ss hasta la marca de tiempo final mmf:ssf:

ffmpeg -ss mm:ss -to mmf:ssf -i video.mp4 -codec copy recorte.mp4

  • Convertir video AVI a MP4 con códec de audio AAC a 128 kbps y códec de video h264 CRF 23:

ffmpeg -i video.avi -codec:audio aac -b:audio 128k -codec:video libx264 -crf 23 video.mp4

  • Extraer un subtitulo.srt desde un contenedor de video matroska.mkv:
ffmpeg -i matroska.mkv -c copy -map 0:s:0 subtitulo.srt
  • Remuxear el video del contenedor matroska MKV a MP4 sin recodificar los streams de audio ni video:

ffmpeg -i matroska.mkv -codec copy video.mp4

  • Convertir video MP4 a VP9 (para mayor calidad, se recomienda utilizar un valor CRF entre 15-35:

ffmpeg -i video.mp4 -codec:video libvpx-vp9 -crf 30 -b:video 0 -codec:audio libopus video.vp9

Podremos también extraer un recorte del video. Por ejemplo, para extraer desde el munto 1:02 al minuto 4:32 usaríamos:

ffmpeg -ss 01:00 -i "video.mp4" -to 04:32 -c copy recorte.mp4 

Incluso podremos utilizar ffmpeg en forma de guion para realizar tareas más complejas. 

Por ejemplo, podríamos querer acelerar un video un factor determinado (1.13x en este caso), y también hacer lo mismo con su audio.

nano acel_video.sh

Ingresamos el siguiente código fuente escrito en bash:

#!/bin/bash
## el setpts es 1/ el factor de velocidad.
## el atempo es el factor de velocidad (para que el video coincida con el audio).
speed=1.13
mkdir $speed
for i in *.mp4;
do
##para acelerar un achivo de video llamado vid.mp4 usar esta línea:
    ffmpeg -i vid.mp4 -filter_complex "[0:v]setpts=0.884955752*PTS[v];[0:a]atempo=1.13[a]" -map "[v]" -map "[a]" fast_vid.mp4    
## para acelerar mp4 de audio usar esta línea:
#   ffmpeg -i "$i" -filter:a atempo=$speed -vn -y $speed/"$i"
done

Y lo guardamos con Ctrl+o, y salimos con Ctrl+q, para finalmente darle permisos de ejecución con:

chmod +x acel_video.sh

...y así podríamos utilizarlo para acelerar un video llamado obligatoriamente vid.mp4 localizado en el mismo directorio:

./acel_video.sh

sábado, 3 de diciembre de 2022

¿Cómo activo el sonido HDMI automáticamente en Ubuntu?

¡Trabajadores!

Nuestro Movimiento es uno que tiene una única razón de ser: lograr la Felicidad del Pueblo.

Esto, que responde a los anhelos más puros del pueblo, nosotros decimos que hemos de lograrlo en primer lugar por medio de una Comunidad Organizada que dé lugar a esta realización, ya que nadie puede realizarse en una comunidad que no se realice.

Para ello hemos decidido instrumentar herramientas que nos permitan lograr esta Comunidad Organizada: la Libertad Económica, la Justicia Social, y la Soberanía Política. Estas son nuestras tres Banderas, y cada una depende de las otras. Este entretejido de acción es el sostén de nuestras Realizaciones.

Los principios son simples y requieren un claro entendimiento de solidaridad. Pero desde que el hombre es hombre, siempre habrá un vivo que querrá avanzar por sobre una Comunidad Organizada para desgajarla de su sentir de Felicidad. Siempre habrá de esos que pretenden perder soberanía política en pos de mayor libertad económica individual... a esos debemos formatearles el rígido, y darle un botellazo en la cabeza si es necesario.

Pues bien señores, por esas cosas de la vida, al conectar el puerto HDMI de una Laptop a Ubuntu, el sonido no sale automáticamente por el monitor o televisor externo conectado a través de la salida HDMI del de la notebook, sino que continúa saliendo por los altavoces de la laptop. Naturalmente esto puede remediarse "a mano", toqueteando la opción de Sonido de Ubuntu: haciendo clic en el ícono del "parlante", luego ir a Configuración de Sonido, y elegir el hardware externo (la TV por ejemplo).

Pero como no tengo manos, he decidido evitar todo este incordio creando toda una serie de scripts - a los cuales es tan adepto el sistema GNU con Linux - para que este cambio se realice de forma automática sin mi intervención directa, y de esta forma evitar esfuerzos innecesarios. Es natural: este tiempo ahorrado podremos invertirlo en tareas más acuciantes como lograr la definitiva liberación del software del Pueblo Argentino.

La solución ha de realizarse una única vez para que luego opere autónomamente según la opción: se activará el sonido digital HDMI toda vez que contemos con este tipo de cable conectado al puerto HDMI de la notebook, y naturalmente a su vez exista un monitor externo que cuente con salida de audio (ya que existen monitores con entrada HDMI pero sin altavoces propios ni conectores de salida de audio integrados).

Activar audio HDMI automáticamente en Ubuntu

En primer lugar hemos de abrir una terminal de comandos con Ctrl+Alt+t y crear un fichero de texto, que contendrá las reglas de configuración específicas para el sistema de audio a través del conector HDMI. Para ello ingresaríamos el siguiente comando de organización:

echo 'SUBSYSTEM=="drm", ACTION=="change", RUN+="/usr/local/bin/sonido_hdmi"' >> /etc/udev/rules.d/sonido_hdmi.rules

Acto seguido, editamos un guión de programación específico para estas reglas, al que llamaremos sonido_hdmi, y le daremos asiento en el directorio /etc/local/bin/. Podremos hacerlo utilizando el editor GNU Nano si ingresamos:

sudo nano /etc/local/bin/sonido_hdmi

Esto abrirá el editor Nano con un fichero en blanco. Habremos de pegarleel siguiente código de programación:

#!/bin/sh
## Programa para conmutar automáticamente el sonido HDMI
USER_NAME=`who | grep "(:0)" | cut -f 1 -d ' '| sort -u` USER_ID=`id -u $USER_NAME` HDMI_STATUS=`cat /sys/class/drm/card0/*HDMI*/status` export PULSE_SERVER="unix:/run/user/"$USER_ID"/pulse/native" if [ $HDMI_STATUS = "connected" ] then sudo -u $USER_NAME pactl --server $PULSE_SERVER set-card-profile 0 output:hdmi-stereo+input:analog-stereo else sudo -u $USER_NAME pactl --server $PULSE_SERVER set-card-profile 0 output:analog-stereo+input:analog-stereo fi

Una vez hecho esto guardamos los cambios en el fichero con Ctrl+o, y saldremos del editor Nano de nuevo a la terminal con Ctrl+x. No debemos olvidar otorgarle a este fichero sonido_hdmi ya asentado los permisos de ejecución, mediante:

chmod 0755 /usr/local/bin/sonido_hdmi

Finalmente, actualizamos las reglas para que Ubuntu las haga efectiva (debemos hacer lo mismo si deseamos eliminar reglas):

sudo udevadm control --reload-rules

Una vez reiniciada la netbook, deberíamos poder contar con sonido a través del dispositivo HDMI si utilizamos tal conector, y utilizar la salida analógica de parlantes de la notebook si este conector está desenchufado y sólo estamos usando el monitor de la laptop.

Deshacer los cambios

Si por algún motivo no quisiéramos eliminar y desestimar estas reglas y volver al procedimiento anterior, deberíamos recurrir a los siguientes comandos para volver todo a la forma en la que estaba antes:

sudo rm /etc/udev/rules.d/sonido_hdmi.rules ;
sudo rm /usr/local/bin/sonido_hdmi ;
sudo udevadm control --reload-rules