You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Vimeo PHP SDK获取匹配视频分辨率且无黑边的缩略图?

解决Vimeo竖屏视频缩略图黑边问题

要选到匹配视频分辨率、无黑边的缩略图,核心思路是根据视频原生宽高比筛选对应比例的最高分辨率缩略图,具体操作如下:

  1. 获取视频原生宽高比
    从Vimeo SDK返回的视频数据中,提取width和height字段,计算视频的宽高比(例如竖屏视频的宽高比会小于1)。

  2. 遍历缩略图列表筛选匹配项
    遍历pictures.sizes数组中的每个缩略图条目,计算其宽高比,找到与视频原生比例一致的条目;如果存在多个匹配项,选择分辨率(宽×高)最大的那个。

  3. 直接使用匹配的缩略图链接
    匹配到的缩略图链接默认不会带有?r=pad参数,Vimeo会为比例匹配的缩略图提供无黑边的原生适配版本,直接使用即可。

PHP示例代码

// 假设$video是Vimeo SDK返回的视频数据对象/数组
$videoWidth = $video['width'];
$videoHeight = $video['height'];
$videoRatio = $videoWidth / $videoHeight;

$bestThumbnail = null;
$maxRes = 0;

foreach ($video['pictures']['sizes'] as $pic) {
    $picRatio = $pic['width'] / $pic['height'];
    // 用微小误差范围处理浮点精度问题
    if (abs($picRatio - $videoRatio) < 0.001) {
        $currentRes = $pic['width'] * $pic['height'];
        if ($currentRes > $maxRes) {
            $maxRes = $currentRes;
            $bestThumbnail = $pic['link'];
        }
    }
}

// 极端情况无匹配项时,回退到原最高分辨率逻辑
if (!$bestThumbnail) {
    $bestThumbnail = end($video['pictures']['sizes'])['link'];
}

内容的提问来源于stack exchange,提问作者caevv

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 20:54:17