Thumbnails für Video generieren

16

Ich habe viele Beiträge zu einem einzelnen Thema gelesen, das weitaus komplizierter ist, als es scheint.

Ich habe eine Website, die viele Videos von der Website verwendet, wie im Internet ^^ (Dienste wie YouTube, Vimeo, Videobuzzy usw.), und wir möchten im laufenden Betrieb ein Miniaturbild des eingebetteten Videos erstellen.

Jeder Dienst verwendet eine eigene API, so dass ich den Code für jeden anpassen sollte, was viel zu viel Code ist und ich niemals jeden Dienst verwalten könnte.

Ein Webserver schlägt so etwas vor: http://embed.ly, aber ich habe es versucht und zum Beispiel funktionieren Videos von videobuzzy nicht. Das ist also eine Teillösung.

Eine andere Lösung wäre, einen Screenshot-Dienst zu verwenden, der die URL des Videos abfragt, es rendert, einen Schnappschuss macht und ein Bild erzeugt. Verlockend, aber die Ergebnisse können zu Verzögerungen führen, und ich muss einen Snapshot-Service finden und den Code generieren (naja, das könnte der spaßige Teil sein).

Am einfachsten wäre es, eine Bildschirmaufnahme zu machen, selbst ein Bild zu erstellen und es dann hochzuladen.

Ich würde eher etwas benutzerfreundlicheres vorschlagen, aber ich habe keine Ahnung mehr.

Hat jemand einen Rat dazu und bekomme ich das richtige Bild?

Vielen Dank.

ADDENDUM **

Wenn ich anstelle der Thumbnails einfach das Video (normalerweise ein Iframe) in einer bestimmten Größe einbetten könnte, könnte das den Trick machen ...

Simon
quelle
Ein Weg wurde über ein Plugin gefunden: wordtube. Im Allgemeinen wird JW Player behandelt, aber vielleicht nützlich.
Majicmike

Antworten:

19

Sie können die in WordPress integrierte Funktion oEmbed verwenden. In der Regel gibt jeder Video-Host in dieser Liste eine Miniaturansicht mit oembed an Sie zurück.

Hier ist eine Liste der Standardanbieter, die WordPress für die automatische Einbettung in den Inhaltsbereich verwendet. Ich habe auch Nicht-Videoquellen aufgenommen, um es anderen zu erleichtern.

Die vollständige Liste der möglichen Anbieter finden Sie im WordPress-Codex unter:
Einbettungen - Okay, von welchen Sites kann ich sie einbetten?

Wählen Sie Ihren Provider aus und verwenden Sie die folgenden Optionen, um Ihre Videoinformationen abzurufen.

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;

Mir ist klar, dass VideoBuzzy nicht auf der Liste steht. Es scheint sich um eine gefälschte YouTube-Website zu handeln. Sie sollten sie fragen, ob sie Protokolle oembed haben. Wenn dies nicht der Fall ist, können Sie mithilfe von einen nicht eingebetteten Handler registrieren wp_embed_register_handler().

Hoffe das hilft!

Brian Fegter
quelle
Klingt sehr schön! Aber gibt es eine schnelle Möglichkeit, die $ url von der Veröffentlichung abzurufen, anstatt sie fest zu codieren?
Simon
1
Im Moment benutze ich nur ein benutzerdefiniertes Feld, um meine Video-URL zu platzieren. Arbeiten Sie gut, testen Sie weiter ... Vielen Dank, Brian! Ich habe den Code nur durch Hinzufügen von $ provider = $ oembed-> discover ($ vid_url) angepasst.
Simon
@Simon Können Sie den endgültigen Code teilen, der zur Implementierung beigetragen hat? Und geben Sie uns bitte einige Details zur Implementierung? Ich habe die gleichen Anforderungen, bin mir aber nicht sicher, wie ich das in WP machen soll. Ich bin noch neu in WP. Vielen Dank
Krunal
@ Krunal Ja, ich könnte, es ist ziemlich nah an Brians Lösung! Ich habe gerade ein Fallback-Image hinzugefügt und die Metadaten aktualisiert, wenn das OEmbed erfolgreich war, sodass ich nicht jedes Mal danach fragen muss. Aber ich kann es nicht an Sie senden, da ich in Kommentaren keinen Code einfügen kann und ich nicht der Meinung bin, dass es eine neue Antwort wert ist?
Simon
1
@ Sir Eigentlich gibt es. Sie können hier nachschauen : codex.wordpress.org/Function_Reference/… Registrieren Sie zuerst einen nicht eingebetteten Handler und verwenden Sie dann den obigen Code. :)
Brian Fegter
3

Sie können dieses Plugin Wordpress Video Plugin verwenden , den Code dieses Plugins bearbeiten und die anderen Sites hinzufügen.

ODER

Sie müssen FFMPEG in WordPress integrieren .

Nilay Patel
quelle
Vielen Dank, ich würde Plugins lieber vermeiden, wenn ich es vermeiden kann ^^
Simon
@ Simon Es war als Referenz gedacht: Gehe in die Dateien "_und bearbeite den Code dieses Plugins". :)
Kaiser
@kaiser -ja, du hast recht, der Plugin-Code sollte einen Einblick und eine funktionierende Implementierung bieten ^^
Simon