Cómo acelerar por harware operaciones con videos

Cómo acelerar por hardware operaciones con video.

Hola! Tengo un hw bastante modesto (i5, 8G RAM), Linux Mint y hago muy cada tanto algo de edición. Así que estuve mirando cómo hacer para ver cómo era mi tarjeta gráfica, para ver si había algún recurso de aceleración que no había aprovechado. Encontré que debía hacer >> lspci | grep VGA >> sudo lshw -C video ahí, supe que tenía una plaqueta gráfica intel HD Graphics 5500

OBS Studio

En los ajustes avanzados de salida, apartado video, descubría que tenía la posibilida de comprimir usando hardware, pero cuando lo traté de habilitar, me informé de que faltaba habilitar la aceleración Ahí me informé que existe una biblioteca de uso de mi tarjeta gráfica llamada vaapi, así que busqué $ sudo apt-cache search vaapi ahí me encontré con dos paquetes que pocedí a instalar $ sudo apt-get i965-va-drivera $ sudo apt-get i965-va-driver-shaders y entonces empezó mi obs studio a funcionar mucho mejor

Verificando el uso

Para poder ver el nivel de exigencia de mi tarjeta, instalé $ sudo apt install intel-gpu-tools Así al hacer $ sudo intel_gpu_top podría ver el nivel de exigencia

FFMpeg: transcodificando

Después, encontré que ffmpeg también nos permite utilizar la gpu para transcodificar. $ ffmpeg -vaapi_device /dev/dri/renderD128 -i <inputfile> -vf 'format=nv12,hwupload' -c:v h264_vaapi <outfile>.mkv

KDEnlive: Edición de videos

Finalmente, me encontré intentando lograr la aceleración de videos. Buscando, encontré que podría ser posible, pero primero es necesaria la biblioteca movit y rtaudio. $ sudo apt-get install librtaudio6 $ sudo apt install libmovit8

Encontré algún artículo 1, pero aparentemente sólo recompilando la librería MLT se podría hacer.

1

https://forum.manjaro.org/t/kdenlive-intel-gpu-acceleration-rendering-h264-video-boost-encoding/88829

Análisis encuesta asistentes

Decidí que necesitaba algo más de información respecto del perfil y las preferencias del público que asistió a los eventos que coorganicé en el año pasado.

Quiero así también conocer qué tal estamos yendo, la edad y el género promedio de las personas que asistieron. Así que envié emails a todos los emails registrados, enviándoles una salutación de fin de año y también mandándoles el link para completar la encuesta. También puse en todos los grupos en redes sociales que surgieron de las reuniones, Telegram, Whatsapp, Facebook y por Twitter.

El resultado final pueden verlo acá:

resultado final.

Proceso de análisis

Una vez obtenidos los datos, el desafío fué bajar la información. Encontré que podía abrir planilla de cálculos con los resultados y posteriormente exportar a CSV (Comma Separated Values).

Conectando con la API de Google

Pero luego me sugirieron conectar directamente con la API de Google, y así fué que cree un proyecto en Google usando la consola Google.

Fuí al dashboard del proyecto, y de ahí seleccioné APIs, y navegué a la biblioteca de APIs.

Habilité Google Drive API, luego fuí a crear credenciales. Allí elegí que la llamaría a la API desde otra interfaz de usuario (CLI, Windows) y que necesitaría usar datos de usuario.

Luego cree una cuenta de servicio llamada encuesta, y bajé las credenciales en formato json. Las copié al subdirectorio en el que se encontraba mi notebook jupyter.

Ahí fuí a la hoja de cálculo GCalc, y la compartí con el usuario de la cuenta de servicio, que tiene un email que termina en encuesta@.....iam.gserviceaccount.com.

Creando el notebook de jupyter para análisis de los datos

Para crear la notebook jupyter, cree un nuevo environment y los añadí como kernel a jupyter. Para esto cree el virtualenv

>>> conda create -n myenv

Activé el environment creado

>>>  conda activate myenv

Luego instalé el paquete que provee el kernel IPython para Jupyter

>>> pip install --user ipykernel

Y finalmente lo activé

>>> python -m ipykernel install --user --name=myenv

