以服务于中国广大创业者为己任,立志于做最好的创业网站。

标签云创业博客联系我们

导航菜单

手机怎么制作竖屏满屏视频,横屏视频变竖屏满屏免费app

  

  本文由爱奇艺刘小慧在LiveVideoStackCon 2020撰写   

  

  整理了线上峰会的演讲内容。内容主要讲了通过AI智能视频主体识别能力和字幕识别能力,在竖屏、全屏的手机上观看横向视频的新体验,为用户提供了沉浸视界的新体验。   

  

  文本/刘小慧   

  

  组织/直播视频堆栈   

  

     

  

  大家好,我是爱奇艺的刘小慧。这次分享的话题是《AI加持的竖屏沉浸播放新体验》。我将从三个方面介绍什么是竖屏沉浸式播放,为什么要这样做,我们是怎么做的。   

  

  #什么是竖屏沉浸播放?   

  

     

  

  竖屏沉浸播放,即我们在竖屏握持手机时,期望显示内容全屏显示,但当视频为横版视频时,如果按照常规等比例显示,就会出现上下均为黑边的情况。但是,当我们把手机握在最舒适的垂直版本时,我们需要一种方式来显示屏幕最有趣的部分,整个屏幕内容都可以在风景视图中显示,这样在播放时,纵横转换就会很流畅,不会被打断。这是我们的终极诉求。水平视图中如图所示,视频中的中心人物就是我们想要展示的,在旋转过程中仍然可以聚焦在主要人物身上,同时整个内容可以在风景视图中展示。   

  

     

  

  最终的诉求是可以垂直观看水平视频,同时可以无缝切换垂直和水平视频。   

  

  我们在爱奇艺APP上的实现效果如图所示。打开视频后,将显示沉浸式播放按钮。点击进入后,将进入全屏播放的竖屏状态。在转屏过程中,会显示整个视频画面,然后转回竖屏状态,聚焦当前画面的人物位置和焦点位置。这就是我们要做的展示竖屏沉浸式玩法。   

  

  #为什么竖屏沉浸播放?   

  

     

  

  我们为什么要这么做?因为在视频发展的历程中,从最早的以横向视频为主的长视频,到近年来发展迅速的短视频,尤其是全屏播放的纵向视频,再到后来出现了长视频和短视频的结合。在这种形式下,横向视频和纵向视频的结合尤为重要。爱奇艺也在拓展纵横视频播放,那么如何在竖屏播放现有的存量视频,应该向内容提供商提供什么样的视频,都是需要解决的问题。   

  

     

  

  所以从图中我们可以看到横轴是时间轴,纵轴是长短视频的分类。前期大家都接受长视频。近几年短视频发展非常迅速,最近一两年都在关注长短视频的发展边界。   

  

     

  

  目前常见的播放形式是长短视频结合。同时,对于内容创作者来说,提供什么样的视频?能不能提供一个水平视频,屏幕垂直时也可以播放?在短视频场景下也能完美播放,这对我们提出了更高的要求。竖屏沉浸式播放的最终目的就是解决这两个问题,让长视频、短视频、竖屏和横屏有机地一起播放,实现流畅切换。对于内容创作者来说,只需要创建一个横向视频。   

  

  #如何实现竖屏沉浸播放   

  

     

  

  下面,我将从以上几个方面介绍我们如何实现竖屏沉浸播放。首先介绍它的基本架构图,然后介绍我们在云和终端做了什么。   

  

     

  

  云端与终端的交互中有一个重要内容——AI焦点文件,描述了当前视频每一帧的焦点位置,还包含字幕等其他信息。云中主要有几个工作点,如场景分割、目标检测、显著性检测、人脸检测等。他们主要做内容分析,分析当前画面的焦点位置。字幕检测和字幕识别主要是为了改善画面。   

剪裁之后能够展示完整字幕,然后每个画面焦点位置计算完成之后会做一个剪裁优化,最后一个稳像平滑,以此规避相邻画面之间中心点微小的变化带来的画面抖动。

  

在终端主要是根据当前陀螺仪的姿态信息、当前画面的焦点区域信息、屏幕大小计算应该呈现画面中的哪块区域。随后就是图像的渲染,为支持用户可以手动改变聚焦位置,我们也做了一个缩略图渲染,以支持用户的手动调节。还有一个扩展功能就是字幕的擦除与渲染,由于字幕在局部区渲染的时候会被截断,需要把完整的字幕在竖屏状态下再渲染出来。

  

  

