当我在我的PHP代码中使用oembed URL并从我上传的视频中提取$video->width
和$video->height
时,我得到的值与我在Youtube上看到的任何内容都不匹配视频。
上传到Youtube的原始视频尺寸: 640 x 336
oembed return: 480 x 270
从Youtube页面界面分享时最小的嵌入选项: 560 x 316
有谁知道oembed在哪里获得这些价值?为什么默认为480?有没有办法获得真正的视频尺寸,或者最少将默认值提升到640 x [proportional_height]
?
我的目标是在嵌入我的网站时保留视频的原生尺寸(无缩放),没有用户实际上需要再次输入视频尺寸。
答案 0 :(得分:2)
Youtube可能会生成一个内容,可以为嵌入内容而不是原始视频提供内容。生成的内容的宽度和高度可以是 480 x 270 。因此,oEmbed api可以始终返回此值。 AFIK没有办法从api端获取视频值的原始尺寸,除非或直到提供者提供。
你可以尝试在jquery和css的帮助下调整视频的宽度和大小。
oEmbed规范在申请api时可以提供maxwidth
和maxheight
参数。所以我们可以限制视频的最大宽度和高度。
希望它有所帮助!
答案 1 :(得分:0)
您可以随时使用CSS进行调整。
答案 2 :(得分:0)
尝试这样的事情
<iframe title="YouTube video player" width="727" height="430" src='http://www.youtube.com/embed/p7ftPYU2_0w' frameborder="0"></iframe>
据我所知,没有办法从嵌入中获取视频的高度。当页面加载并从那里开始时,您可以使用jquery来获取播放器的高度。
答案 3 :(得分:0)
oembed响应中的宽度和高度是正确显示返回的html内容所需的最小高度和宽度。这是视频,界面,任何额外的标题栏或控件或徽标等等。
唯一重要的是当要求提供回复时。请求将指定支持的最大大小的宽度和高度,响应将指定显示内容所需的最小大小。
如果最小内容响应大小不符合最大容器请求大小,那么oembed尝试将失败。
在这种情况下,youtube声明显示youtube界面需要480 x 270。它实际上没有说明视频本身,只有界面,因为任何浏览器都可以自动将任何视频缩放到任何分辨率。