Gerando miniaturas para vídeo

16

Eu verifiquei e li muitas postagens sobre um único problema que é muito mais complicado do que parece.

Eu tenho um site que usa muitos vídeos retirados do site da web como na internet ^^ (serviços como youtube, vimeo, videobuzzy etc.) e gostaríamos de gerar instantaneamente uma miniatura do vídeo incorporado.

Cada serviço usa sua própria API, então eu devo adaptar o código para cada um, que é muito código e eu nunca poderia gerenciar todos os serviços.

Um servidor da web propõe algo assim: http://embed.ly, mas eu tentei e, como exemplo, os vídeos do videobuzzy não funcionam. Então essa é uma solução parcial.

Outra solução seria usar um serviço de captura de tela que pudesse solicitar o URL do vídeo, renderizá-lo, tirar um instantâneo e gerar uma imagem. Tentador, mas os resultados tendem a adicionar atrasos, e eu tenho que encontrar um serviço de instantâneo e gerar o código (bem, essa pode ser a parte divertida).

O mais simples seria fazer uma captura de tela e criar uma imagem por conta própria e depois enviá-la.

Prefiro propor algo mais amigável, mas não tenho mais idéia.

Alguém tem algum conselho sobre isso e eu entendi a foto?

Obrigado.

TERMO ADITIVO **

Se eu pudesse, em vez das miniaturas, apenas incorporar o vídeo (geralmente um iframe) em um tamanho específico, isso poderia fazer o truque ...

Simon
fonte
Uma maneira encontrada foi através de um plugin: wordtube. Geralmente cobrindo JW Player .. mas talvez útil.
majicmike

Respostas:

19

Você pode usar a funcionalidade oEmbed incorporada ao WordPress. Normalmente, qualquer host de vídeo nesta lista retornará uma miniatura para você usando oembed.

Aqui está uma lista de provedores padrão que o WordPress usa para incorporação automática na área de conteúdo. Incluí fontes que não são de vídeo e também para a conveniência de outras pessoas.

A lista completa de possíveis fornecedores está documentada no codex do WordPress em:
Incorporações - OK, então de quais sites posso incorporar?

Selecione seu provedor e use o seguinte para obter suas informações de vídeo.

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;

Sei que o VideoBuzzy não está na lista. Parece ser um site imitador do YouTube. Você deve perguntar se eles possuem protocolos oembed. Caso contrário, você pode registrar um manipulador não oembed usando wp_embed_register_handler().

Espero que isto ajude!

Brian Fegter
fonte
Parece muito bom! Mas existe uma maneira rápida de obter o $ url da postagem em vez de ser codificado de forma codificada?
Simon
1
No momento, estou apenas usando um campo personalizado para colocar meu URL de vídeo. Trabalhando bem, continue testando ... Muito obrigado, Brian! Acabei de adaptar o código adicionando $ provider = $ oembed-> discover ($ vid_url); então eu não precisa codificar o fornecedor de vídeo
Simon
@ Simon Você pode compartilhar o código final que ajudou a implementar isso? E, por favor, nos dê alguns detalhes sobre como implementar isso? Tenho os mesmos requisitos, mas não sei como fazer isso no WP, ainda sou novo no WP. Obrigado
Krunal 28/10/12
@ Krunal Sim, eu poderia, é bem próximo da solução de Brian! Acabei de adicionar uma imagem de fallback e atualizar os metadados, se o oEmbed for bem-sucedido, para que não precise perguntar sempre. Mas não sei como enviar para você, pois não consigo adicionar código nos comentários e não acho que valha uma nova resposta?
Simon
1
@ Siris Na verdade, existe. Você pode procurar aqui: codex.wordpress.org/Function_Reference/… Registre um manipulador não-OEmbed primeiro e use o código acima. :)
Brian Fegter
3

Você pode usar este plugin Wordpress Video Plugin e editar o código desse plugin e adicionar os outros sites.

OU

Você precisa integrar o FFMPEG no wordpress.

Nilay Patel
fonte
Obrigado, eu prefiro evitar o uso de plugins quando posso evitá-lo ^^
Simon
@ Simon Era uma referência: Vá para os arquivos "_e edite o código deste plugin". :)
Kaiser
@kaiser Sim, você está certo, o código do plugin deve fornecer uma visão e implementação de trabalho ^^
Simon