Cree un nuevo notebook con el environment, y procedi a crear una celda especial para instalar los siguientes paquetes:

>>> import sys
>>> !{sys.executable} -m pip install pandas, numpy, matplotlib, gspread, oauth2client

Presentación y publicación de los resultados

Una vez instalado todo, utilizando las credenciales de google anteriormente bajadas, agregué el código para bajar la información directamente de la planilla y para realizar el análisis.

Una vez que completé el análisis, y realicé los gráficos correspondientes, procedí a exportar en formato HTML el resultado. El problema fué que cuando mostré los mismos, me dijeron que el hecho de que el código de programación python se entremezcle con los resultados resultaba confuso.

Para evitar esto, al html exportado le agregué el siguiente código:

<script>
function myFunction() {
    var x = document.getElementsByClassName("highlight");
    var i;
    for (i = 0; i < x.length; i++) {
      if (x[i].style.display === "none") {
        x[i].style.display = "block";
      } else {
        x[i].style.display = "none";
      }
    }
}
</script>

Después, dentro del bloque de la descripción inicial agregué un botón:

<button onclick="myFunction()">Mostrar Ocultar código fuente</button>

Luego del tag body, en el evento onload, también llamé a la función para que al leer la página también lo oculte:

<body onload="myFunction()">

Finalmente, lo agrego a mi blog como una página estática, en el subdirectorio stories, con formato html. Para que el generador de páginas estáticas Nikola lo agregue, precedí con

<!--
.. title: Análisis de la encuesta
-->

El resultado final pueden verlo acá:

resultado final <https://mavignau.gitlab.io/blog/stories/analisis-de-la-encuesta/index.src.html>

PyCon Cleveland, Ohio

Galería de fotos

El día 29 de mayo salí en colectivo desde Resistencia Chaco hacia Buenos Aires, hice un día de escala y el primero de mayo partí en un vuelo con dos escalas hacia Cleveland, Estados Unidos.

Justo antes de embarcar en el avión a Cleveland, me encuentro con Cris Ewing cuya remera decía PyLadies, me acerqué a hablar y justamente íbamos al mismo destino.

Vista de Cleveland

Vista de Cleveland

Al llegar, tomé el bus para ir al centro de la ciudad, cerca del cual quedaba en centro de convenciones. Era plena primavera, así que habían arreglos de flores por todas partes, particularmente, muchos tulipanes.

Bellísimos tulipanes multicolores

Bellísimos tulipanes multicolores

Llegué allá al mediodía del dos de mayo, para asistir a la tarde del último día de los tutoriales, y ver la exposición con los stands. Era muy grande, al menos cinco filas de stands, con destacados de las mayores corporaciones, otros de empresas menos conocidas, pero importantes, y con varios stands dedicados a comunidades como PyLadies o DjangoGirls.

En el Stand de Django Girls

En el Stand de Django Girls

Nos daban un desayuno, con café, té, varios tipos de leche (común, de soja, de almendras, etc), avena caliente, pastelería, frutas y algo salado, como burritos. El almuerzo, había una carne, que podía reemplazarse con tofu, con diversos acompañamientos, como ensaladas, y también, independientemente, una bandejita de ensalada, que traía algún sandwich, un paquete de papas fritas (las que nos sirvieron eran más crocantes y duritas, y mucho más sequitas que las habituales por acá).

Todo el día había café, té y leche, a la tarde se servía una merienda con pastelería y cerraba a las 7 de la noche cada día.

Al llegar el día 3 de mayo, fuí directamente al salón destinado a la PyCon Charlas. Como llegué temprano, me encontré hablando con Naomi Ceder , que estaba esperando a las personas

Junto a Naomi Ceder

Junto a Naomi Ceder

Mi charla era la segunda programada en la mañana, así que esperé hasta que me tocó darla

Iniciando mi charla

Iniciando mi charla

Durantes los tres siguientes días había actividades diversas para hacer: se podía asistir a las charlas, se podía ir a los open spaces, salones que podían ser solicitados por personas o grupos para realizar actividades diversas, cada una a diferente hora.

Tablero de open spaces, donde los asistentes proponían temas

