Reproducir videos con MPV, mediante Python.

La reproducción de videos es una de las formas favoritas de entretenimiento de la gran mayoría de los seres humanos. Ya sean películas, documentales, video clips, grabaciones privadas o cualquier otro formato existente.

Nos pasamos gran parte de nuestro tiempo libre, o incluso no tan libre, visualizando todo tipo de contenidos audio visuales, especialmente del inmenso océano de material videográfico que es YouTube.

MPV es un reproductor multimedia gratuito, de código abierto y multiplataforma.

En Mac se puede instalar facilmente utilizando brew, con la siguiente instrucción en la terminal.

brew install mpv

MPV es un reproductor que funciona a través de la consola. Si lo que quieres es una interfaz gráfica, puedes utilizar IINA. Esta aplicación utiliza MPV como reproductor, dotándolo de una interfaz gráfica más amigable.

Con Python podemos exprimir las grandes características que nos ofrece MPV, ejecutando scrips que reproduzcan listas de video, todos los videos de una o varias carpetas, reproducir trozos aleatorios de videos, con secuencias que comienzan y acaban de forma aleatoria.

Este es el código para reproducir un archivo de video:

from subprocess import call

def reproduce(archivo, comienzo, resolucion, final):
    try:
        call('mpv "' +  archivo + '" – start=' + comienzo + ' – geometry=' + resolucion + ' – length=' + final, shell = True)
    except:
        print("Error al Reproducir Momento")

archivo = "" # Ruta del archivo
comienzo = "00:00:00"
resolucion = "45%"
final = "2:00:00"

reproduce(archivo, comienzo, resolucion, final)

Los parámetros que necesitamos pasar a la función son:

  • Archivo. La ruta del archivo que vamos a reproducir.
  • Comienzo. Donde empieza a reproducirse el archivo. Si queremos que empiece en el minuto 5, le pasamos 00:05:00
  • Resolución. El tamaño que tendrá la ventana de reproducción.
  • Final. El punto en el que se detendrá la reproducción, contando desde el momento que comienza la reproducción. En otras palabras, si la reproducción comienza en el minuto 5 (00:05:00), y queremos reproducir 15 segundos (00:00:15), la reproducción se detendrá en el minuto 5:15

Para listar todos los subdirectorios de una carpeta, devuelve los archivos contenidos en todas las subcarpetas encontradas.

from os.path import isfile, isdir, join

def listdir_recurd(files_list, root, folder, checked_folders):

    if (folder != root):
        checked_folders.append(folder)
        
    for f in listdir(folder):
        d = join(folder, f)       

        if isdir(d) and d not in checked_folders:
            listdir_recurd(files_list, root, d, checked_folders)
        else:
            if isfile(d):  # si no hago esto, inserta en la lista el nombre de las carpetas ignoradas
                files_list.append(join(folder, f))

    return files_list

Para obtener un tiempo aleatorio.

import random

def tiempo_aleatorio(tMin, tSeg):
    minutos = random.randint(0, tMin)
    segundos = random.randint(0, tSeg)

    tiempo = "00:%s:%s" %(minutos, segundos)
    return tiempo

Obtener la duración de un video, para ello debemos tener instalada la aplicación exiftool. Sabiendo la duración del video, calculamos un punto de inicio y fin aleatorio, sin exceder la duración real del video.

import subprocess

def duracion_escena(escena):
    datos = subprocess.check_output(['exiftool', escena]).decode('utf-8')

    dic = {}
    for line in datos.splitlines():
        valores = line.split(" : ",1)
        dic[valores[0].strip()] = valores[1].strip()

    duracion = dic['Track Duration']

    dura = duracion.split(":")
    minutos = int(dura[0]) + int(dura[1])

    resultado = tiempo_aleatorio(minutos, 59)

    return resultado

Desordenar una lista obtenida con la función anterior listdir_recurd.

import random

def random_sin_repetir(lista):
    for _ in range(0,len(lista)):
        result = random.choice(lista)
        yield result
        lista.remove(result)

El reproductor MPV dispone de infinidad de parametros para controlar la reproducción de videos, puedes ver más información aqui.

Share

El juego más premiado para que los niños aprendan matemáticas

 

Las matemáticas, quizás sean una de las asignaturas más odiadas por los alumnos. Éste campo del saber y el conocimiento nos enfrenta a una enmarañada red de números, símbolos y ecuaciones odiados por muchos de los estudiantes del planeta. Una materia abstracta qué causa verdaderos quebraderos de cabeza a adolescentes, padres y profesores durante todo el periodo escolar y que puede marcar muy negativamente el futuro de la educación de un niño.

Para intentar resolver éste problema y hacer del universo de las matemáticas una apasionante materia para todo escolar existe SmartKid Maths, un juego educativo basado en más de 10 años de investigación. Desarrollado por psicólogos, científicos y profesores especializados en mejorar la educación infantil.

Cuanto más pronto empiecen nuestros hijosa relacionarse con los números, más probabilidades de éxito existirán en que amen esta materia.

El juego contiene más de 10.000 ejercicios en 100 niveles progresivos, de acuerdo con la mayoría de los requisitos de los planes de estudios internacionales para preescolar, primero y segundo de primaria.

 
Los niños aprenderán:

  • Formas y figuras
  • Coordenadas
  • Números
  • Las horas del reloj y el tiempo
  • Sumas, restas, ecuaciones
  • Manejo del inero
  • Multiplicaciones
  • Divisiones
  • Fracciones
  • Distancias, masas y unidades
  • ¡Y mucho más!

Una aplicación realmente interesante con la que los niños aprenderán jugando, la mejor forma, sin duda, de entretenimiento y aprendizaje.

 

[app 796412353]

 

Share