Generando miniaturas para video

17

He revisado y leído muchas publicaciones sobre un solo problema que es mucho más complicado de lo que parece.

Tengo un sitio web que usa muchos videos tomados del sitio web como en Internet ^^ (servicios como youtube, vimeo, videobuzzy, etc.) y nos gustaría generar sobre la marcha una miniatura del video incrustado.

Cada servicio usa su propia API, por lo que debería adaptar el código para cada uno, que es demasiado código y nunca podría administrar todos los servicios.

Un servidor web propone algo así: http://embed.ly pero los probé y, por ejemplo, los videos de videobuzzy no funcionan. Entonces esa es una solución parcial.

Otra solución sería utilizar un servicio de captura de pantalla que pudiera solicitar la URL del video, renderizarlo, tomar una instantánea y generar una imagen. Es tentador, pero los resultados tienden a agregar retrasos, y tengo que encontrar un servicio de instantáneas y generar el código (bueno, esta podría ser la parte divertida).

Lo más sencillo sería tomar una captura de pantalla y crear una imagen nosotros mismos, luego subirla.

Prefiero proponer algo más fácil de usar, pero no tengo ni idea.

¿Alguien tiene algún consejo al respecto y tengo la imagen correcta?

Gracias.

ADENDA **

Si pudiera, en lugar de las miniaturas, incrustar el video (generalmente un iframe) en un tamaño específico, eso podría hacer el truco ...

Simón
fuente
Una forma encontrada fue a través de un complemento: wordtube. Generalmente cubre JW Player ... pero puede ser útil.
majicmike

Respuestas:

20

Puede usar la funcionalidad oEmbed integrada en WordPress. Normalmente, cualquier host de video en esta lista le devolverá una miniatura usando oembed.

Aquí hay una lista de proveedores predeterminados que WordPress usa para la inserción automática en el área de contenido. También he incluido fuentes que no son de video para la comodidad de otros.

La lista completa de posibles proveedores está documentada en el códice de WordPress en:
Embebidos - Bien, ¿desde qué sitios puedo insertar?

Seleccione su proveedor y luego use lo siguiente para obtener su información de video.

require_once(ABSPATH.'wp-includes/class-oembed.php');
$oembed= new WP_oEmbed;
$url = 'http://www.youtube.com/watch?v=oHg5SJYRHA0';
//As noted in the comments below, you can auto-detect the video provider with the following
$provider = $oembed->discover($url);
//$provider = 'http://www.youtube.com/oembed';
$video = $oembed->fetch($provider, $url, array('width' => 300, 'height' => 175));
$title = $video->title;
$html = $video->html;
$thumb = $video->thumbnail_url;

Me doy cuenta de que VideoBuzzy no está en la lista. Parece ser un sitio de imitación de YouTube. Debe preguntarles si han incluido protocolos. Si no lo hacen, puede registrar un manejador no incluido usandowp_embed_register_handler() .

¡Espero que esto ayude!

Brian Fegter
fuente
Suena muy bien! ¿Pero hay una manera rápida de obtener $ url de la publicación en lugar de ser codificado?
Simon
1
En este momento, solo estoy usando un campo personalizado para colocar la URL de mi video. Funciona bien, sigue probando ... ¡Muchas gracias, Brian! Acabo de adaptar el código agregando $ provider = $ oembed-> discover ($ vid_url); así que no necesito codificar el proveedor de video
Simon
@ Simon ¿Puedes compartir el código final que ayudó a implementar esto? ¿Y amablemente nos da algunos detalles sobre cómo implementar esto? Tengo los mismos requisitos pero no estoy seguro de cómo hacer esto en WP, todavía soy nuevo en WP. Gracias
Krunal
@ Krunal Sí, podría, ¡está muy cerca de la solución de Brian! Acabo de agregar una imagen alternativa y actualizar los metadatos si el oEmbed tiene éxito, por lo que no tengo que preguntar cada vez. Pero no sé cómo enviárselo, ya que no puedo agregar código en los comentarios, y no creo que valga una nueva respuesta.
Simon el
1
@Sisir En realidad, la hay. Puede buscar aquí: codex.wordpress.org/Function_Reference/… Registre primero un controlador que no sea oEmbed, luego use el código anterior. :)
Brian Fegter
3

Puedes usar este complemento Wordpress Video Plugin y editar el código de este complemento y agregar los otros sitios en él.

O

Tienes que integrar FFMPEG en WordPress.

Nilay Patel
fuente
Gracias, prefiero evitar usar complementos cuando puedo evitarlo ^^
Simon
@Simon Fue una referencia: vaya a los archivos "_y edite el código de este complemento". :)
Kaiser
@kaiser: sí, tienes razón, el código del complemento debe proporcionar información y una implementación funcional ^^
Simon