如何获得最佳/最大mp4视频分辨率twitter

时间:2017-07-27 05:21:56

标签: php twitter

如何获得最佳/最大mp4视频分辨率twitter api

 stdClass Object ( [bitrate] => 320000 [content_type] => video/mp4 [url] => https://video.twimg.com/ext_tw_video/4565654656538862849/pu/vid/320x180/8tkyfOGWAsk463643.mp4 ) [1] => stdClass Object ( [content_type] => application/x-mpegURL [url] => https://video.twimg.com/ext_tw_video/8234513464436343/pu/pl/UbTspZ_h6W143643zC.m3u8 ) [2] => stdClass Object ( [bitrate] => 832000 [content_type] => video/mp4 [url] => https://video.twimg.com/ext_tw_video/823451433633464364/pu/vid/640x360/051dcpN_Z9nE346.mp4 ) )

我想获得最佳分辨率为640x360的mp4(在其他帖子和不同数组[0] [1] [2] [...]上的分辨率不同) 我怎么得到它?

这个我的代码显示了所有视频变体

echo ($media->video_info->variants[0]->url .'<br>') ;


echo($media->video_info->variants[1]->url).'<br>' ;


echo ($media->video_info->variants[2]->url).'<br>';


echo ($media->video_info->variants[3]->url) .'<br>';


echo ($media->video_info->variants[4]->url) .'<br>';

2 个答案:

答案 0 :(得分:1)

搜索this question,了解如何使用来自其他网络资源的PHP将文件下载到服务器。

第二项任务是从URL中获取分辨率。 URL似乎遵循一种模式:

.../vid/<X>x<Y>/<random string of letters and numbers>.mp4

使用正则表达式,您可以从mp4视频链接中提取X和Y分辨率:

$regex = '\/([0-9]+)x([0-9]+)\/[0-9a-zA-Z]+\.mp4$'
if (preg_match($regex, $url, $matches)) { 
    $x_resolution = intval($matches[1]);
    $y_resolution = intval($matches[2]);
    $pixels = $x_resolution * $y_resolution; 
} else {
    $pixels = 0;
}

您可以为每个网址计算分辨率。 如果URL不包含分辨率,则需要下载该文件以查找。上面的代码使用特殊值'0'来表示这一点。

找出特定视频文件的分辨率取决于其文件格式。由于存在大量数量的视频容器,编解码器等,因此我不会在此处详细介绍。这里最好的解决方案是确定哪些格式与您实际相关,并仅为这些格式实现代码。

您可能希望查看开源媒体播放器的代码以及它如何确定分辨率。

解决这个简单的案例:

  1. 遍历每个网址并运行上面的代码。
  2. 找到$pixels值最大的那个。
  3. 下载此网址。

答案 1 :(得分:0)

这可能要晚了,但请考虑以下问题

var bitrate
var vid_url

foreach variant
if variant.bitrate >= bitrate
vid_url = variant.vid_url

console.log(vid_url)

现在您质量最高