Generazione di miniature per video


17

Ho controllato e letto molti post su un singolo problema che è molto più complicato di quanto sembri.

Ho un sito Web che utilizza molti video presi da siti Web come su Internet ^^ (servizi come YouTube, Vimeo, Videobuzzy, ecc.) E vorremmo generare al volo una miniatura del video incorporato.

Ogni servizio utilizza la propria API, quindi dovrei adattare il codice per ciascuno, che è troppo e non potrei mai gestire ogni servizio.

Un server web propone qualcosa del genere: http://embed.ly ma li ho provati e, ad esempio, i video della videobuzzy non funzionano. Quindi questa è una soluzione parziale.

Un'altra soluzione sarebbe quella di utilizzare un servizio di screenshot che potrebbe richiedere l'URL del video, renderizzarlo, scattare un'istantanea e generare un'immagine. Allettante, ma i risultati tendono ad aggiungere ritardi, e devo trovare un servizio di istantanea e generare il codice (beh, questa potrebbe essere la parte divertente).

Il più semplice sarebbe fare una cattura dello schermo e creare un'immagine noi stessi, quindi caricarla.

Preferirei proporre qualcosa di più user-friendly ma non ne ho più idea.

Qualcuno ha qualche consiglio su di esso e ho la foto giusta?

Grazie.

ADDENDUM **

Se potessi, invece delle anteprime, incorporare il video (di solito un iframe) in una dimensione specifica, potrebbe fare il trucco ...


Un modo trovato è stato tramite un plugin: wordtube. Generalmente copre JW Player .. ma forse utile.
majicmike,

Risposte:


20

Puoi utilizzare la funzionalità oEmbed inserita in WordPress. In genere qualsiasi host video in questo elenco restituisce una miniatura utilizzando oembed.

Ecco un elenco di provider predefiniti che WordPress utilizza per l'incorporamento automatico nell'area del contenuto. Ho incluso anche fonti non video per comodità degli altri.

L'elenco completo dei possibili fornitori è documentato nel codice WordPress sotto:
Incorpora - Okay, quindi da quali siti posso incorporare?

Seleziona il tuo provider, quindi utilizza quanto segue per ottenere le informazioni sul tuo 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;

Mi rendo conto che VideoBuzzy non è nell'elenco. Sembra essere un sito knockout di YouTube. Dovresti chiedere loro se hanno dei protocolli. In caso contrario, è possibile registrare un gestore non oembed utilizzando wp_embed_register_handler().

Spero che sia di aiuto!


Sembra davvero bello! Ma c'è un modo rapido per ottenere $ url dal post anziché essere hardcoded?
Simon,

1
In questo momento, sto solo usando un campo personalizzato per inserire l'URL del mio video. Funziona bene, continua i test ... Molte grazie, Brian! Ho appena adattato il codice aggiungendo $ provider = $ oembed-> discover ($ vid_url); quindi non ho bisogno di codificare il fornitore di video
Simon,

@Simon Puoi condividere il codice finale che ha contribuito a implementarlo? E gentilmente darci alcuni dettagli su come implementarlo? Ho gli stessi requisiti ma non sono sicuro di come farlo su WP, sono ancora nuovo su WP. Grazie
Krunal,

@Krunal Sì, ho potuto, è abbastanza vicino alla soluzione di Brian! Ho appena aggiunto un'immagine di fallback e aggiornato i metadati se l'OEmbed ha avuto successo, quindi non devo chiedere ogni volta. Ma non posso inviarlo a te, dal momento che non posso aggiungere codice nei commenti e non credo che valga una nuova risposta?
Simon,

1
@Sisir In realtà, c'è. Puoi guardare qui: codex.wordpress.org/Function_Reference/… Registrare prima un gestore non oEmbed, quindi utilizzare il codice sopra. :)
Brian Fegter il

3

Puoi usare questo plugin Wordpress Video Plugin e modificare il codice di questo plugin e aggiungere gli altri siti in esso.

O

Devi integrare FFMPEG in wordpress.


Grazie, preferirei evitare l'uso dei plugin quando posso evitarlo ^^
Simon

@Simon Era inteso come riferimento: vai nei file "_e modifica il codice di questo plugin". :)
Kaiser

@kaiser -sì, hai ragione, il codice del plugin dovrebbe fornire informazioni dettagliate e implementazione funzionante ^^
Simon
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.