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 也以这种方式工作。我也使用了&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&vq=large
时才会这样做。
还要检查youtube视频是否提供360p、480p、720p等。如果缺少480p,设置参数将无效。
@pepper_chico:使用标准 iframe 嵌入时需要的 ?rel=0&vq=large
,例如<iframe width="560" height="315" src="//www.youtube.com/embed/VIDEOID?rel=0&vq=large" frameborder="0" allowfullscreen></iframe>
它只适用于嵌入视频(你不能在 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 视频质量的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Laravel 中上传和显示嵌入的 youtube 视频
如何在 ruby on rails 中显示 vimeo 和 youtube 嵌入链接的缩略图?
如何跟踪嵌入视频(youtube、vimeo 等)的点击事件? (跟踪播放次数)