腾讯视频云剪辑技术实现

1 背景

互联网视频行业两大竞争方向,丰富的内容IP与前沿技术,对于不同视频内容越多,观看人数相应会越多。但对于同一内容,用户有多个选择时,理当选择体验最好的观看,排除习惯因素。所以不断对技术优化和创新是维持用户粘性和持续增加用户数量的重要环节,也是公司节省成本和开支有效方法。围绕用户体验和成本优化,腾讯视频推出了云剪辑系统。

2 云剪辑

视频点播业务常规上线转码流程简述:

(1)、采集卫星信号TS流

(2)、离线非编软件剪辑广告、加字幕

(3)、转码各种清晰度视频

(4)、上线各种清晰度视频

以上整个流程在后期处理花费大量时间,造成节目延迟上线,给用户带来不好体验。

2.1 云剪辑思想

云剪辑是一种用于在线编辑直播流一种实现方法,卫星信号接入直播编码器输出两路在线直播流,一路低码,一路高码,两路具有相同PTS时间。低码用于在线剪辑,高码用于分布式后台转码。在线剪辑比常规剪辑流程更快,因为剪辑操作在线上完成,而不是把直播节目采集完成线下编辑,当节目直播结束,整个节目也被剪辑完,最后在线剪辑将输出一个用于记录打点信息(广告的入点和出点)的节目文件,分布式后台转码通过这个文件记录的打点信息切出广告。

2.2 云剪辑架构

2.3 云剪辑优化思想和方法

在线剪辑虽然线下编辑快,但线上剪辑技术上更加复杂,因为操作本地文件比操作网络流文件更容易,如Seek响应延迟会很大、网络流没有完整索引文件,切割视频将不精确。所以在这里给出解决思路和想法,欢迎各位大牛指正。

2.3.1 模糊 seek 思想

用户在时间轴拖动游标时,实际不需要精确操作,开始只要知道广告出现的大概位置,基于这样的原理,可以对云剪辑seek操作做优化,每次传输和解码的数据只需要关键帧数据即可,大大提高了云剪辑响应的速度。

OutFramekey= F(pos)

pos是当前用户时间轴的位置,F用于把当前用户位置最近关键帧解码出来。

2.4 帧精确切割

在线剪辑预览是基于HLS技术实现,HLS每一个分片都是一个TS文件,TS中存放时码的字段只有33位,每秒是90khz单位,该字段每26小时复位一次.还有时码跳变情况。

为什么要保证时码严格连续唯一单调递增呢?

假如播放某个网络流,每一帧都有一个PTS,如果中间时码复位和跳变,播放就会异常或乱序。最常见直播过程出现半个小时断流,那么用户预览会半个小时黑屏,最好能够自动跳过黑屏部分,继续播放黑屏后面有效画面。seek操作也是同样的原理,如果用户显示时间轴上某个位置的帧,只有在连续唯一单调递增的时码里查找,才能够找到正确的帧。

帧精确的关键所在是为每一帧设置一个严格连续单调递增的唯一时码。那如何才能实现单调递增的唯一时码呢?

m3u8 文件中存储每一个 ts 分片都有一个近似时长字段

“#EXT-X-TARGETDURATION”。那么可以给出每帧的 PTS 计算公式

分片 PTS 计算公式:

=

为第n片的近似时长,分片的实际时长

,分片第一帧的

,分片第i帧的

,片内每帧PTS通过视频帧率和帧号计算得到。

每帧PTS的计算公式:

=

+

经过计算后,

<=

<

,并严格唯一单调递增,即

从时间线精确切除某广告位置方法如下:

(1)、用户先通过模糊seek定位广告所在分片n.

(2)、通过左移右移一帧寻找广告开始结束位置。

(3)、左移一帧查找当前

(4)、右移一帧查找当前

(5)、直到查找到广告开始结束位置

(6)、获取广告开始结束位置,分片名+分片内广告真正开始结束时间。

2.5 所见即所得

