Si alguno de los presentes suele ver los vídeos de las carreras y se ha fijado, habrá visto que últimamente estoy añadiendo más datos a los vídeos de las carreras. Creo que ayudan a seguir mejor el vídeo, porque ver 10 vueltas sin saber nada más es complicado, y añadir la vuelta actual y la posición actual es sencillo. Pero además, en los últimos vídeos pude añadir información de velocidad y pulsaciones gracias al pulsómetro que Quique Sánchez me dejó para la ocasión.
Puede que adquiera alguno, o algún otro tipo de dispositivo para sacar datos del estilo y así seguir añadiendolos a los vídeos. Creo que este tipo de datos le dan un valor añadido a los vídeos (sean de karts, coches, patinetes o lo que queráis), así que voy a seguir el consejo de un compañero de trabajo y hacer una pequeña guía para contaros cómo lo he hecho y los pasos generales para hacerlo. Ojo, estos pasos no siempre serán iguales, más si usas aparatos o programas distintos, pero los conceptos sí lo serán.
En este caso os voy a contar cómo he hecho dos vídeos, uno en el Jarama con mi coche y otro en el karting de Los Santos de la Humosa durante el GP3 del CKRC 2015. El proceso es parecido aunque el inicio del mismo no. A grandes rasgos el proceso es el siguiente: adquisición de datos durante la tanda/carrera mediante el dispositivo que tengamos (móvil, pulsómetro, reloj inteligente, etc) y grabar la tanda/carrera claro, extracción de esos datos, edición de los datos para tener un formato concreto, procesado de los datos para poder añadirlos al vídeo y luego la edición del vídeo.
En general la gente tendrá dudas de todo el proceso anterior a la edición del vídeo. También en general veo que la gente lo sube cortado a Youtube, o que en youtube cortan con el editor integrado, pero aun así comentaré también por encima el proceso de editarlo. Lo que más puede echar para atrás a la gente es la primera parte. Sacar datos y jugar con ellos será algo que verán muchos como un trabajo complicado que requiere muchos conocimientos. Es cierto que los requiere, pero realmente requiere tener una mente despierta capaz de buscar soluciones y conocimientos a problemas de los que no tienes ni pajolera idea, y esta filosofía os puede valer para cualquier cosa en la vida, no sólo este artículo. En este caso yo conté con la ayuda de Javier Ranz para los temas de Matlab que veremos más adelante, y espero que este artículo os pueda ser de ayuda a vosotros.
Si aún estáis leyendo vamos a aprovecharlo para contar el proceso (uno de muchos, y no tiene por qué ser el mejor). Empecemos por el primer paso de la lista resumida que hemos escrito antes. Primero necesitamos un dispositivo capaz de registrar información que nos sea interesante/relevante. Para los móviles hay muchas apps ahora que graban datos GPS con el sensor interno, las aceleraciones laterales y longitudinales, conexión vía BT o WiFi a dispositivos OBDII, etc. En karting se pueden usar displays como los AIM, Alfano, etc. o pulsómetros GPS como el Polar que me dejaron. Vale, primer paso hecho, poner el dispositivo y grabar durante nuestra actividad.
Segundo paso. Tenemos la información dentro del dispositivo, pero ahora necesitamos extraerla a nuestro PC. ¿Cómo? Pues aquí ya… váis a tener que ser vosotros los que encontréis la manera. Hay apps de móvil que te dejan exportar a ficheros la información que ha almacenado y mandarlos por correo. Podéis autoenviaros por correo esos ficheros desde la misma app, o guardarlos en la memoria del teléfono y copiarlos a través del cable al PC. Otras apps no dejan exportar, en cuyo caso será mejor que lo verifiquéis con antelación para no llegar a este punto y daros cuenta tarde.
Otros dispositivos, como el Polar, necesitan de un programa propio para poder extraer los ficheros al conectarlo al PC. Este será el modo más habitual para extraer información de los dispositivos externos. Igual que antes con las apps de los móviles, verificad que podéis extraer información del dispositivo. Pero no sólo el poder extraer los datos es importante, sino el formato que tiene que tener el archivo.
Para que nos sean útiles los ficheros necesitamos que estén en formato «legible» o «entendible». Esto significa que no estén encriptados ni en formatos propietarios raros, sino en un formato de texto en el que se puedan reconocer los datos a simple vista. Estos datos que podemos leer hay que parsearlos que se dice, o de forma más entendible, darles un formato adecuado al método que vayamos a usar después para añadirlos al vídeo, ya que normalmente necesitan ajustarse.
Los datos en texto tendremos que convertirlos a imágenes para añadirlas al editor de vídeo. Al fin y al cabo, un vídeo no es más que una sucesión de imágenes. En nuestro caso, para convertir los datos de los ficheros de texto a imagen hemos usado Matlab, pero podéis usar el programa/método que más os guste como GNU Octave, o usar phyton o lo que queráis. Una vez hemos definido que tenemos que generar imágenes con los datos de texto viene otro problema, que es «sincronizar» la cantidad de datos que hemos grabado con el vídeo.
Por un lado grabamos el vídeo a x imágenes por segundo (en mi caso grabo en NTSC así que son 30 imágenes por segundo), pero por ejemplo, el GPS da 1 dato por segundo, los acelerómetros del teléfono lo mismo dan 10 datos por segundo, las RPM del coche a través del OBDII puede ir a 5 datos por segundo etc. Esto significa por ejemplo con el de la velocidad GPS que sólo se actualizará el dato una vez por segundo en el vídeo con un valor fijo hasta el siguiente segundo.
El caso es que para poder convertir de texto a vídeo los datos que tenemos, tendremos que generar todas las imágenes que compondrán el «vídeo» de nuestros datos. Si un GPS graba 2 minutos de datos nos habrá generado 120(segundos) * 1(dato por segundo) = 120 datos de texto. El vídeo por el contrario nos habrá generado 120 (segundos) * 30 (imágenes por segundo) = 3600 imágenes. Los editores de vídeo permiten añadir secuencias de imágenes como vídeo siempre que las imágenes tengan el mismo nombre y una numeración correlativa, por lo tanto, para poder generar un «vídeo» con los datos del GPS tendremos que generar 30 imágenes por segundo, la primera con el dato real y las otras 29 iguales a ésta.
Volvamos entonces al punto en el que parseamos los datos. En nuestro caso como hemos comentado, usamos Matlab para pasar de texto a imágenes. Lo que hago (por ejemplo con los datos del ritmo cardíaco que añadí en el vídeo de karting de Los Santos) es extraer el dato tomado en cada momento y copiarlos primero a un fichero TXT en el que cada dato es una fila del mismo. Tras eso los importo a Matlab, y una vez aquí aprovecho para añadir otro paso. Si recordáis, hay que «sincronizar» los datos grabados con los del vídeo. Matlab posee una función para interpolar los datos.
Interpolar significa generar datos intermedios a partir de dos puntos, generando la cantidad intermedia de información que quieras. En este caso con los datos del pulsómetro sería coger un dato (por ejemplo el valor 130 pulsaciones), coger el siguiente (por ejemplo 135 pulsaciones) y querer generar 29 datos intermedios (para así tener 30 datos por segundo, igual que las imágenes por segundo). Con esto conseguimos dos cosas; primero conseguimos el que generaremos el mismo número de imágenes por segundo para los datos que los que tiene el vídeo, y segundo, que las transiciones entre valores serán más suaves. En el ejemplo en vez de estar el valor 130 durante 1 segundo y luego saltar a 135 veremos como cada 2 décimas de segundo el valor aumenta de 130 a 131, de 131 a 132, etc. algo que es más agradable de ver.
Lo bueno de Matlab es que permite hacer muchas cosas. No sólo podremos interpolar y generar las imágenes de datos como velocidad GPS, lo de las pulsaciones, revoluciones del motor, etc (datos instantáneos), sino que podremos con algo de imaginación generar otras cosas. Por ejemplo si tenemos la posición GPS en cada instante podemos, cogiendo la vuelta más ajustada a la realidad, generar el plano del circuito en Matlab, y posteriormente poner encima con un punto más grande la posición actual en la que estamos del circuito.
Vale, ya hemos exportado los datos al PC, parseado, importado a Matlab, interpolado y generado las imágenes pertinentes con el mísmo número de imágenes por segundo que nuestro vídeo… ¡Felicidades! Ya has hecho lo más difícil. Ahora «sólo» queda juntar todo esto en el editor de vídeo, hacer unas cuantas cositas más y tendrás un vídeo muy chulo con los datos guardados, pero como si lo cuento aquí mismo os va a dar un soponcio de tanto texto lo dejaré para un siguiente artículo.