百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

闲鱼内容视频化展示方案(超全面)(闲鱼产品视频)

liuian 2025-05-08 02:45 72 浏览

背景

移动互联网是随着移动通信技术的迭代和发展的,每一次迭代都会给人们生活带来巨大的改变。
1G网络,让人 们用上了手机;
2G网络,让人们能够通过手机上网;
3G网络,促使移动互联网飞速发展;
4G网络,直播和短视频出现爆发式增长。
短视频的出现不仅是内容展示形式的变化,创作者通过剪辑和特效使内容更丰富、生动,给受众提供了更优质的用户体验。
闲鱼是C2C场景,普通用户发布视频宝贝比例不高。如何内容视频化,提升浏览体验,闲鱼给出了解决方案。
闲鱼不是短视频
将图片合成短视频,是我们最先想到的方案。思考后,发现其中存在一些问题:
o引导用户视频合成,会影响发布成功率
弱引导,起不到作用,达不到预期。强引导,会打断发布链路,影响发布成功率。
闲鱼之所以能够成为行业的No.1,是因为闲鱼有一个庞大的商品池,新发商品数量是闲鱼生态的基石。闲鱼一直提倡轻发布,小白用户可以在闲鱼上轻松发布商品。我们的目标是:把简单留给用户,把复杂交给自己。
o云端异步生成视频
用户商品发布成功后,在云端生成视频,然后给用户推一个Push消息,询问用户是否应用该视频。问题是,用户可能收不到Push消息,可能不采用生成的视频,白白浪费了服务资源。
o存量商品问题
因为无法解决存量商品问题,是我不采用合成视频的主要原因。闲鱼的新发商品对比整个商品池,占比毕竟很小。只处理新发商品,无法解决大量商品的问题。
图片合成视频有如上诸多问题。我们给出的方案是“基于动效模板的图片动态展示方案”。

Chaplin项目

电影是从无声电影开始的,无声电影以 Charlie Chaplin(查理·卓别林)最为代表。他不但推动了电影历史的发展,更代表了一个时代。希望通过Chaplin项目推动闲鱼整体内容视频化的发展。
Chaplin项目,启发源于视频编辑器。在视频编辑阶段,可以通过各种特效使内容更丰富、生动。我们将素材与特效进行分离,最终将整个编辑过程抽象成模板。展示时,再将不同的素材与模板进行合并,实现视频播放的效果。

演示

设计

Chaplin项目业务落地方案:

o模板创作
模板编辑器主要参考通用视频编辑器,为设计师提供一个可视化的创作工具。特效库是可扩展的,酷炫特效主要是开发同学通过编写OpenGL Shader实现的。因为OpenGL是标准库,所以可以实现编辑器和客户端的一致性。
资源管理平台主要依托于集团的纵横平台(素材管理中心),实现音乐库、特效库、模板库的管理。其中,模板支持特征打标和播放控制。因为模板是要下发到客户端的,所以必须有完整的线上发布流程,线上要与预发隔离。
o客户端
模板获取是增量同步的,需要实现本地模板库管理,以及Shader和素材资源管理。
模板推荐引擎基于业务场景,通过对商品和内容的理解,以及对图片主体和色域的分析,实现对用户的个性化推荐。并且通过疲劳度和曝光量配置,实现模板打散展示。
动态展示(播放),首现需要将素材与模板进行合成,合成后的播放源是基于时间线的非线性播放序列。播放过程是按时间线实时合成和渲染的。视觉的合成,双端都是基于OpenGL。iOS的音频合成是基于AVMutableAudioMix(AVFoundation);Android没有音频合成过程,是混音播放。

循环模板

