partir lista hacer guardar gestion ejercicios desde crear como archivos archivo python video thumbnails

lista - Creando miniaturas de archivos de video con Python



ejercicios de archivos en python (6)

Mire en PythonMagick , una interfaz de Python para ImageMagick. Eso debería tener lo que necesitas. (Descargo de responsabilidad: no he usado la interfaz de Python antes, pero sé que ImageMagick es un buen mojo).

Necesito crear miniaturas para un archivo de video una vez que lo haya cargado en una aplicación web que ejecuta python.

¿Cómo haría esto? Necesito una biblioteca que básicamente pueda hacer esto por mí o que pueda leer los marcos de imágenes de archivos de video (en varios formatos) automáticamente.


No pude instalar ffvideo en OSX Sierra, así que decidí trabajar con ffmpeg.

OSX:

brew install ffmpeg

Linux:

apt-get install ffmpeg

Código de Python 3:

import subprocess video_input_path = ''/your/video.mp4'' img_output_path = ''/your/image.jpg'' subprocess.call([''ffmpeg'', ''-i'', video_input_path, ''-ss'', ''00:00:00.000'', ''-vframes'', ''1'', img_output_path])


Podría usar la API de Youtube para el almacenamiento y la transcodificación y capturar las miniaturas de alimentación de forma gratuita. Honestamente, esa es la forma más fácil de manejar el video en línea y no solo estoy ofreciendo un servicio de terceros, soy un usuario muy feliz de esa API y de las rutas de video internas que pude eliminar gracias a ella.


Puedes usar ffvideo

from ffvideo import VideoStream pil_image = VideoStream(''0.flv'').get_frame_at_sec(5).image() pil_image.save(''frame5sec.jpeg'')


Una simple combinación de PyMedia y PIL haría el truco para archivos AVI, ASF o MPEG. PyMedia le permite extraer los cuadros (utilizando la rutina del decodificador ()), mientras que PIL tiene una rutina simple de miniaturas ().


import cv2 vcap = cv2.VideoCapture(filename) res, im_ar = vcap.read() while im_ar.mean() < threshold and res: res, im_ar = vcap.read() im_ar = cv2.resize(im_ar, (thumb_width, thumb_height), 0, 0, cv2.INTER_LINEAR) #to save we have two options #1) save on a file cv2.imwrite(save_on_filename, im_ar) #2)save on a buffer for direct transmission res, thumb_buf = cv2.imencode(''.png'', im_ar) # ''.jpeg'' etc are permitted #get the bytes content bt = thumb_buf.tostring()

"umbral" es un número entero. Cuando obtiene un cuadro de video, puede ser muy negro, blanco, etc. Para obtener una buena imagen en miniatura, puede especificar el valor medio de todos los píxeles en el cuadro.