Generowanie miniatur dla wideo


17

Sprawdziłem i przeczytałem wiele postów na temat jednego problemu, który jest o wiele bardziej skomplikowany niż się wydaje.

Mam stronę internetową, która korzysta z wielu filmów pobranych ze strony internetowej jak w Internecie ^^ (usługi takie jak youtube, vimeo, videobuzzy itp.) I chcielibyśmy wygenerować w locie miniaturę osadzonego wideo.

Każda usługa korzysta z własnego interfejsu API, więc powinienem dostosować kod dla każdej z nich, co stanowi zdecydowanie za dużo kodu i nigdy nie mógłbym zarządzać każdą usługą.

Serwer WWW proponuje coś takiego: http://embed.ly, ale próbowałem ich i, na przykład, filmy z videobuzzy nie działają. To częściowe rozwiązanie.

Innym rozwiązaniem byłoby użycie usługi zrzutu ekranu, która może zażądać adresu URL filmu, renderować go, zrobić migawkę i wygenerować obraz. Kuszące, ale wyniki mają tendencję do dodawania opóźnień, a ja muszę znaleźć usługę migawkową i wygenerować kod (cóż, to może być fajna część).

Najprościej byłoby zrobić zrzut ekranu i stworzyć obraz, a następnie przesłać go.

Wolałbym zaproponować coś bardziej przyjaznego dla użytkownika, ale nie mam już żadnych wskazówek.

Czy ktoś ma jakieś porady na ten temat i czy mam rację?

Dziękuję Ci.

DODATEK **

Gdybym mógł zamiast miniatur po prostu osadzić film (zwykle iframe) w określonym rozmiarze, to by załatwiło sprawę ...


Jednym ze sposobów było znalezienie wtyczki: wordtube. Ogólnie obejmuje JW Player .., ale może być użyteczny.
majicmike

Odpowiedzi:


20

Możesz skorzystać z funkcji oEmbed zapisanej w WordPress. Zazwyczaj każdy host wideo na tej liście zwraca ci miniaturę przy użyciu oembed.

Oto lista domyślnych dostawców, których WordPress używa do automatycznego osadzania w obszarze zawartości. Dla wygody innych zamieściłem również źródła inne niż wideo.

Pełna lista potencjalnych dostawców jest udokumentowana w kodeksie WordPress pod:
Embeds - OK, więc z jakich stron mogę osadzać?

Wybierz dostawcę, a następnie skorzystaj z poniższych instrukcji, aby uzyskać informacje o filmie.

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;

Zdaję sobie sprawę, że VideoBuzzy nie ma na liście. Wygląda na stronę podrzucającą YouTube. Powinieneś spytać ich, czy mają podpisane protokoły. Jeśli nie, możesz zarejestrować nieobsługiwany moduł obsługi za pomocą wp_embed_register_handler().

Mam nadzieję że to pomoże!


Brzmi nieźle! Ale czy istnieje szybki sposób na pobranie adresu URL z wpisu zamiast na stałe?
Simon

1
W tej chwili używam niestandardowego pola do umieszczenia mojego adresu URL filmu. Dobra robota, kontynuuj testowanie ... Wielkie dzięki, Brian! Właśnie dostosowałem kod, dodając $ provider = $ oembed-> discover ($ vid_url); więc nie muszę na stałe kodować dostawcy wideo
Simon

@ Simon Czy możesz udostępnić końcowy kod, który pomógł to wdrożyć? I uprzejmie podaj nam kilka szczegółów, jak to zaimplementować? Mam te same wymagania, ale nie jestem pewien, jak to zrobić na WP, wciąż jestem nowy na WP. Dzięki
Krunal,

@Krunal Tak, mógłbym, to całkiem blisko rozwiązania Briana! Właśnie dodałem obraz zastępczy i zaktualizowałem metadane, jeśli oEmbed się powiedzie, więc nie muszę za każdym razem pytać. Ale nie wiem, jak ci to wysłać, ponieważ nie mogę dodać kodu w komentarzach i nie uważam, że warto nową odpowiedź?
Simon

1
@Sisir Tak naprawdę jest. Możesz zajrzeć tutaj: codex.wordpress.org/Function_Reference/… Najpierw zarejestruj nieobsługiwany moduł obsługi, a następnie użyj powyższego kodu. :)
Brian Fegter,

3

Możesz użyć tej wtyczki Wtyczka wideo Wordpress i edytować kod tej wtyczki oraz dodawać w niej inne witryny.

LUB

Musisz zintegrować FFMPEG z wordpress.


Dziękuję, wolę unikać używania wtyczek, gdy mogę tego uniknąć ^^
Simon

@ Simon To miało służyć jako odniesienie: Przejdź do plików „i edytuj kod tej wtyczki”. :)
kaiser

@kaiser - tak, masz rację, kod wtyczki powinien zapewniać wgląd i działającą implementację ^^
Simon
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.