Tablero de open spaces, donde los asistentes proponían temas

Los últimos días fueron para los sprints, los cuales dan una oportunidad única de trabajar en proyectos de fuente abierta junto a los más reconocidos desarrolladores de software. Primero ingresé a trabajar al sprint de Flask, un framework para desarrollo web con un enfoque modular, muy utilizado por su sencillez.

Los proyectos en los que se podía realizar desarrollo

Los proyectos en los que se podía realizar desarrollo

Más tarde me encontré con Marlene Marchena‏, una mujer peruana que venía a dar un taller sobre iniciación en el desarrollo para niños, utilizando Python para programar sobre Minecraft.

Ella me llevó al sprint sobre BeeWare, un ambicioso proyecto que pretende ser un completo framework para desarrollo multiplataforma, y como Russell Keith Magee, el principal desarrollador, tenía simplificado el accesos para los principiantes, durante el segundo día y tercer día. A cada persona que lograba hacer una contribución al proyecto, nos daba una pequeña medalla, ambas logramos tener nuestro pequeño trofeo.

Russell Keith Magee daba un medalla por la primera contribución.

Russell Keith Magee daba un medalla por la primera contribución.

Durante el almuerzo del tercer dia de sprints, armamos una mesa en la de hispanohablantes, y me enteré que se estaba realizando la traducción al castellano de parte de la documentación de Python, y que la persona a cargo era el español Raúl Cumplido , compañero de trabajo de Manuel Kauffmann.

Con Raúl Cumplido.

Con Raúl Cumplido.

Los últimos dos días tuve algo de tiempo para conocer la ciudad de Cleveland. Tiene una arquitectura magnífica, pude disfrutar del Rock & Roll Hall of Fame, de la Biblioteca Pública, del Centro Glenn Close de la NASA, y del Museo de Arte. También ví la Universidad Estatal de Cleveland, son dos manzanas con dos torres de más de 20 pisos y varios otros edificios de al menos 5 pisos cada uno.

Paisaje de Cleveland.

Paisaje de Cleveland.

Para ver muchas más fotos, en la galería

PyCamp 2019

PyCamp 2019, Los Reyunos

Volví del PyCamp en Mendoza

Excelente!

La llevé a Chiara, mi hija de 12 años, se adaptó de maravillas. Y a Ariel, un amigo de las épocas gloriosas de FidoNET, hace 25 años.

El padece obesidad: hay muchísimas barreras para gente como él. Siempre debe comprar servicios premium en los transportes para asegurar un asiento suficientemente ancho. Va en primera clase en el avión, usa coches cama en bus, necesita camas matrimoniales para las habitaciones. Y los costos se elevan considerablemente.

Programé, y pude entender algunos proyectos más avanzados en Django, pero especialmente fui a disfrutar a mis acompañantes.

Chiara volvió entusiasmada con programar. La incorporaron a los juegos de mesa de la noche, hizo malabares, aprendió esgrima, tirolesa tipo bangi, nadó y se comportó con gran autonomía en el complejo de Los Reyunos. Y la comisionaron para hacer un ícono, que usaron para el bot de Telegram del Pycamp.

Presenté como propuesta a OpenLex, y hablamos con Marco Redondo sobre el estado actual del proyecto, del framework Web2Py en el que se basa. Está teniendo inconvenientes para ganar desarrolladores, aunque sigue siendo uno de los más fáciles y claramente organizado.

Lo hicimos andar y empezamos a hablar sobre los issues, los posibles usuarios, y el grupo.

Ariel volvió a encontrarse en un ambiente de informáticos apasionados. Habló con todos, especialmente con los estudiantes, el paisaje lo fascinó y sacó cerca de mil fotos, venía con un gran stress laboral y pudo relajarse muchísimo. Le encantó la comunidad, y terminó tan entusiasmado que me dijo para venir muchos más días el año que viene, y aprovechar aún más el viaje. Y hasta especulamos sobre un PyCamp en el Chaco, algo que estaría fantástico para impulsar a python por acá.

Un PyCamp de lujo!

Eventos, eventos muchos eventos

Armando varios eventos al mismo tiempo, y preparada para viajar a otros tantos

