我想要獲得YouTube視頻的寬高比,以相應地調整播放器的大小。我正在使用JavaScript編程YT播放器。如何獲得YouTube視頻寬高比
回答
在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)。這並不總是確切的長寬比,但它足夠接近絕大多數視頻的用處。
寬高比顯然取決於質量水平。採取從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.
這是我如何做到這一點。我從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"}
我建議擊中透過oEmbed網址:
https://www.youtube.com/oembed?url=https://www.youtube.com/watch?v= {} VideoID的格式& JSON =
這給了你對於那些公開的影片的確切尺寸的視頻。雖然我不確定私人視頻。它還會返回縮略圖尺寸,在某些情況下它們看起來不同,所以請確保不要混淆它們。
也許不是一個好的答案,但似乎有一個假設,其他答案是YouTube視頻是16:9或4:3。
但是他們可以有一個非常隨意的長寬比,而且縱向手機視頻已經變得非常普遍,對YouTube上的視頻變得不那麼稀有了。
對於這些非標準的長寬比,作爲一個快速的手動軟糖,我使用全屏播放,做屏幕截圖,裁剪圖像。
我已經在http://youtube-aspect-ratios.xtra.ink上提供了幾個任意方面視頻的例子。
- 1. 嵌入YouTube視頻 - 寬高比
- 2. 如何從視頻文件中獲得寬高比?
- 3. Python:如何從視頻中獲得顯示寬高比?
- 4. 從FFmpeg獲取視頻的高寬比
- 5. FFMPEG寬高比HTML5視頻
- 6. 無法在WebRTC中獲得1:1寬高比視頻
- 7. 我如何獲得YouTube視頻ID(PHP)
- 8. 如何獲得YouTube視頻標題 - vb
- 9. 如何獲得YouTube視頻流
- 10. 如何獲得SVG的寬高比?
- 11. 使用video.js保持YouTube視頻的寬高比例
- 12. 如何從視頻url獲得YouTube視頻標題
- 13. 製作一個Youtube視頻全高和寬度覆蓋視頻
- 14. 如何獲取Instagram視頻的視頻高度和寬度?
- 15. PHP FFmpeg視頻寬高比問題
- 16. Android:MediaPlayer視頻寬高比問題
- 17. HTML背景視頻寬高比
- 18. 檢測寬高比--HTML5視頻
- 19. 使視頻寬高比保持最大100%寬度和高度
- 20. 如何從YouTube上的視頻獲得音頻,如「視頻到MP3」在Android?
- 21. 以高質量獲取youtube視頻
- 22. 通過API獲取YouTube視頻高度
- 23. 如何獲得自動創建的YouTube頻道視頻(遊戲)
- 24. Phonegap:如何獲得捕獲視頻的實際寬度和高度
- 25. youtube api獲得當前視頻標題
- 26. 在Youtube上獲得視頻評論
- 27. 如何使用AVAssetWriter保存視頻的寬高比
- 28. 如何調整幀的視頻,從與寬高比
- 29. 如何在Flash中保持寬高比as3視頻
- 30. 如何調整視頻刷新寬高比
這篇文檔說每個質量級別可以有16:9或4:3的寬高比。 – infojunkie 2011-02-15 23:02:46
不包括第一個和最後一個。我找不到任何其他寬高比的文檔。但看看不同的寬度和高度。當然,你可以用它來確定比例? – Shaz 2011-02-15 23:04:37
這是我的代碼,設置播放器的寬度和高度 - 使用它們來推導縱橫比是沒有意義的。 – infojunkie 2011-02-15 23:55:58