在业务落地的过程中,播放素材的个数是不确定的,所以设计了循环模板。
循环模板的收益还是比较明显的:
(1)大大减少了模板文件个数,一样的视觉不需要设计多个模板;
(2)大大降低了模板文件大小,使模板文件下载更快。
设计之初,有2套循环模板方案:
(1)素材与模板合成时处理;
(2)让播放器支持循环配置。
考虑到子模块独立、纯粹性,降低模块耦合度,所以抽象了素材与模板的合成模块。
循环模板的设计是为了解决业务中的不确定性,所以设计上不但要考虑协议的扩展性,还需要对不确定性进行抽象:

o播放协议
o以图片开始;
o以图片结尾;
o两个图片之间必须有转场节点,转场时间可以为零。
o循环模板的头尾设计
o必须以图片节点开始;
o可以是图片结尾;
o可以是转场结尾。
o循环部分与非循环部分的定义
o所有节点支持once(只执行一次),第二次执行将跳过该节点;
o跳过节点后,如果出现相邻同类型节点,将再次跳过节点。
播放线程
整个播放过程还是比较复杂的,事件和数据会在不同线程之间传递。本来也不想搞这么多线程,可是如果不异步处理就会出现堵塞和卡顿问题。

o播放控制操作队列

播放器是强依赖状态机的,锁操作会有卡顿(Stop操作会释放线程等其它资源),所以选择了异步操作队列。
oGL渲染线程
因为是多轨播放,所以需要实时渲染合成,合成后再上屏。
o资源加载线程
资源加载是I/O操作,会比较耗时(特别是字体和大的图片)。图片是先通过资源加载线程加载到内存的,然后在GL渲染线程把图片转成纹理,再渲染。
oUI刷新线程
当前设置的刷新率是30FPS,也就是所有加载合成操作要在30ms内完成,否则会出现卡顿的现象。

多轨播放

多轨播放(也叫非线性播放),需要将多轨的内容实时合成并渲染上屏。
PS:加载资源或者合成慢了就会出现播放卡顿,所以做了资源预加载,纹理预处理等操作。

模板协议

