使用Vimeo API php库请求特定的视频质量?

时间:2018-02-15 18:34:08

标签: php vimeo-api

我希望在我的网站上使用Vimeo作为我自己的视频播放器的CDN,但我一直无法弄清楚如何为每种质量请求特定的视频网址。我希望做的是为3个特定品质检索3个特定的视频链接:4k,3k和2k。

问题是Vimeo将视频数据作为数组提供,视频质量似乎随机索引。以下代码将打印特定Vimeo ID的视频URL,但0索引的视频可能是4k版本,1080高清版本,3k版本......它是随机的。有没有办法过滤这个来请求特定的视频质量? Vimeo的API文档在过滤选项上不是很清楚。

$config = require(__DIR__ . '/init.php');
$lib = new Vimeo($config['client_id'], $config['client_secret']);
if (!empty($config['access_token'])) {
    $lib->setToken($config['access_token']);
    $video = $lib->request('/me/videos/250665164');
} else {
    $user = $lib->request('/me');
}
?>

<?php print_r($video['body']['files'][0]['link']); ?>

这是数组结果的片段。我已将其截断并删除了实际的网址。我曾考虑在数组中循环以根据[width]参数提取相关值,但我认为必须有一种更简单的方法来使用API​​命令。

 [files] => Array
                (
                    [0] => Array
                        (
                            [quality] => sd
                            [type] => video/mp4
                            [width] => 960
                            [height] => 480
                            [link] => http://...
                            [created_time] => 2018-01-11T18:49:01+00:00
                            [fps] => 29.97
                            [size] => 5566399
                            [md5] => ba7546b1aa42aea63b9adad9d2d62b09
                            [link_secure] => https://...
                        )

                    [1] => Array
                        (
                            [quality] => hd
                            [type] => video/mp4
                            [width] => 4096
                            [height] => 2048
                            [link] => http://...
                            [created_time] => 2018-01-11T18:49:01+00:00
                            [fps] => 29.97
                            [size] => 82082650
                            [md5] => 0ba6049bb2aa75d52ddb934fde208cbc
                            [link_secure] => https://...
                        )

1 个答案:

答案 0 :(得分:0)

目前无法从Vimeo API请求特定的视频文件质量。视频不会以任何特定顺序返回 - 某些特性可能会在其他视频之前完成转码,具体取决于原始视频的分辨率,视频的视觉复杂性,当时我们的转码机上的服务器负载以及整个主机其他变量。目前,您需要获取整个files响应并获取所需的视频文件链接。

此外,在抓取这些特定视频文件时,最好检索它们或根据它们的高度/宽度尺寸过滤它们,而不是按quality过滤它们。维度超过720p的所有文件都标记为来自Vimeo的"quality":"hd"

最后,请注意Vimeo不会转码“3K”版本;对于UHD分辨率源视频,Vimeo转码为360p,540p,720p,1080p,1440p(2K)和3840p(4K)。更多信息:https://vimeo.com/help/compression

相关问题