กำลังสร้างรูปขนาดย่อสำหรับวิดีโอ


17

ฉันได้ตรวจสอบและอ่านบทความจำนวนมากเกี่ยวกับปัญหาเดียวที่ซับซ้อนกว่าที่คิด

ฉันมีเว็บไซต์ที่ใช้วิดีโอจำนวนมากที่นำมาจาก wwebsite บนอินเทอร์เน็ต ^^ (บริการเช่น youtube, vimeo, videobuzzy ฯลฯ ) และเราต้องการสร้างภาพขนาดย่อของวิดีโอแบบฝัง

แต่ละบริการใช้ API ของตัวเองดังนั้นฉันควรปรับรหัสสำหรับแต่ละบริการซึ่งมันเป็นรหัสที่มากเกินไปและฉันไม่สามารถจัดการทุกบริการได้

เว็บเซิร์ฟเวอร์ขอเสนออะไรแบบนั้น: http://embed.lyแต่ฉันลองพวกเขาแล้ววิดีโอที่ได้จาก videobuzzy ไม่ทำงาน นั่นคือทางออกบางส่วน

วิธีแก้ปัญหาอื่นก็คือการใช้บริการภาพหน้าจอที่สามารถขอ URL ของวิดีโอแสดงมันถ่ายภาพและสร้างภาพ ดึงดูดความสนใจ แต่ผลลัพธ์มีแนวโน้มที่จะเพิ่มความล่าช้าและฉันต้องค้นหาบริการสแน็ปช็อตและสร้างรหัส (นี่อาจเป็นส่วนที่สนุก)

วิธีที่ง่ายที่สุดคือการจับภาพหน้าจอและสร้างภาพด้วยตัวเองแล้วอัปโหลด

ฉันอยากจะเสนอสิ่งที่เป็นมิตรกับผู้ใช้มากกว่า แต่ฉันไม่มีเงื่อนงำเพิ่มเติม

ใครบ้างมีคำแนะนำเกี่ยวกับเรื่องนี้และฉันจะทำให้ภาพถูกต้องหรือไม่

ขอขอบคุณ.

เพิ่ม **

ถ้าฉันทำได้แทนที่จะเป็นรูปขนาดย่อเพียงแค่ฝังวิดีโอ (โดยปกติคือ iframe) ลงในขนาดที่เฉพาะเจาะจงนั่นอาจทำให้เคล็ดลับ ...


วิธีหนึ่งที่พบคือผ่านปลั๊กอิน: wordtube โดยทั่วไปแล้วครอบคลุม JW Player .. แต่อาจมีประโยชน์
majicmike

คำตอบ:


20

คุณสามารถใช้ฟังก์ชั่น oEmbed อบเข้ากับ WordPress โดยทั่วไปโฮสต์วิดีโอใด ๆ ในรายการนี้จะส่งคืนรูปย่อให้คุณโดยใช้ 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 ไม่ได้อยู่ในรายการ ดูเหมือนว่าจะเป็นเว็บไซต์ knockoff ของ YouTube คุณควรถามพวกเขาว่าพวกเขามีโปรโตคอล oembed ถ้าพวกเขาทำไม่ได้คุณสามารถลงทะเบียนตัวจัดการ oEmbed wp_embed_register_handler()ไม่ใช่โดยใช้

หวังว่านี่จะช่วยได้!


ฟังดูดีจริง! แต่มีวิธีที่รวดเร็วในการรับ $ url จากโพสต์แทนที่จะเป็น beign hardcoded ไหม?
Simon

1
ตอนนี้ฉันแค่ใช้ฟิลด์ที่กำหนดเองเพื่อวาง URL วิดีโอของฉัน ทำงานได้ดีลองทดสอบ ... ขอบคุณมาก Brian! ฉันเพิ่งดัดแปลงรหัสโดยเพิ่ม $ provider = $ oembed-> Discover ($ vid_url); ดังนั้นฉันไม่จำเป็นต้อง hardcode ผู้ให้บริการวิดีโอ
Simon

@Simon คุณสามารถแบ่งปันรหัสสุดท้ายที่ช่วยในการดำเนินการนี้ได้หรือไม่ และกรุณาให้รายละเอียดเกี่ยวกับวิธีการใช้งานนี้ ฉันมีข้อกำหนดเหมือนกัน แต่ไม่แน่ใจว่าจะทำอย่างไรกับ WP ฉันยังใหม่กับ WP ขอบคุณ
Krunal

@Krunal ใช่ฉันทำได้มันใกล้กับทางออกของ Brian แล้ว ฉันเพิ่งเพิ่มรูปภาพสำรองและอัปเดตข้อมูลเมตาถ้า oEmbed สำเร็จดังนั้นฉันไม่ต้องถามทุกครั้ง แต่ฉันไม่ส่งให้คุณเนื่องจากฉันไม่สามารถเพิ่มรหัสในความคิดเห็นและฉันไม่รู้สึกว่ามันคุ้มค่ากับคำตอบใหม่หรือไม่
Simon

1
@Sisir จริงๆแล้วมี คุณสามารถดูได้ที่นี่: codex.wordpress.org/Function_Reference/… ลงทะเบียนตัวจัดการที่ไม่ใช่ oEmbed ก่อนจากนั้นใช้รหัสด้านบน :)
Brian Fegter

3

คุณสามารถใช้ปลั๊กอินนี้Wordpress Video Pluginและแก้ไขรหัสของปลั๊กอินนี้และเพิ่มไซต์อื่น ๆ

หรือ

คุณต้องรวมFFMPEGในเวิร์ดเพรส


ขอบคุณฉันควรหลีกเลี่ยงการใช้ปลั๊กอินเมื่อฉันสามารถหลีกเลี่ยงได้ ^^
Simon

@Simon มันมีความหมายว่าเป็นข้อมูลอ้างอิง: เข้าไปที่ไฟล์ "_and แก้ไขโค้ดของปลั๊กอินนี้" :)
ไกเซอร์

@kaiser - ใช่ถูกต้องแล้วโค้ดปลั๊กอินควรให้ข้อมูลเชิงลึกและนำไปใช้งานได้ ^^
Simon
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.