在直播体育赛事节目时,视频背景会出现广告画面,在没有授权的情况,需要擦除广告。对于这些功能,通过线下非编处理,费时费力。所以云剪辑集成了擦除广告、加标、去黑边等功能,显著提高节目的编辑效率。

使用NPAPI插件技术,响应鼠标拖动消息,每次数据移动消息,显示最新操作效果,通过双缓冲方式渲染,避免闪烁,即拖即现。

3 云剪辑未来方向

随着短视频流行,视频行业互联网公司都推出了视频剪辑软件,比如搜狐云剪辑,360快剪辑,爱奇艺在线非编等,腾讯视频云剪辑主要用于剪辑直播节目,点播节目还无法剪辑。对比各家剪辑软件,功能都相对简单,与广电非编软件有一定差距,如国内的索贝和大洋非编软件。

未来可把云剪辑打造成一款通用剪辑软件,即可用于内部编辑,也可用于外部用户。剪辑软件可发挥的空间还很大,可有各种各样的玩法,比如字幕和酷炫的特效,在线素材库,提供配音、配图等,类似广电行业图文包装系统。系统。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

王颖琦的专栏

1 篇文章2 人订阅

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程序人生

Service performance 101

最近一个月,我和一小撮不专业的美国银行从业人员就「我是不是清白地像于谦那样」(写石灰吟的于谦,不是有三大爱好的那位)反复拉锯,又赶上一大波功能上线和融资相关的事...

33114
来自专栏张戈的专栏

分享一款12306抢票神器:12306Bypass分流抢票

一直都用浏览器抢票,那个验证码自动识别的准确率和效率真心不敢恭维! 实在没办法,这几天只能抢临客了,想起了之前听同事说过在某宝可以买到什么抢票神器,于是去某宝搜...

54211
来自专栏企鹅号快讯

2018的微信,这些不一样

时光飞逝,转眼间已经步入了2018年。可就在17年的最后时刻,微信更新的小程序“跳一跳”犹如一个深水炸弹,引爆了老少全民。 微信这次更新主要有三大方面: 1. ...

2105
来自专栏镁客网

要什么拍立得!Prynt搞定!

1403
来自专栏Jerry的SAP技术分享

金庸和古龙,Netweaver和微服务,以及SAP Hybris Revenue Cloud

这周Jerry在长沙客户现场待了几天,感谢易总和彩亮的款待。终于有机会和关注这个公众号的一些CRM顾问们进行线下互动,感觉很不错。得知公众号里某些文章帮助顾问们...

1573
来自专栏智能计算时代

SCADA系列 系统评估

介绍 监控和数据采集(SCADA)是一种允许主设备操作员监视和控制分布在各个远程站点之间的进程的系统。 正确设计的SCADA系统通过消除维修人员访问每个站点进行...

3295
来自专栏吉浦迅科技

在Jetson TX开发套件上使用QT Creator

在视频中,Jetsonhacks演示了如何在NVIDIA Jetson TX开发工具包中使用QTCreator IDE来cmake一个应用,他用libreals...

842
来自专栏文渊之博

大数据脱敏

大数据平台通过将所有数据整合起来,充分分析与挖掘数据的内在价值,为业务部门提供数据平台,数据产品与数据服务。大数据平台接入的数据中可能包括很多用户的隐私和敏感信...

2384
来自专栏阮一峰的网络日志

关于战略问题的通信之六

《Joel谈软件》一书的翻译,我好久没提了。 合同规定今年1月交稿。假定我没有违约的话,此书现在应该上市了。可是,实际上......就算到下个月,我恐怕都翻译不...

2837
来自专栏程序员宝库

5月编程语言榜:C再度暴涨,Scala成功上位!JMC宣布开源;马化腾回应《腾讯没有梦想》是P的;Riot.js 3.9.5发布

TIOBE 刚刚发布了 5 月编程语言排行榜。Scala 经过长时间的沉淀,本月终于进入了 TIOBE 榜单的前 20 名。Scala 是一种 JVM 上运行的...

1333

扫码关注云+社区