Создание миниатюр для видео

17

Я проверил и прочитал много постов об одной проблеме, которая намного сложнее, чем кажется.

У меня есть веб-сайт, на котором используется множество видео, взятых с веб-сайта, как и в Интернете ^^ (такие сервисы, как youtube, vimeo, videobuzzy и т. Д.), И мы хотели бы на лету создать миниатюру встроенного видео.

Каждый сервис использует свой собственный API, поэтому я должен адаптировать код для каждого, что слишком много кода, и я никогда не смогу управлять каждым сервисом.

Веб-сервер предлагает что-то подобное: http://embed.ly, но я попробовал их, и, как пример, видео с видеобузы не работает. Так что это частичное решение.

Другим решением может быть использование сервиса скриншотов, который может запрашивать URL видео, отображать его, делать снимок и генерировать изображение. Заманчиво, но результаты имеют тенденцию добавлять задержки, и мне нужно найти сервис моментальных снимков и сгенерировать код (ну, это может быть забавной частью).

Самый простой способ - сделать снимок экрана и создать изображение самостоятельно, а затем загрузить его.

Я предпочел бы предложить что-то более удобное для пользователя, но у меня нет больше подсказки.

У кого-нибудь есть какой-то совет по этому поводу, и я правильно понимаю картину?

Спасибо.

ДОБАВЛЕНИЕ **

Если бы я мог вместо миниатюр просто вставить видео (обычно iframe) в файл определенного размера, это могло бы помочь ...

Саймон
источник
Один из найденных способов был через плагин: wordtube. Вообще покрытие JW Player .. но может быть полезно.
majicmike

Ответы:

20

Вы можете использовать функциональность oEmbed, встроенную в WordPress. Обычно любой видеохост в этом списке вернет вам миниатюру, используя oembed.

Вот список поставщиков по умолчанию, которые WordPress использует для автоматического встраивания в область содержимого. Я включил не видео источники, а также для удобства других.

Полный список возможных провайдеров задокументирован в кодексе WordPress в разделе:
Embeds - Хорошо, с каких сайтов я могу встраивать?

Выберите своего провайдера, затем используйте следующую информацию, чтобы получить информацию о видео.

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. Вы должны спросить их, есть ли у них протоколы. Если они этого не делают, вы можете зарегистрировать обработчик без oembed с помощью wp_embed_register_handler().

Надеюсь это поможет!

Брайан Фегтер
источник
Звучит очень приятно! Но есть ли быстрый способ получить $ url из поста вместо жестко закодированного beign?
Симон
1
Прямо сейчас, я просто использую настраиваемое поле для размещения моего URL-адреса видео. Работайте хорошо, продолжайте тестирование ... Большое спасибо, Брайан! Я просто адаптировал код, добавив $ provider = $ oembed-> Discover ($ vid_url); так что мне не нужно жестко кодировать видео-провайдер
Simon
@Simon Можете ли вы поделиться финальным кодом, который помог реализовать это? И, пожалуйста, дайте нам некоторые подробности о том, как это реализовать? У меня те же требования, но я не уверен, как это сделать на WP, я все еще новичок в WP. Спасибо
Крунал
@ Крунал Да, я мог, это довольно близко к решению Брайана! Я просто добавил резервное изображение и обновил метаданные, если oEmbed завершился успешно, поэтому мне не нужно каждый раз спрашивать. Но я не знаю, как отправить его вам, так как я не могу добавить код в комментарии, и я не чувствую, что это стоит нового ответа?
Саймон
1
@Sisir На самом деле, есть. Вы можете посмотреть здесь: codex.wordpress.org/Function_Reference/… Сначала зарегистрируйте обработчик без oEmbed, а затем используйте код выше. :)
Брайан Фегтер
3

Вы можете использовать этот плагин Wordpress Video Plugin и редактировать код этого плагина и добавлять другие сайты в него.

ИЛИ

Вы должны интегрировать FFMPEG в WordPress .

Нилай Патель
источник
Спасибо, я бы предпочел избегать использования плагинов, когда я могу избежать этого ^^
Simon
@Simon Он был задуман как ссылка: перейдите в файлы "_ и отредактируйте код этого плагина". :)
Кайзер
@kaiser -yes, вы правы, код плагина должен обеспечить понимание и рабочую реализацию ^^
Simon