在云端我主要针对五个点做介绍,分别是:场景分割、内容分析、聚焦中心构建、字幕检测和识别、竞品对比。

  

  

场景分割的目的为了在减少计算耗时的同时提高准确性。因为在视频画面中场景是多个镜头构建在一起的,多数情况下,单一的镜头里图像的变化比较小,比如主人公说话只有唇部或者手部较小的变化。因此在单一镜头下,我们可以利用抽帧分析,不用计算每一帧,比如间隔若干帧来分析画面内容,这样可以显著减少计算耗时。如图是截取的一段两分钟视频,分成若干镜头,会发现每一个处理的时间也就几秒钟甚至更少,但是可以发现同一镜头中的画面变化是非常小的。

  

  

在内容分析这块主要利用的是几个点。运用的当前的深度学习,AI的一些算法去做的一些检测或者识别,最重要的就是目标检测、显著性检测、说话人检测、最后是人脸检测,每个步骤都配有一个权重来协助分析最终的画面点。下面我再对四个点进行展开的介绍。

  

  

目标检测,我们现在运用的算法对常见的80类物体敏感,检测当前画面中的物体之后,会做一个目标筛选,我们也对此制定了规则,如当前目标的物体位置信息是否居中;物体尺寸大小,我们会认为尺寸越大吸引人眼球的可能性就越大,这也是符合导演在拍摄这个镜头的创作意图;最后一个就是物体置信度,它最可能是一个什么样的物体,比如是人、动物、桌椅,但影视上我们当然对人物的赋予的权重会更高一点。

  

  

显著性检测。在拍摄过程中,主角位置或者说最吸引人眼的部分一定会出现在聚焦点上,这也是我们视频播放的时候期望的中心点。右上图是影视画面,可以看到只有主体人物在画面的中间,我们通过显著性检测,会发现人脸部分是整个画面最吸引人眼的部分,利用这种检测,亮度越高的区域就是人眼越感兴趣的地方,也是应该在竖屏状况下被显示的部分。

  

  

说话人检测主要是为了区分如果当前画面有两个人物且权重差不多,或者在交替讲话的时候,如何做区分?用到识别的方法,主要运用声纹特征和人脸特征做一个构建,声音辅助比对当前谁在说话,以此来调整权重。

  

  

人脸检测,是为了辅助分析当前图像中如果人脸占比较小,定位Y轴信息,集中想突出的人脸部分,准确定位人脸的中心点。图中做例的两张图,人脸检测时候可以准确的检测前景人物的面部位置,同时也做了一个排序。右图可以看到左边人脸位置与正脸位置都是被检测到的,同时左边人物的权重是较高的,但我们会在后面看到真正聚焦的位置点是在谁的身上。

  

  

检测到每一帧或者每一场景的焦点位置之后,我们会做一个聚焦中心的构建,会用到几个策略。稳像策略,就是平滑相邻帧微小的位移;第二个点就是连续变化,一直在平移的这种做了一个拟合,拟合的目的是为了减小AI焦点文件中的数据总量。

  

稳像策略我们可以看到上图右侧结果,多数场景下它都是平的线段,代表了当前人物的中心点是没有变化的,虽然可能有说话或者其他手部动作的,但不会影响整个人物中心的变化。如果说有连续的尖峰或者短的尖峰,结果就是画面出现频繁变化,就会出现抖动的问题。我们也举了一个例子,比如在箭头所指的区域是一个斜线,其中描述的拟合点,代表是逐步平移的中心点。

  

  

字幕识别的目的是为了展示完整的字幕,因为在竖屏沉浸播放的时候,字幕会被截断。字幕识别首先需要找到原始整个字幕的位置,文本的剧情内容和持续的时长,这里也会针对异常的数据进行剔除,异常数据来源主要是图像内容的广告牌或者其他内容中被误检的文字,根据字幕出现的位置点和时长的规则关系会剔除一部分噪声数据,比如字幕时长大于300ms或者底部居中,不符合的数据就会被剔除掉

  

  

在今年2月份,谷歌也开展了类似的工作,推出了一个叫Auto

  