OpenGL 顶点坐标范围是[-1.0,1.0],纹理坐标范围是[0.0,1.0]。为了开发方便做了坐标统一,协议中所有坐标范围均是[0.0,1.0],会在底层做转换。
所有特效均是云端实现。遵循shader节点协议,包括:vertexURL、fragmentURL、uniforms。其中
举例:
o素材(图片)
{
"name":"放大",
"type":"image",
"duration":2.0,
"shader":{
"vertexURL":"https://xianyu-chaplin-bucket.oss-cn-beijing.aliyuncs.com/ShaderV2/ImageEffect_Move2_V2/ImageEffect_Move2_V2.vert",
"fragmentURL":"https://xianyu-chaplin-bucket.oss-cn-beijing.aliyuncs.com/ShaderV2/ImageEffect_Move2_V2/ImageEffect_Move2_V2.frag",
"uniforms":{
"u_FirstScaleBegin":1.00,
"u_FirstScaleRange":0.04,
"u_FirstMoveBeginX":0.00,
"u_FirstMoveRangeX":0.00,
"u_FirstMoveBeginY":0.00,
"u_FirstMoveRangeY":0.00
}
}
}
o转场
{
"name":"溶解",
"type":"transition",
"duration":0.5,
"shader":{
"vertexURL":"https://xianyu-chaplin-bucket.oss-cn-beijing.aliyuncs.com/ShaderV2/TransitionEffect_Mix2_V2/TransitionEffect_Mix2_V2.vert",
"fragmentURL":"https://xianyu-chaplin-bucket.oss-cn-beijing.aliyuncs.com/ShaderV2/TransitionEffect_Mix2_V2/TransitionEffect_Mix2_V2.frag",
"uniforms":{
"u_FirstScaleBegin":1.04,
"u_FirstScaleRange":0.01,
"u_SecondScaleBegin":1.00,
"u_SecondScaleRange":0.01,
"u_FirstMoveBeginX":0.00,
"u_FirstMoveRangeX":0.00,
"u_FirstMoveBeginY":0.00,
"u_FirstMoveRangeY":0.00,
"u_SecondMoveBeginX":0.00,
"u_SecondMoveRangeX":0.00,
"u_SecondMoveBeginY":0.00,
"u_SecondMoveRangeY":0.00
}
}
}
o贴纸
"tracks":[
{
"type":"ShaderTrack",
"list":[
{
"type":"PopImage",
"position":0,
"duration":3600,
"data":{

},
"shader":{
"vertexURL":"https://xianyu-chaplin-bucket.oss-cn-beijing.aliyuncs.com/ShaderV3/PopImage/PopImageV3.vert",
"fragmentURL":"https://xianyu-chaplin-bucket.oss-cn-beijing.aliyuncs.com/ShaderV3/PopImage/PopImageV3.frag",
"vertexCoordinatesName":"a_Position",
"vertexCoordinatesValue":{
"x":0,
"y":0,
"width":1,
"height":1,
"rect":{
"top":"8dp",
"right":"8dp",
"width":"60dp",
"height":"24dp"
}
},
"images":[
{
"textureCoordinatesName":"a_FirstTexCoord",
"textureCoordinatesValue":{
"x":0,
"y":0,
"width":1,
"height":1
},
"textureName":"u_FirstTexture",
"imageURL":"https://gw.alicdn.com/tfs/TB1QOt3nIVl614jSZKPXXaGjpXa-120-48.png"
}
],
"uniforms":{
"u_MoveX":0,
"u_MoveY":0,
"u_VertexScaleBegin":1,
"u_VertexScaleRange":0
}
}
}

]
}
]
总结与展望
随着短视频的流行,如何推动内容视频化,闲鱼给出了新的解决方案。本文也说明了为什么不采用图片合成视频的原因。具体介绍了如何通过动效模板实现图片内容的播放展示,打破了图片合成视频的局限性。
虽然方案已经上线运行,但还有些想法没有实现。
o智能创建模板
单一的模板会让用户产生疲劳,所以模板生产要有持续性。当前模板生产依赖设计师创作、开发写特效,成本较高。业界也有一些智能创作方案,后面会考虑如何结合。
o智能识别与特效的结合
实时识别主体区域,并针对主体区域做特效处理。比如当前有一个逐渐放大的转场特效,理想应该是以主体区域为中心放大,而不是图片中心点放大。当前素材是顺序播放的,可以加入智能排序。
o场景扩展
当前方案还主要应用在展示场景,后面会考虑应用到UGC生产场景。


相关推荐

驱动网卡(怎么从新驱动网卡)
驱动网卡(怎么从新驱动网卡)

网卡一般是指为电脑主机提供有线无线网络功能的适配器。而网卡驱动指的就是电脑连接识别这些网卡型号的桥梁。网卡只有打上了网卡驱动才能正常使用。并不是说所有的网卡一插到电脑上面就能进行数据传输了,他都需要里面芯片组的驱动文件才能支持他进行数据传输...

2026-01-30 00:37 liuian

win10更新助手装系统(微软win10更新助手)

1、点击首页“系统升级”的按钮,给出弹框,告诉用户需要上传IMEI码才能使用升级服务。同时给出同意和取消按钮。华为手机助手2、点击同意,则进入到“系统升级”功能华为手机助手华为手机助手3、在检测界面,...

windows11专业版密钥最新(windows11专业版激活码永久)

 Windows11专业版的正版密钥,我们是对windows的激活所必备的工具。该密钥我们可以通过微软商城或者通过计算机的硬件供应商去购买获得。获得了windows11专业版的正版密钥后,我...

手机删过的软件恢复(手机删除过的软件怎么恢复)
手机删过的软件恢复(手机删除过的软件怎么恢复)

操作步骤:1、首先,我们需要先打开手机。然后在许多图标中找到带有[文件管理]文本的图标,然后单击“文件管理”进入页面。2、进入页面后,我们将在顶部看到一行文本:手机,最新信息,文档,视频,图片,音乐,收藏,最后是我们正在寻找的[更多],单击...

