【问题标题】:Getting youtube videos in high quality获取高质量的 youtube 视频
【发布时间】:2013-02-13 05:01:25
【问题描述】:
我正在使用 mediaelement 播放器从 youtube 流式传输视频。然而,我得到的视频质量很差。我尝试使用以下命令强制播放最高质量:
<source type="video/youtube" src='http://www.youtube.com/watch?v=WA4iX5D9Z64&hd=1'></source>
但是,这不起作用。如何以尽可能高的质量取回视频或指定我想要的质量。
【问题讨论】:
标签:
youtube
video-streaming
youtube-api
【解决方案1】:
一般来说,只有当视频窗口足够大以处理更高的分辨率时,Youtube API 才会尊重 hd 参数......因此,如果您的 iFrame 最终只有 640x360,即使使用 hd,您也将获得 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 属性中使用它。