youtube - 获得高质量的youtube视频

标签 youtube video-streaming youtube-api

我正在使用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的height / width参数)或使用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属性。

关于youtube - 获得高质量的youtube视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14846684/

相关文章:

javascript - 如何使用 fs.readStream 和 fs.writesream 发送和接收视频(.mp4)文件[从客户端到服务器,反之亦然][在 Node Js 中]?

iframe - 如何在 youtube Iframe 上禁用全屏?

javascript - 找不到为 YouTube 对象编写脚本的 API 函数

youtube - 存储 YouTube 元数据

java - 如何将YouTube播放列表解析为ArrayList

python - Python:计算观看视频的时间

html - 从 YouTube 播放列表加载新歌曲时重置自定义进度条

php - PHP YouTube API视频标题解析

android - 使用自定义 UI 播放 Youtube 视频

android - 安卓直播