我正在使用mediaelement播放器从youtube流式传输视频。然而,我得到的视频质量很差。我试图使用强制播放最高质量的视频
<source type="video/youtube" src='http://www.youtube.com/watch?v=WA4iX5D9Z64&hd=1'></source>
然而,这并不奏效。我如何才能在那里获得最高质量的视频,或者指定我想要的质量。
一般来说,只有当视频窗口足够大,可以处理更高的定义时,Youtube API才会尊重hd参数。。。因此,如果你的iFrame最终只有640x360,即使添加了hd=1,你也会得到一个360p的视频。这可以通过增加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属性中使用它。