Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 以正确的9:16格式显示Youtube视频和缩略图_Php_Jquery_Youtube_Thumbnails - Fatal编程技术网

Php 以正确的9:16格式显示Youtube视频和缩略图

Php 以正确的9:16格式显示Youtube视频和缩略图,php,jquery,youtube,thumbnails,Php,Jquery,Youtube,Thumbnails,我可以通过以下链接轻松获得Youtube图像缩略图: 但所有这些缩略图都是3:4格式(或相近的格式),即使视频本身是其他格式。然后在图片的顶部和底部可以看到一些黑色的水平条 我需要一个9:16格式的图像(这是我的视频格式),没有黑条。有可能收回吗 更新 看起来Youtube视频本身的顶部和底部都有黑条,尽管Youtube页面上的视频上没有黑条 有没有办法简单地以正确的格式显示缩略图和视频 更新 我发现: 询问者想要移除黑色的顶部和底部栏。这里最好的答案是调整高度并通过手动校正“隐藏”黑条。下面的

我可以通过以下链接轻松获得Youtube图像缩略图:

但所有这些缩略图都是3:4格式(或相近的格式),即使视频本身是其他格式。然后在图片的顶部和底部可以看到一些黑色的水平条

我需要一个9:16格式的图像(这是我的视频格式),没有黑条。有可能收回吗

更新

看起来Youtube视频本身的顶部和底部都有黑条,尽管Youtube页面上的视频上没有黑条

有没有办法简单地以正确的格式显示缩略图和视频

更新

我发现:

询问者想要移除黑色的顶部和底部栏。这里最好的答案是调整高度并通过手动校正“隐藏”黑条。下面的一些评论也表明了这一点。
这是否意味着无法避免?

yt:name属性值为mqdefault的标记标识320x180(16:9)缩略图。此图像也没有时间戳,可以来自视频中的任何点

所以有一个图像可以用于每一个16:9格式的视频分辨率(至少我已经测试过了)。当然,这不是地球上最大的图像

如果尺寸是一个问题,并且您需要更大的尺寸,那么最好的选择就是选择一个始终以4:3的比例提供的选项,并使用CSS隐藏多余的尺寸。他们现在在整个站点上使用多种缩略图大小,包括
mqdefault.jpg


当所有尺寸都已知时,很容易从图像中隐藏多余的宽度和/或高度。隐藏黑条,留下16:9的结果。CSS是为您的享受而评论的。

YouTube提供的图像没有4:3比例的黑色条纹。要获得没有黑色条纹的16:9视频缩略图,请尝试以下方法之一:

http://img.youtube.com/vi/<insert-youtube-video-id-here>/mqdefault.jpg
http://img.youtube.com/vi/<insert-youtube-video-id-here>/maxresdefault.jpg
http://img.youtube.com/vi//mqdefault.jpg
http://img.youtube.com/vi//maxresdefault.jpg
第一个
mqdefault
是一个320x180像素的图像


第二个
maxresdefault
是1500x900像素的图像,因此需要调整大小才能用作缩略图。这是一个很好的图像,但并不总是可用。如果视频质量较低(我想低于720p,不太确定),则此“maxresdefault”将不可用。所以千万不要依赖它。

在网上搜索了一段时间来解决这个问题后,我什么也没想到,我想我已经尝试了所有的方法,但什么都没有解决我的问题。然后在我的逻辑驱动下,我将嵌入的youtube视频的iframe包装在一个div set overflow中:hidden;这个div,使它的高度比iframe的高度小2px(在我的视频中,底部有黑色边框)。 因此包装器div比iframe小,通过将其定位在视频上,可以隐藏不需要的黑色边框。 我认为这是迄今为止我所尝试过的最好的解决方案

在下面的示例中,尝试仅嵌入iframe,您将在底部看到小的黑色边框,当您将iframe包装在div中时,边框消失了,因为div与iframe重叠,并且它比视频小,并且它具有溢出:hidden,因此超出div维度的所有内容都被隐藏

<div id="video_cont" style="width: 560px;
                            height: 313px;
                            overflow: hidden;">


    <iframe id="the-video" class="extplayer" width="560" height="315" src="https://www.youtube.com/embed/EErx017kDHQ?&amp;autoplay=0&amp;rel=0&amp;fs=0&amp;showinfo=0&amp;controls=0&amp;hd=1&amp;wmode=transparent&amp;version=2;yt:quality=high;"   frameborder="0" allowfullscreen></iframe>

</div>

在我的例子中,边框的高度约为2px,因此我将wrapper div 2px的高度减小以隐藏边框,在您的场景中,如果边框位于视频顶部或侧面和/或具有不同的尺寸,您必须为包装器div设置不同的尺寸,并将其放置在合适的位置,使其与视频的边界重叠,并使用overflow:hidden;边界是隐藏的


希望这会有所帮助。

我能想到的解决方案之一是制作9:16格式的缩略图并单独上传。虽然这可能是一项不切实际的工作。是的,当然:),但对于用户添加视频来说,这不是最友好的方式。您能考虑调整图像大小以满足要求吗?一个单独的imagecache类的东西?@tuxnani:我不知道你说的imagecache是什么意思。。。但是图像不能仅仅调整大小。如果我这样做的话,那就需要裁剪了。@ste即使你提到了用户友好,你是在为多用户网站做些什么吗?博客网站?你能更具体地说你需要做什么吗?我可以想出一两种方法来做。谢谢。我开始意识到隐藏栏是一种方法。对于高度和宽度都灵活的响应站点,是否有解决方案?我也在寻找解决方案,@MortenHjort--你找到什么了吗?@Prefix:没有任何合适的解决方案。有很多黑客攻击,但没有完美的解决方案:(@MortenHjort bummer:(你最终使用了其中一个裁剪黑客来隐藏黑条吗?正如你提到的maxres并不总是可用的,它也不是
1500x900
,而是视频的最大分辨率(可能是1280x720、1920x1080或更多)…当我使用一个模仿png裁剪外观的自定义缩略图时,这就是我用来摆脱愚蠢的黑线的答案。它的日期是2013年,在Google anywhere上没有比这更新的东西了,但它很管用。