2011-02-15 138 views

回答

7

在Data API調用中唯一顯示精確視頻維度的地方是在您通過使用v3 API進行videos.list(part=fileDetails, id=VIDEO_ID)調用,同時作爲視頻所有者進行身份驗證時。它在video.fileDetails.videoStreams[].aspectRatio屬性中返回。這不是特別有用,因爲您需要通過視頻所有者的身份驗證才能獲取該信息。

如果你只是有一個網頁,並希望使一個JSONP電話獲取有關給定的視頻是否是16一個提示:9或4:3,你可以做到這一點通過類似

http://gdata.youtube.com/feeds/api/videos/VIDEO_ID? v = 2 & alt = jsonc & callback = myCallback

Eg

http://gdata.youtube.com/feeds/api/videos/F1IVb2_FYxQ?v=2&alt=jsonc&callback=myCallback

在其響應,這是一個暗示該視頻是16 "aspectRatio":"widescreen"組:9(或接近16:9)。

http://gdata.youtube.com/feeds/api/videos/u1zgFlCw8Aw?v=2&alt=jsonc&callback=myCallback

沒有aspectRatio集在所有,這意味着該視頻爲4:3(或接近4:3)。這並不總是確切的長寬比,但它足夠接近絕大多數視頻的用處。

1

寬高比顯然取決於質量水平。採取從YouTube Docs

Quality level small: Player height is 240px, and player dimensions are at least 320px by 240px for 4:3 aspect ratio. 
Quality level medium: Player height is 360px, and player dimensions are 640px by 360px (for 16:9 aspect ratio) or 480px by 360px (for 4:3 aspect ratio). 
Quality level large: Player height is 480px, and player dimensions are 853px by 480px (for 16:9 aspect ratio) or 640px by 480px (for 4:3 aspect ratio). 
Quality level hd720: Player height is 720px, and player dimensions are 1280px by 720px (for 16:9 aspect ratio) or 960px by 720px (for 4:3 aspect ratio). 
Quality level hd1080: Player height is 1080px, and player dimensions are 1920px by 1080px (for 16:9 aspect ratio) or 1440px by 1080px (for 4:3 aspect ratio). 
Quality level highres: Player height is greater than 1080px, which means that the player's aspect ratio is greater than 1920px by 1080px. 
+1

這篇文檔說每個質量級別可以有16:9或4:3的寬高比。 – infojunkie 2011-02-15 23:02:46

+0

不包括第一個和最後一個。我找不到任何其他寬高比的文檔。但看看不同的寬度和高度。當然,你可以用它來確定比例? – Shaz 2011-02-15 23:04:37

+0

這是我的代碼,設置播放器的寬度和高度 - 使用它們來推導縱橫比是沒有意義的。 – infojunkie 2011-02-15 23:55:58

3

這是我如何做到這一點。我從YouTube圖像中獲得縱橫比。

<img id"nnS7G3Y-IDc-img" src="http://i.ytimg.com/vi/nnS7G3Y-IDc/default.jpg" /> 
<script> 
//using jquery 
var height = $('#nnS7G3Y-IDc-img').css('height'); 
var width = $('#nnS7G3Y-IDc-img').css('width'); 
height = height.replace('px', ''); 
width = width.replace('px', ''); 
var arB = height/3; 
var arT = width/arB; 
if (arT == 4) { 
    //do what you need to with the aspect ratio info from here 
    //just demonstrating with an alert 
    alert ("4:3"); 
} 
else {alert ("16:9");} 
</script> 

我把所有的視頻信息通過YouTube API,然後存儲在數據庫中的所有視頻信息提前,所以,如果你這樣做是在飛行中,你可能必須隱藏頁面上的圖像和然後獲得縱橫比。

編輯**另一個選項,可能是最好的,將使用youtube's api。 搜索視頻,並檢查是否設置了data-> items-> aspectRatio。我不認爲它是在4:3視頻上設置的,但在16:9上設置爲寬屏。應該如此簡單if (data->items->aspectRatio) {ratio= "16:9"} else {ratio="4:3"}

0

也許不是一個好的答案,但似乎有一個假設,其他答案是YouTube視頻是16:9或4:3。

但是他們可以有一個非常隨意的長寬比,而且縱向手機視頻已經變得非常普遍,對YouTube上的視頻變得不那麼稀有了。

對於這些非標準的長寬比,作爲一個快速的手動軟糖,我使用全屏播放,做屏幕截圖,裁剪圖像。

我已經在http://youtube-aspect-ratios.xtra.ink上提供了幾個任意方面視頻的例子。