PyCamp

Por fin llegamos al pycamp 2019, voy a viajar con mi hija y con un amigo de muchos años, Ariel @panflin Nardelli. Estoy anticipando ansiosa la salida, esperando divertirme un montón como otros años. Todos los detalles ya están en su lugar. ¡Mucha expectativa!

PyCon US

Voy a viajar este año a la PyCon de Cleveland, Ohio. Me ayuda con los gastos la PSF, y estoy verdaderamente ilusionada con conocer por primera vez EEUU. Los detalles del trámite de la visa, los pagos del vuelo, y todo el papeleo, me abruman un poco, me parece sin embargo una excelente oportunidad de dar a conocer las investigaciones forenses y los desarrollos que hacemos en la provincia.-

Flisol

Como todos los años, desde el 2017, vengo coorganizando junto a Rolando @pelin Rodriguez la Flisol, este año lo hacemos en el Informatorio, A. Illia 1055 Estamos saliendo con el llamado a charlas y propuestas de trabajo, esperamos que continúe creciendo el evento como lo viene haciendo. Mi charla va a introducir a los multimedia con soft libre, dando un ejemplo práctico de cómo hacer un pequeño video tutorial.

PyDay NEA

Finalmente, también vamos a hacer PyDay NEA junto a Sergio Lapertosa, otro capo. Esta vez será el 8 de junio, en la UTN Facultad Regional Resistencia, vamos a usar el Salón de Actos y el playón para éso. Todavía no tengo decidido el tema espero contar con el apoyo de algunos genios para traer mucha más gente todavia.

Experimentando con Robótica Educativa

Este año vino al PyDay NEA a dar su charla Gary Servín @garyservin, que en Paraguay empezó un proyecto de robótica educativa llamado RoDI, acompañado por Mau Gavilán @mauroot.

Los había conocido en la primera edición de Robotec, año 2017, que se hizo en la Casa de las Culturas en Resistencia, Chaco, donde fuí con mis hijas.

Este año pude ir con mi hija menor, de 11 años, para que ella empiece a tomarle el gustito a ésto de la informática, la robótica y se divierta. Jugando con RoDI pasamos un excelente rato en Corrientes.

En la segunda edición de Robotec, decidí comprarle uno de los robotitos, así nos divertíamos un poco. Nos divertimos las dos un buen rato, programamos un poco usando la librería de python creada por Manuel Kaufmann @reydelhumo.

El código fuente está en rodi-fun

Finalmente, nos divertimos filmando un video que muestra las habilidades del pequeño robot.

El Software y yo - Un curriculum informal

El Software y yo

Un curriculum informal

Mi mamá era programadora en la primera computadora de la Provincia del Chaco cuando se embarazó de mí 0. Mi papá aprendió un poco después con su calculadra Texas Instruments TI59, que programaba con ella. Y a mí me mandaron a aprender a programar a los 10 años, y ¡me encantó!. Terminé una de las mejores programadoras infantiles.

Tokens, algoritmos, recursividad, pixels, direcciones de memoria, sprites, códigos de caracteres, Logos, Basic, Lisp eran las palabras del lenguaje secreto de mi adolescencia, que compartía sólo con la familia, jamás con amigos. Salía del aburrimiento del colegio secundario y programaba, y fuí una ávida lectora de ciencia ficción, clásicos, historias románticas, enciclopedias y todo lo que se viniera a mis manos. Hasta los libros de matemáticas universitarias y sexualidad de mamá.

Con mi papá sacábamos todo el provecho a nuestra Commodore 128, con diskettera e impresora de matriz de puntos MP1000 a color, eventualmente hasta tuvimos un pequeño plotter. Mi mamá optimizaba el código de mi padre, lo ayudaba con las matemáticas más avanzadas, (él era ingeniero estructuralista, pero mi madre fué titular de Análisis Matemático e investigadora en Matemática) A mí me tocaba la parte gráfica, diagramas de corte, esfuerzo, y de cargas. Estudié Ingeniería en Sistemas en la UTN, y ahí conocí y me puse de novia con el que sería mi marido. Pertenecí a Fidonet, cuando éramos sólo tres en el Chaco, y llegamos a organizar una de las primeras reuniones nerd del norte del país. En aquel histórico FidoAsado, era la única chica.

