2010-02-15 16 views
8

quiero mostrar miniaturas o paneles de vista previa para videos enumerados en mi sitio, quiero obtener un solo fotograma de un video (de un tiempo particular, es decir, obtener un fotograma de exactamente 1 minuto) y mostrarlos como miniaturas como en youtube ...¿Cómo crear miniaturas o previsualizar videos?

¿Algún ayuda?

+0

intente seguir este tutorial sobre PHP y ffmpeg, http://www.alberton.info/video_preview_as_animated_gif_with_ffmpeg_and_spl.html –

Respuesta

8

Eche un vistazo a la biblioteca ffmpeg-php. Es la única forma simple de manipular videos de diferentes formatos en PHP.

También hay una envoltura llamada PHP vídeo Toolkit, se puede encontrar aquí: http://sourceforge.net/projects/phpvideotoolkit/

+0

puedo crear miniaturas con ffmpeg-php? Estaba pensando que se puede usar para convertir videos a diferentes formatos ... Si es posible, ¿cómo puedo hacer eso? ¿Hay alguna función o método predefinido disponible en ffmpeg? – Vijay

+0

Descargue el paquete y eche un vistazo a example02.php: existe la llamada $ toolkit-> extractFrames() que hace exactamente lo que necesita ...;) Puede modificar fácilmente el código fuente para extraer solo un fotograma a tiempo dado. – Napolux

+0

Gracias Napolux. Eso me ayudó mucho. Pero ¿te importaría explicarme cómo podemos mejorar la calidad de la imagen en miniatura? – Vijay

7

Agregando a cómo utilizar la respuesta ffmpeg, this is the parameters you're looking for:

ffmpeg -itsoffset -4 -i test.avi -vcodec mjpeg -vframes 1 -an -f rawvideo -s 320x240 test.jpg 
+0

esto funcionó tanto para audio como para video. – skidadon

+1

También vale la pena señalar que incluso si el audio o el video tiene un marco de imagen disponible, todavía se generará el "test.jpg". Cuando no hay marco de imagen, el test.jpg será un archivo de tamaño CERO. Por lo tanto, deberá verificar el tamaño del archivo que se generó para asegurarse de tener uno que pueda usar. – skidadon

6

En los navegadores modernos también se puede use la etiqueta de video y el lienzo para capturar un cuadro y guardarlo como una imagen.

ver How can we get the screenshot of the video in html5 using canvas

+1

Esta debería ser la respuesta. Pasamos el día intentando que ffmpeg funcionara de manera confiable. Para obtener una imagen en miniatura, terminamos usando JavaScript. Una vez que el video se subió, reproducimos el video y luego transferimos al lienzo la imagen guardada del lienzo después de 5 segundos. Funcionó de manera más confiable que ffmpeg. El proceso de Ffmpeg en windows no se detendría ni siquiera después de la sonetimes incluso después de que lo matara. –

+0

@michaelhanon para uno, tanto esta como la respuesta vinculada deberían resumir el enlace tanto como sea posible para crear redundancia y, bueno, una versión más corta directamente al punto. Y confiar en javascript del lado del cliente para crear miniaturas está lejos de ser ideal para muchas situaciones, pero, sin duda, podría ser una forma increíble para la mayoría. Tal vez Thomas mejorará su respuesta si obtiene suficientes votos ascendentes, y finalmente nos brinda una solución completa ...; P – cregox

Cuestiones relacionadas