Génération de miniatures pour la vidéo

17

J'ai vérifié et lu beaucoup de messages sur un seul problème qui est beaucoup plus compliqué qu'il n'y paraît.

J'ai un site Web qui utilise beaucoup de vidéos prises sur le site Web comme sur Internet ^^ (services comme youtube, vimeo, videobuzzy, etc.) et nous aimerions générer à la volée une miniature de la vidéo intégrée.

Chaque service utilise sa propre API, je devrais donc adapter le code pour chacun, ce qui est beaucoup trop de code et je ne pourrais jamais gérer chaque service.

Un serveur web propose quelque chose comme ça: http://embed.ly mais je les ai essayés et, par exemple, les vidéos de videobuzzy ne fonctionnent pas. C'est donc une solution partielle.

Une autre solution serait d'utiliser un service de capture d'écran qui pourrait demander l'URL de la vidéo, la rendre, prendre un instantané et générer une image. Tentant, mais les résultats ont tendance à ajouter des retards, et je dois trouver un service d'instantané et générer le code (enfin, cela pourrait être la partie amusante).

Le plus simple serait de faire une capture d'écran et de créer une image nous-mêmes, puis de la télécharger.

Je préférerais proposer quelque chose de plus convivial mais je n'en ai plus la moindre idée.

Quelqu'un a-t-il des conseils à ce sujet et est-ce que je reçois la bonne image?

Je vous remercie.

ADDENDA **

Si je pouvais, au lieu des vignettes, simplement intégrer la vidéo (généralement un iframe) dans une taille spécifique, cela pourrait faire l'affaire ...

Simon
la source
Un moyen trouvé était via un plugin: wordtube. Couvrant généralement JW Player .. mais peut-être utile.
majicmike

Réponses:

20

Vous pouvez utiliser la fonctionnalité oEmbed intégrée à WordPress. Généralement, tout hôte vidéo de cette liste vous renverra une vignette en utilisant oembed.

Voici une liste de fournisseurs par défaut que WordPress utilise pour l'intégration automatique dans la zone de contenu. J'ai également inclus des sources non vidéo pour la commodité des autres.

La liste complète des fournisseurs possibles est documentée sur le codex WordPress sous:
Embedded - Ok, alors de quels sites puis-je intégrer?

Sélectionnez votre fournisseur, puis utilisez ce qui suit pour obtenir vos informations vidéo.

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;

Je me rends compte que VideoBuzzy n'est pas sur la liste. Il semble s'agir d'un site de contrefaçon YouTube. Vous devriez leur demander s'ils ont des protocoles intégrés. Si ce n'est pas le cas, vous pouvez enregistrer un gestionnaire non intégré en utilisant wp_embed_register_handler().

J'espère que cela t'aides!

Brian Fegter
la source
Ça a l'air vraiment sympa! Mais existe-t-il un moyen rapide d'obtenir l'url $ de la publication au lieu de coder en dur beign?
Simon
1
Pour le moment, j'utilise simplement un champ personnalisé pour placer mon URL vidéo. Ça marche bien, continuez à tester ... Merci beaucoup, Brian! Je viens d'adapter le code en ajoutant $ provider = $ oembed-> Discover ($ vid_url); donc je n'ai pas besoin de coder en dur le fournisseur vidéo
Simon
@Simon Pouvez-vous partager le code final qui a aidé à l'implémenter? Et veuillez nous donner quelques détails sur la façon de mettre en œuvre cela? J'ai les mêmes exigences mais je ne sais pas comment faire cela sur WP, je suis encore nouveau sur WP. Merci
Krunal
@ Krunal Oui je pourrais, c'est assez proche de la solution de Brian! Je viens d'ajouter une image de secours et de mettre à jour les métadonnées si l'oEmbed réussit, donc je n'ai pas à demander à chaque fois. Mais je ne sais pas comment vous l'envoyer, car je ne peux pas ajouter de code dans les commentaires, et je ne pense pas que cela mérite une nouvelle réponse?
Simon
1
@Sisir En fait, il y en a. Vous pouvez regarder ici: codex.wordpress.org/Function_Reference/… Enregistrez d'abord un gestionnaire non-oEmbed, puis utilisez le code ci-dessus. :)
Brian Fegter
3

Vous pouvez utiliser ce plugin Wordpress Video Plugin et modifier le code de ce plugin et y ajouter les autres sites.

OU

Vous devez intégrer FFMPEG dans wordpress.

Nilay Patel
la source
Merci, je préfère éviter d'utiliser des plugins quand je peux l'éviter ^^
Simon
@Simon Il s'agissait d'une référence: Allez dans les fichiers "_et éditez le code de ce plugin". :)
kaiser
@kaiser -oui, vous avez raison, le code du plugin devrait fournir un aperçu et une implémentation fonctionnelle ^^
Simon