Flip的产品,我们用他们的算法做了一个检测的对比,上图为某一视频跑出的数据结果。我们可以发现在起始的部分蓝色的线在剧烈的抖动,说明镜头是在一直变化的,而爱奇艺的分析结果可以发现是比较平滑的。在其他的位置也可以看到很多不同的差异,这是由于两套算法对不同识别结果的分配权重不同而产生的结果差异。我们可以看到谷歌给出的样例小视频与我们爱奇艺处理后的对比分析结果。

  

左边1/2是原始视频,右边1/2是两份结果,结果中左侧是爱奇艺的沉浸播放结果,右侧是谷歌 Auto

  

Flip结果。我们会发现很有意思的点,在有人物的地方都可以被正确的检测,尤其是单人的情况下,二者比较一致。但是在有些场景,比如双人场景下,爱奇艺会将焦点人物完整的展示出来,而谷歌的结果就会有一些偏差。并且在一些场面下,爱奇艺能够准确地识别到说话的人,而谷歌却选择聚焦距离镜头较近的两个人。

  

呈现的结果与算法的权重分配有一定关系,同时具有一定的主观性,所以我们不太容易评判谁优谁劣,但总体来看爱奇艺的结果还是比较符合我们的预期和人们的观看习惯的。

  

  

接下来我们介绍一下终端的相关内容。终端做的事情包括:窗口尺寸自适应、自动与手动的双模式切换、字幕回写、横屏竖屏自由的旋转切换。

  

  

窗口尺寸自适应有两个点需要介绍,第一是相同的影片相同的窗口尺寸,但分辨率不同该如何展示;第二个点是相同的影片分辨率、但不同的手机窗口尺寸该如何展示。

  

  

以当前视频为例,它的分辨率是一定的,我们来看一下两个不同的手机是如何展示的。左边的手机比例是3:4,我们会发现人物顶部的帽子与底部衣服领口是不可见的,而右边是9:16的常见手机屏幕比例,它从纵轴上截取了当前视频的整个画面,保证了视频的纵横比。

  

  

上图展现的是同样的手机尺寸,针对不同的视频分辨率是如何处理的。设备比例都是9:16,从像素高度上是比左侧视频要高要大的,我们可以发现在截取视频位置之后做一个缩放,保证了视频的纵横比,让画面内容在窗口上不出现拉伸。

  

如果屏幕尺寸比视频尺寸要小一些,在原图之间以聚焦中心点为中心,我们会发现在帽子和衣服是被截掉了一部分的。总体的原则是保证窗口的纵横比在原始图片中,以聚焦中心点为中心截取一块最大的区域,同时保证做到画面内容不拉伸。

  

  

以上是同一个视频在不同的窗口尺寸所作的对比,其中窗口的宽度是固定的,高度按照不同比例在原视频中做的截取。放大的窗口来源于从原视频中截取的一个9:16的小图片,渲染到一个9:16的大窗口,最终呈现的就是这样的效果。这是一个两分钟视频的结果对比,总结来看,不同的手机尺寸的效果都是可接受的,在观感上并不违和,都能找到画面的主体部分和聚焦中心,也比较契合影片中镜头的焦点区域。

  

  

在APP真正落地的时候,一定会出现的一种状况是,如果按照当前AI算法计算的焦点不一定是当前用户感兴趣的人物时,用户可以用手势在屏幕滑动,将聚焦位置切换成画面中的其他人物。

  

比如图中展示了我们在实践的过程中增加了一个缩略图,这个缩略图描述了当前聚焦人物,滑动时竖屏呈现结果会进行转换,即支持自动调焦又支持手动调焦。

  

  

为了实现完整字幕的显示,我们在被截断的字幕做了一个字幕擦除,然后再将完整的字幕回写出来。图中是一个被截断的图片,字幕的区域被放大擦除,我们将完整的原始字幕回写,同时对字体大小也进行了调整。

  

  

在横屏竖屏的切换部分,竖屏时,我们会展示框内内容;当旋转屏幕时,我们会依照画面中心点旋转作为画面的截取。当然,依据屏幕尺寸的大小,我们还会做一个放大处理,这样一直转到横屏时,整个画面的内容都可以被展示出来了。

  

总结以上内容,竖屏沉浸播放让我们的AI能力在端上做一个落地应用;同时在长短视频、横竖播放有了一个有机的结合;在内容创作的时候,创作者不再需要提供两版视频(横、竖版)就可以在爱奇艺获得一个很好的播放效果。