我正在使用媒体元素播放器从youtube上流式播放视频。然而,我得到的视频质量很差。我尝试使用以下命令强制执行最高质量的回放:
<source type="video/youtube" src='http://www.youtube.com/watch?v=WA4iX5D9Z64&hd=1'></source>然而,这是行不通的。我如何才能在那里得到尽可能高质量的视频或指定我想要的质量。
发布于 2013-02-14 02:24:10
一般来说,仅当视频窗口足够大以处理更高清晰度时,Youtube API才会考虑hd参数。因此,如果你的iFrame最终只有640x360大小,即使添加了hd=1,你也会得到一个360p的视频。这可以通过增加iFrame的大小(或传递给API的height/width参数)或通过使用vq参数来指定您想要的质量(即vq=720p或类似的东西)来更改。
然而,您的情况很复杂,因为您不是自己与API交互,也不是使用简单的iFrame嵌入,而是使用媒体元素播放器包装它。在查看源代码时,似乎当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- and -player.js文件,以确保它将vq参数发送到API,然后在src属性中使用它。
https://stackoverflow.com/questions/14846684
复制相似问题