以高品质获取YouTube视频

时间:2013-02-13 05:01:26

标签: youtube video-streaming youtube-api

我使用mediaelement播放器从youtube播放视频。然而,我得到的视频质量很差。我尝试使用以下方法强制播放最高质量的内容:

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

然而,这不起作用。如何以最高质量获取视频或指定我想要的质量。

1 个答案:

答案 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属性中使用它。