生成视频缩略图


17

我已经阅读并阅读了很多有关一个问题的文章,该文章比看起来要复杂得多。

我有一个网站,它使用了很多从wwebsite上获取的视频,就像在互联网上^^(诸如youtube,vimeo,videobuzzy等服务),我们想即时生成嵌入式视频的缩略图。

每个服务都使用自己的API,因此我应该为每个服务改编代码,因为代码太多了,所以我永远无法管理每个服务。

一个网络服务器提出了这样的建议:http : //embed.ly,但是我尝试了它们,例如,来自videobuzzy的视频不起作用。所以这是部分解决方案。

另一个解决方案是使用屏幕快照服务,该服务可以请求视频的URL,进行渲染,拍摄快照并生成图像。诱人,但结果往往会增加延迟,因此我必须找到快照服务并生成代码(嗯,这可能是有趣的部分)。

最简单的方法是进行屏幕截图并自己创建图像,然后上传。

我宁愿提出一些更加用户友好的方法,但是我没有更多的线索了。

有人对此有任何建议吗,我能看清楚图片吗?

谢谢。

附录**

如果可以的话,我可以将视频(通常是iframe)嵌入到具有特定大小的视频中,而不是缩略图中,这可以解决问题……


找到一种方法是通过插件:wordtube。通常涵盖JW Player ..但可能有用。
majicmike 2012年

Answers:


20

您可以使用WordPress附带的oEmbed功能。通常,此列表中的任何视频主机都会使用oembed返回缩略图。

这是WordPress用于在内容区域中自动嵌入的默认提供程序的列表。为了方便其他人,我也包括了非视频资源。

可能的提供程序的完整列表记录在WordPress Codex的以下位置:
嵌入-好的,那么我可以嵌入哪些网站?

选择您的提供商,然后使用以下方法获取您的视频信息。

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
现在,我只是使用自定义字段来放置我的视频网址。工作不错,继续测试...非常感谢,布莱恩!我只是通过添加$ provider = $ oembed-> discover($ vid_url);修改了代码。所以我不需要对视频提供者进行硬编码
Simon

@Simon您可以分享有助于实现此目标的最终代码吗?并请给我们一些有关如何实现这一点的细节?我有相同的要求,但不确定如何在WP上执行此操作,但是我对WP还是陌生的。谢谢
Krunal

@Krunal是的,我可以,它与Brian的解决方案非常接近!如果oEmbed成功,我只是添加了一个后备图像并更新了元数据,因此我不必每次都询问。但是,我无法将其发送给您,因为我无法在注释中添加代码,而且我不认为这值得一个新的答案?
西蒙(Simon)

1
@Sisir其实有。您可以在此处查看:codex.wordpress.org/Function_Reference/…首先 注册一个非oEmbed处理程序,然后使用上面的代码。:)
Brian Fegter

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.