我使用mediaelement播放器从youtube播放视频。然而,我得到的视频质量很差。我尝试使用以下方法强制播放最高质量的内容:
<source type="video/youtube" src='http://www.youtube.com/watch?v=WA4iX5D9Z64&hd=1'></source>
然而,这不起作用。如何以最高质量获取视频或指定我想要的质量。
答案 0 :(得分:2)
一般来说,只有当视频窗口足够大才能处理更高的定义时,Youtube API才会尊重hd参数...所以如果你的iFrame最终只有640x360,那么你甚至可以获得一个360p的视频= 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属性中使用它。