2026-01-29 23:55 liuian

一键ghost手动备份系统步骤(一键ghost 备份)

  步骤1、首先把装有一键GHOST装系统的U盘插在电脑上,然后打开电脑马上按F2或DEL键入BIOS界面,然后就选择BOOT打USDHDD模式选择好,然后按F10键保存,电脑就会马上重启。  步骤...

怎么创建局域网(怎么创建局域网打游戏)

  1、购买路由器一台。进入路由器把dhcp功能打开  2、购买一台交换机。从路由器lan端口拉出一条网线查到交换机的任意一个端口上。  3、两台以上电脑。从交换机任意端口拉出网线插到电脑上(电脑设置...

精灵驱动器官方下载(精灵驱动手机版下载)

是的。驱动精灵是一款集驱动管理和硬件检测于一体的、专业级的驱动管理和维护工具。驱动精灵为用户提供驱动备份、恢复、安装、删除、在线更新等实用功能。1、全新驱动精灵2012引擎,大幅提升硬件和驱动辨识能力...

一键还原系统步骤(一键还原系统有哪些)

1、首先需要下载安装一下Windows一键还原程序,在安装程序窗口中,点击“下一步”,弹出“用户许可协议”窗口,选择“我同意该许可协议的条款”,并点击“下一步”。  2、在弹出的“准备安装”窗口中,可...

电脑加速器哪个好(电脑加速器哪款好)

我认为pp加速器最好用,飞速土豆太懒,急速酷六根本不工作。pp加速器什么网页都加速,太任劳任怨了!以上是个人观点,具体性能请自己试。ps:我家电脑性能很好。迅游加速盒子是可以加速电脑的。因为有过之...

任何u盘都可以做启动盘吗(u盘必须做成启动盘才能装系统吗)

是的,需要注意,U盘的大小要在4G以上,最好是8G以上,因为启动盘里面需要装系统,内存小的话,不能用来安装系统。内存卡或者U盘或者移动硬盘都可以用来做启动盘安装系统。普通的U盘就可以,不过最好U盘...

u盘怎么恢复文件(u盘文件恢复的方法)

开360安全卫士,点击上面的“功能大全”。点击文件恢复然后点击“数据”下的“文件恢复”功能。选择驱动接着选择需要恢复的驱动,选择接入的U盘。点击开始扫描选好就点击中间的“开始扫描”,开始扫描U盘数据。...

系统虚拟内存太低怎么办(系统虚拟内存占用过高什么原因)

1.检查系统虚拟内存使用情况,如果发现有大量的空闲内存,可以尝试释放一些不必要的进程,以释放内存空间。2.如果系统虚拟内存使用率较高,可以尝试增加系统虚拟内存的大小,以便更多的应用程序可以使用更多...

剪贴板权限设置方法(剪贴板访问权限)
剪贴板权限设置方法(剪贴板访问权限)

1、首先打开iphone手机,触碰并按住单词或图像直到显示选择选项。2、其次,然后选取“拷贝”或“剪贴板”。3、勾选需要的“权限”,最后选择开启,即可完成苹果剪贴板权限设置。仅参考1.打开苹果手机设置按钮,点击【通用】。2.点击【键盘】,再...

2026-01-29 21:37 liuian

平板系统重装大师(平板重装win系统)

如果你的平板开不了机,但可以连接上电脑,那就能好办,楼主下载安装个平板刷机王到你的个人电脑上,然后连接你的平板,平板刷机王会自动识别你的平板,平板刷机王上有你平板的我刷机包,楼主点击下载一个,下载完成...

联想官网售后服务网点(联想官网售后服务热线)

联想3c服务中心是联想旗下的官方售后,是基于互联网O2O模式开发的全新服务平台。可以为终端用户提供多品牌手机、电脑以及其他3C类产品的维修、保养和保险服务。根据客户需求层次,联想服务针对个人及家庭客户...