Antes de recibirme, me contrataron en ECOM, la empresa informática del gobierno de la Provincia del Chaco, donde mi madre era conocida por los más viejos empleados, algunos de ellos compañeros de trabajo en su tiempo. Allí trabajé programando durante 7 años, primero en VisualBasic, posteriormente también para mainframe en Natural/Adabas. Después fuí capacitada en Genexus, una herramienta que nunca consideré que obtuviera buenos resultados. Terminé de estudiar inglés en Extensión Universitaria de la UNNE, y rendí el First Examination de la Universidad de Oxford.

Siempre me pareció genial poder acceder al código fuente de los programas. Mi primer intento de instalación de linux fué con slackware, cuando todavía había que pasar las imágenes a los diskettes. Mi primer instalación con éxito, cuando por fin tuve una pc propia y tuve Red Hat 5, luego Turbolinux, Mandrake, un montón!. Y allá por el año 2004 empezó a llamarme la atención python: un lenguaje que estaba hecho para ayudar al programador. “Dive into Python” es todavía uno de los mejores libros técnicos que leí.

Salí de ECOM hastiada de la poca innovación en la empresa, y ya embarazada, me dieron la oportunidad para trabajar en el Poder Judicial del Chaco. Privilegié la estabilidad laboral: no había espacio para arriesgarme trabajando en una startup con un bebé recién nacido. Fué un largo tiempo en el que la programación dejó de ser profesión y se convirtió en hobby. Durante las horas laborales, aprendí a sacar información del sistema LexDoctor usando python, decidida a usar software libre en el juzgado en el que trabajaba. Gracias a él hice estadísticas, y me auxilié en varias tareas que me asignaron. El tiempo pasaba entre criar a mis niñas pequeñas y tener instantes para concentrarme en el software que poco a poco elaboraba. Hoy es pylexcom 1, una biblioteca de código abierto para línea de comandos.

Posteriormente, se realizó una profunda reestructuración en mi lugar de trabajo. Así que realicé trámites hasta que conseguí un traslado para colaborar con un colega que había conocido en un congreso informático. Lo que no sabía era que me encontraría en uno de los ambientes más hostiles de mi vida laboral, con un jefe ex-militar, doctor en abogacía y retrógrado. Durante ésos años tomé denuncias penales, una experiencia difícil pero enriquecedora ya que me permitió conocer historias y personas ajenas completamente a mi cotidianeidad. Técnicamente, de todas formas me arreglé para realizar BuscaLex 2, un programa que indexaba los datos extraídos del LexDoctor, usando pylexcom y wxPython, que a pesar de funcionar perfectamente, jamás fué implementado. Ahí fué que decidí liberar el código de la mayor parte de lo que hacía.

En el año 2008 decidimos con mi hermano menor, economista, iniciar un emprendimiento de desarrollo de software. Logramos conseguir el subsidio fonsoft, por la excelente presentación del plan de negocios. Sin embargo, no tuvimos éxito con el emprendimiento ya que las condiciones de mercado cambiaron.

Al siguiente año, 2009, viajé al primer Pycamp. El ambiente creativo, alegre y libre me fascinó, quería traerlo a mi vida diaria.

En el Poder Judicial, los terribles inconvenientes arrastrados llevaron a realizar una reestructuración completa en el Ministerio Fiscal, así que fuí elegida para formar parte de un nuevo equipo de trabajo. Durante mi permanencia en el cargo haciendo repetidas cédulas y oficios, hice el sistema ATC, ad-hoc y realizado gradualmente, para no perder oficio y para soportar el tedio, y lo repetitivo de la tarea.

Más tarde, en el año 2014, volvimos a intentar trabajar con mi hermano incorporando tecnología a una empresa chaqueña de reciclado de plástico llamada ReciNEA. El software de manejo integral de la organización, que incluía módulos de fabricación, fué realizado íntegramente por mí utilizando wxpython y sqlalchemy. Desacuerdos con la dirección de la empresa familiar impidieron su implementación.

