2013-02-13 124 views
1

我使用mediaelement播放器從youtube流式傳輸視頻。但是,我收到的視頻質量很差。我試圖強制使用最高質量的播放:以高質量獲取youtube視頻

<source type="video/youtube" src='http://www.youtube.com/watch?v=WA4iX5D9Z64&hd=1'></source> 

但是,這是行不通的。我怎樣才能在那裏獲得最高質量的視頻或指定我想要的質量。

回答

2

一般而言,只有當視頻窗口足夠大才能處理更高的定義時,Youtube API纔會尊重hd參數...因此,如果您的iFrame最終只有640x360,您將獲得360p視頻,即使已添加hd = 1。這可以通過增加iFrame的大小(或傳遞給API的高度/寬度參數)或通過使用vq參數來指定你想要的質量(即vq = 720p或類似的東西)來改變。

但是,由於您沒有親自與API進行交互或使用簡單的iFrame嵌入,而是使用mediaelement播放器包裝它,所以您的情況很複雜。在查看源代碼時,看起來,當mediaelement與Youtube API交互時,它不會傳遞除Youtube ID之外的任何參數(在'playerVars'數組中),因此hd或vq都不會有任何影響。改變玩家的大小仍然有效;例如,

<video width="1280" height="720" id="player1" preload="none"> 
    <source type="video/youtube" src="http://www.youtube.com/watch?v=nOEw9iiopwI"/> 
</video> 

會給你比更高質量的視頻:

<video width="640" height="360" id="player1" preload="none"> 
    <source type="video/youtube" src="http://www.youtube.com/watch?v=nOEw9iiopwI"/> 
</video> 

當你執行的MediaElement回調。

如果您不想增加播放器的尺寸,但仍然有更高質量的視頻,可以修補mediaelement-and-player.js文件以確保它將vq參數發送到API,並且然後在src屬性中使用它。