ビデオ用のサムネイルの生成


16

見た目よりもはるかに複雑な1つの問題に関する多くの投稿を確認し、読んでいます。

インターネット上のようにwwebsiteから取られた多くのビデオを使用するWebサイトがあります^^(youtube、vimeo、videobuzzyなどのサービス)、埋め込みビデオのサムネイルをオンザフライで生成したいと思います。

各サービスは独自のAPIを使用するため、それぞれにコードを適合させる必要がありますが、コードが多すぎるため、すべてのサービスを管理することはできません。

Webサーバーはそのようなものを提案します:http : //embed.lyが、私はそれらを試してみました、そして、例として、videobuzzyからのビデオは動作しません。それは部分的な解決策です。

別の解決策は、ビデオのURLを要求し、レンダリングし、スナップショットを取り、画像を生成できるスクリーンショットサービスを使用することです。魅力的ですが、結果は遅延を追加する傾向があり、スナップショットサービスを見つけてコードを生成する必要があります(これは楽しい部分かもしれません)。

最も簡単なのは、スクリーンキャプチャを取得して自分で画像を作成し、アップロードすることです。

もっとユーザーフレンドリーなものを提案したいのですが、それ以上の手がかりはありません。

誰かがそれについていくつかのアドバイスを持っていますか、私は写真を正しく取得しますか?

ありがとうございました。

補遺**

サムネイルの代わりに、ビデオ(通常はiframe)を特定のサイズで埋め込むことができれば、トリックを行うことができます...


見つかった1つの方法は、プラグイン経由でした:wordtube。通常、JW Playerをカバーします。
majicmike

回答:


19

WordPressに組み込まれたoEmbed機能を使用できます。通常、このリストのビデオホストはoembedを使用してサムネイルを返します。

以下は、WordPressがコンテンツ領域への自動埋め込みに使用するデフォルトプロバイダーのリストです。他の人の便宜のために、ビデオ以外のソースも含めました。

可能性のあるプロバイダーの完全なリストは、WordPressのコーデックスで文書化されています:
埋め込み-わかりました、どのサイトから埋め込みできますか?

プロバイダーを選択し、次を使用してビデオ情報を取得します。

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;

VideoBuzzyがリストにないことを理解しています。YouTubeの模造サイトのようです。プロトコルが組み込まれているかどうかを尋ねる必要があります。そうでない場合は、を使用して非埋め込みハンドラを登録できますwp_embed_register_handler()

お役に立てれば!


本当にいいですね!しかし、ハードコードされている代わりに投稿から$ urlを取得する簡単な方法はありますか?
サイモン

1
現在、私はカスタムフィールドを使用してビデオのURLを配置しています。うまく機能して、テストを続けてください。ありがとう、ブライアン!$ provider = $ oembed-> discover($ vid_url);を追加してコードを修正しました。ビデオプロバイダーをハードコーディングする必要はありません
サイモン

@Simonこれを実装するのに役立つ最終的なコードを共有できますか?そして、これを実装する方法に関する詳細を教えてください。私は同じ要件を持っていますが、WPでこれを行う方法がわからない、まだWPが初めてです。ありがとう
-Krunal

@Krunalはい、できます、ブライアンのソリューションにかなり近いです!フォールバックイメージを追加し、oEmbedが成功した場合にメタデータを更新するだけなので、毎回確認する必要はありません。しかし、コメントにコードを追加することはできず、新しい答えの価値があるとは思わないので、あなたにそれを送信する方法はありませんか?
サイモン

1
@Sisir実際にあります。こちらをご覧ください:codex.wordpress.org/Function_Reference/… 最初に非oEmbedハンドラーを登録してから、上記のコードを使用します。:)
ブライアンフェガー

3

このプラグインWordpress Video Pluginを使用できますを使用して、このプラグインのコードを編集し、他のサイトを追加できます。

または

wordpressにFFMPEGを統合する必要があります。


ありがとう、私はそれを避けることができるときにプラグインの使用を避けたいです^^
サイモン

@Simonこれは参照用でした:「_andこのプラグインのコードを編集」ファイルに移動します。:)
kaiser

@kaiser-はい、あなたは正しい、プラグインのコードは洞察と実用的な実装を提供する必要があります^^
サイモン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.