Youtube - 如何在嵌入链接/<iframe> 中强制 480p 视频质量

Posted

技术标签:

【中文标题】Youtube - 如何在嵌入链接/<iframe> 中强制 480p 视频质量【英文标题】:Youtube - How to force 480p video quality in embed link / <iframe> 【发布时间】:2012-05-01 00:41:29 【问题描述】:

如何为 iframed Youtube 视频强制 480p 视频质量?

示例代码:

<iframe   src="http://www.youtube.com/embed/FqRgAs0SOpU" frameborder="0" allowfullscreen></iframe>

【问题讨论】:

【参考方案1】:

您可以使用YouTube javascript player API,它本身具有设置播放质量的功能。

player.setPlaybackQuality(suggestedQuality:String):Void

此函数设置当前视频的建议视频质量。该功能使视频以新质量重新加载到其当前位置。如果播放质量确实发生了变化,它只会随着正在播放的视频而变化。调用此函数并不能保证播放质量会真正改变。但是,如果播放质量确实发生了变化,onPlaybackQualityChange 事件将触发,并且您的代码应该响应该事件,而不是它调用 setPlaybackQuality 函数的事实。 [source]

【讨论】:

我无法直接控制页面代码。我希望我可以在嵌入 URL 中只使用某个参数... :( 不幸的是,他们删除了您可以用来执行此操作的 &fmt= 选项,我不知道为什么.. 哦,我不知道 fmt= 被删除了! :(【参考方案2】:

您可以使用fmt=参数并根据下表填写值:

http://en.wikipedia.org/wiki/YouTube#Quality_and_codecs

例如:您的网址将变为:

http://www.youtube.com/embed/FqRgAs0SOpU?fmt=35

【讨论】:

哦,Noooo :( 他们怎么能那样做?【参考方案3】:

我发现,截至 2012 年 5 月,如果您将帧大小设置为使最小像素区域(宽度 • 高度)高于某个阈值,如果您是视频,它会将质量从 360p 提升到 480p至少为 640 x 360。

我发现将嵌入帧的帧大小设置为 780 x 480 会触发 480p 质量,而不会扭曲视频(放大)。 640 x 585 也以这种方式工作。我也使用了&amp;hd=1 参数,但如果您的视频不是以高清(720p 或更高)上传,我怀疑这有很大的控制力。

例如:

<iframe   src="http://www.youtube.com/embed/[VIDEO-ID]?rel=0&fs=1&showinfo=0&autohide=1&hd=1"></iframe>

当然,缺点是通过设置这些静态框架尺寸,您很可能会在侧面或上方和下方看到黑条,具体取决于您的喜好。

如果您不关心被截断的控件,您可以继续使用 CSS 和 overflow: hidden 将黑条从框架中裁剪出来,前提是您知道视频的确切尺寸。

希望这会有所帮助,并希望 Embed 方法有朝一日再次获得离散质量参数!

【讨论】:

【参考方案4】:

将以下参数附加到 Youtube-URL:

144p: &vq=小 240p: &vq=小 360p:&vq=中等 480p:&vq=large 720p:&vq=hd720

例如:

src="http://www.youtube.com/watch?v=oDOXeO9fAg4"

变成:

src="http://www.youtube.com/watch?v=oDOXeO9fAg4&vq=large"

【讨论】:

它对我不起作用。只有当我尝试?rel=0&amp;vq=large 时才会这样做。 还要检查youtube视频是否提供360p、480p、720p等。如果缺少480p,设置参数将无效。 @pepper_chico:使用标准 iframe 嵌入时需要的 ?rel=0&amp;vq=large,例如&lt;iframe width="560" height="315" src="//www.youtube.com/embed/VIDEOID?rel=0&amp;vq=large" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt; 它只适用于嵌入视频(你不能在 youtube 网站上使用它),你应该使用src="https://www.youtube.com/embed/VIDEO-ID"src="http://www.youtube.com/watch?v=VIDEO-ID" 甚至没有显示任何视频(至少如果我只是在网络浏览器中打开我的 test.html,而不是从服务器)。如果 iframe 窗口的大小小于 1920x1080px(或 mb 取决于您的显示器),它不会设置为例如 1080p 这个答案仅适用于在浏览器中观看视频,而不是通过 iframe 嵌入,根据原始问题。【参考方案5】:

您也可以使用 1080 高清值:

240p: &vq=small , 360p: &vq=medium , 480p: &vq=large , 720p: &vq=hd720 , &vq=hd1080

【讨论】:

以上是关于Youtube - 如何在嵌入链接/<iframe> 中强制 480p 视频质量的主要内容,如果未能解决你的问题,请参考以下文章

YouTube iframe 嵌入中特定时间的链接

如何在 Laravel 中上传和显示嵌入的 youtube 视频

如何在 ruby​​ on rails 中显示 vimeo 和 youtube 嵌入链接的缩略图?

如何跟踪嵌入视频(youtube、vimeo 等)的点击事件? (跟踪播放次数)

在 PHP 字符串中查找 youtube 链接并将其转换为嵌入代码?

如何在Android中嵌入和播放YouTube视频