En el año 2015 decidí poner dinero en la pasión, y hice la Diplomatura en Software Libre con Mariano Reingart. Cada mes viajaba a La Plata, hice un total de 6 viajes de casi 1000 km, hasta que concluí con uno de los dos mejores trabajos prácticos finales, un software para estudios jurídicos llamado OpenLex 3.

En 2015, además, trabajé confeccionando sola un software para la consulta de padrones electorales en los lugares de votación, el cual fué realizado con wxPython y SQLite y pudo ser implementado en todos los lugares de votación de la provincia. Hice una versión web del mismo software de consulta.

En el pycamp del 2016, pude participar de la creación de software en el lugar, haciendo un pequeño juego llamado Tower Defense 4. ¡Todavía me acuerdo la cara de Facundo viendo la cantidad de gente que se anotó para trabajar en equipo!. Empezamos a trabajar en la interfaz gráfica con Tony Abdala, pero después continué sola. Me puse manos a la obra, resolviendo la parte gráfica, el encargo me traía recuerdos de cuando era adolescente. El juego, lógicamente, funcionó.

Empecé a hacerme habitué de los pycamp. En el año 2016 Facu anunció por Twitter su software Recordium, y como había sido una delicia trabajar con él, decidí probar colaborar a distancia, a ver si podía poner en práctica lo aprendido durante la Diplomatura y hacer algo útil, más “en serio”. Los proyectos grandes me intimidaban, y además ¿cuál elegir? ¿alguno que aprecie mi trabajo?. Avanzamos, le agregué algunas features, preparé un instalador para Windows, hasta que entre obligaciones de ama de casa y trabajo, no tuve más tiempo para el hobby.

En el Poder Judicial, tuve un desacuerdo con mi jefe inmediato, que escaló hasta provocar un sumario: el detallado registro informático obtenido de ése tiempo me sirvió para tener material probatorio logrando que fuera desestimado. Luego de este incidente, al fin conseguí empezar a hacer un trabajo técnico nuevamente, ahora como perito forense. Desde el año 2016 soy la tercer perito especializada en informática en la Provincia del Chaco. En ése mismo año, terminé la Diplomatura en Pericias Judiciales.

Ése año volví a acercame para trabajar en Linkode, donde trabajé otra vez con Facundo y con Mati Barrientos. Encontré una issue que parecía más fácil para ingresar al proyecto, allá por el año 2016, y durante el año la completé 5.

En el año 2017 me encontré con un colega que quería organizar la Flisol en Resistencia, pero estaba algo decepcionado: necesitaban gente nueva, con ganas, entusiasta. Así que logré ponerlos en contacto con el Centro Cultural Alternativo en Chaco, y pudimos relanzar la Flisol en Resistencia. En la edición de este año 2018 ya logramos que viniera muchísima más gente, y estamos juntándonos los organizadores para realizar otro evento en septiembre. Este año hicimos un encuentro de Python en el NEA, estamos empezando a formar comunidad.

Facu entonces a mediados de 2017 decidió relanzar su blog, y contratarme para hacerlo con Nikola. Como siempre me había divertido mucho trabajar con él, le presupuesté ridículamente bajo, me duplicó lo precios, y empezamos. Luego de superar varios inconvenientes, en marzo de 2018 se implementó el sitio web. 6

Hoy estoy estudiando Abogacía en la Universidad Austral, preparé una charla inspirada en las innovaciones realizadas con python en mi trabajo como forense, y la presenté en la conferencia de seguridad informática ParanaConf y en el PyDayNEA. 7

0

https://www.ivoox.com/robotec-programa-21-audios-mp3_rf_25701675_1.html

1

https://github.com/marian-vignau/pylexcom

2

https://github.com/marian-vignau/buscalex

3

https://github.com/UniversidadDelEste/OpenLex

4

https://github.com/PyAr/towerdefense-pycamp16/pull/40

5

https://github.com/facundobatista/kilink/issues/21

6

https://blog.taniquetil.com.ar/posts/0758/

7

https://youtu.be/OFbdHaTReyU

Contents © 2020 María Andrea Vignau - Powered by Nikola