2017-07-27 178 views
-1

如何獲得最佳/最大的mp4視頻分辨率Twitter的API如何獲得最佳/最大的mp4視頻分辨率嘰嘰喳喳

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)) 

我想獲得MP4與其他職位不同陣列最佳640×360分辨率(不相同的分辨率[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>'; 

回答

1

如何將文件下載到使用PHP從其他網絡資源服務器搜索this question

第二個任務是搶分辨率出來的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. 遍歷每個URL並運行上面的代碼。
  2. 找到一個具有最大$pixels值。
  3. 下載此網址。