如何获得最佳/最大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>';
答案 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'来表示这一点。
找出特定视频文件的分辨率取决于其文件格式。由于存在大量数量的视频容器,编解码器等,因此我不会在此处详细介绍。这里最好的解决方案是确定哪些格式与您实际相关,并仅为这些格式实现代码。
您可能希望查看开源媒体播放器的代码以及它如何确定分辨率。
解决这个简单的案例:
$pixels
值最大的那个。 答案 1 :(得分:0)
这可能要晚了,但请考虑以下问题
var bitrate
var vid_url
foreach variant
if variant.bitrate >= bitrate
vid_url = variant.vid_url
console.log(vid_url)
现在您质量最高