前端工程师后端转型实录

LiveVideoStack 2020年7月30日

采访讲师

姜雨晴,MediaTrack音视频研发负责人。毕业于Dalhousie University,曾任字节跳动高级前端开发工程师,熊猫直播音视频研发负责人, 猫耳FM前端开发工程师。目前负责MediaTrack多端播放器研发、转码中心技术架构和研发、音视频安全和音视频质量保障。

1.png


LiveVideoStack:请您介绍一下自己以及您目前的工作。
姜雨晴:我目前就职于MediaTrack,为视频制作者提供协作工具,主要负责MediaTrack音视频相关的后端服务、前端播放器研发。



LiveVideoStack:您近期最关注的技术是什么?
姜雨晴:最近比较关注专业领域的视频制作,和专业制作者的协作模式。最近几年短视频兴起,短视频制作也从原有的UGC制作,转化为PGC制作。

长视频领域则一向以专业制作为核心,这使得专业的视频制作成为视频市场的中坚力量。而视频制作的理念也从原本的线下合作慢慢转为线上,产生了各类融媒体产品。

在视频制作过程中,视频制作者往往难以高效地沟通协作,这也成为影响制作进度的一个重要因素。而为专业制作者提供的线上协作工具,现在还处于比较初级的阶段。我认为在今后的几年内,这一领域会有比较大的发展。



LiveVideoStack:加入MediaTrack与此前的工作有什么不同的体验
姜雨晴:此前无论是在熊猫直播或是字节跳动,面对的主要服务对象都是C端用户。他们对于视频的理解和视频控制精准度的要求并不是很高,视频播放和控制的主要评价标准仅仅停留在卡顿、首开时间、清晰度这些层面。

而现在的用户大多是专业视频制作者,他们对于视频本身的理解比较深,会要求控制的精准度达到帧的级别,转码流的颜色还原度要求也比较高。一些诸如视频比对、多视频时间轴控制也是比较通用的需求。不仅要保证播放视频的基础指标,还需要保证播控精准度,转码流的还原度,和一些不常见的视频的支持程度。这些方面会有比较大的挑战。



2.png



LiveVideoStack:全球疫情下,您对音视频技术有哪些新的理解;MediaTrack在这期间历经了怎样的发展和变化?
姜雨晴:MediaTrack这个项目从19年3月份提出我就一直比较看好。因为从之前在熊猫接触的主播和PGC节目来看,真正吸引C端用户的视频节目往往并不是UGC自然产生,而是有意识的在内容和编排上花了比较长的时间准备而来。而且这种UGC到PGC的转变,在未来的一段时间内仍会持续。

但是当时给PGC节目创作者的协作产品非常少,这也使得PGC作品产量非常低,进一步造成了C端用户对优质视频需求的一个很大的缺口。

今年年初,随着疫情的到来,C端用户对娱乐产品(包括点播视频、直播视频、游戏、小说等等创作型领域)的需求越发高涨,视频制作这个领域线下的协作模式也逐渐无法支持团队创作,这个缺口就更为明显。

疫情以前,视频制作者主要是在线下集中制作;疫情之后,视频创作者则主要是使用会议软件进行同步协作。但在视频创作的具体场景下,一般的会议软件很难满足视频创作的远程协作需求,这使得视频创作的远程协作需求进一步放大。疫情期间,MediaTrack也在探索更高效的视频创作协作模式,让线上协作更趋近于传统的线下协作,提高专业视频制作者的生产效率。



LiveVideoStack:您职业生涯中所参与的最难忘的项目是什么?
姜雨晴:其实难忘的项目挺多的。比如17年在大会上讲过的熊猫直播的H5播放器以及后来在字节负责的西瓜播放器,又比如熊猫直播末期一系列的降成本项目:窄带高清、H265Web端解码播放、P2P等。

我觉得难点往往不在于项目的结构设计,而在于细节实现。项目的结构设计会随着经验和知识的增加有新的认知,也会趋于完善。但实现细节上的难点,有时确实比较难。

比如前些时候,在开发MediaTrack的标记功能的时,最初忽略了视频的starttime 转码流和原视频的starttime经常出现不一致的状况,这就造成了标注的时间点误差。这时,我将转码流和原视频的starttime纳入到时间点计算中,发现误差依然存在。

联系到之前做H5播放器的一些经验,在实际播放过程中,为了减少首屏时间,视频的首个PTS通常会和音频首个PTS取一个最小值,然后每一帧做PTS矫正。此时在用户界面上的starttime应该是矫正之后的,又经历了一次修改之后,时间戳才趋于准确。当然,这是帧率固定的情况下。

有些用户上传的视频资源并非从工作栈中获取的固定帧率视频,比如从直播视频中截取。这些视频经历了第三方转码后,很多情况下就是非固定帧率,使用FPS计算得出的帧的时间戳并不准确。这时,需要记录实际的帧的时间戳进行换算。而用户的视频源文件和MediaTrack的转码流的帧情况也存在着差异,需要分别换算准确的帧数,在标记时进行显示。



3.png


LiveVideoStack:近几年您遇到的最大的困难是什么,以及您是如何坚持下来的?
姜雨晴:应该是身体原因吧,由于常年高强度的对比视频的一些细节,造成几次角膜炎症,现在角膜有损伤。其实长时间做音视频类的开发工作挺困难的,尤其是端的音视频展现。不过还是比较喜欢这个领域的开发,所以现在会接手不少后端开发。塞翁失马,真正开始后端开发的时候,会发现之前不少前端播放器开发时候困扰的问题,在开发后端时,得到了解答。



LiveVideoStack:在您的技术进阶之路上,给您启发最大的是什么?
姜雨晴:应该是在熊猫直播的研发经历吧。在到熊猫之前,其实并不是前端工程师,虽然在猫耳的时候也负责前端的播放器编写,主要业务还在小型网站的整站建设上。那时候比较想做“用户看得见的东西”。

真正到了熊猫开始专门搞前端开发之后,期初也就是学习JS的一些语言特性,前端的设计模式等等。当时的领导对于前端项目要求非常高,每一个细节都会要求,小到一像素的对齐,大到每个模块的内存占用、渲染效率等等。不仅是实现,还需要考虑用户和主播浏览页面时的电脑运行状态。

例如主播需要打游戏、推流,那么弹幕渲染就不能占用太多的GPU性能,否则会影响主播的游戏渲染。这个时候才发现,“用户看到的东西”仅仅停留于表层,“用户觉得好用”则需要我具有更多的知识储备,并且真正花时间去推敲代码,每行代码每个细节都可能对最终的体验产生影响。在这之后,我才开始当一个”真正“的程序员,深究代码背后的东西。




如果此时此刻您可以做任何事、可以成为任何人,您最想做什么、最想成为什么样的人?


“其实这个问题自己也想过很多次,但是答案其实一直都是,我最想成为的还是现在的自己。大约14、15年的时候,在校期间曾经很想成为专业的内容创作者,学习了不少视频制作的专业软件,专业知识。这几年在平台,在MediaTrack接触了大量的内容创作者之后发现,他们每个人都有很多奇思妙想,但是真正能表达出来,展现给观众,且观众买账,又是另外一回事儿。


从在熊猫直播、字节跳动优化视频播放,到现在在MediaTrack开发生产力工具,其实都是在助力视频创作者做出更有价值的内容。如果当初真的成为了职业的内容创作者,也只能是表达我一个创作者脑中的想法,如今却可以帮助更多的创作者表达他们的思想。我认为是比成为内容创作者更有意义的事。所以对于自己的现状还是很满意的。



LiveVideoStack:能透露一下您在这次LiveVideoStackCon会带来哪些独家内容吗?
姜雨晴:十月份的LiveVideoStackCon我会带来MediaTrack开发中的一些细节。首先是非标准视频的处理,我们很多用户的待发布成片实际是会有单路视频、多视频Stream多音频stream的内容,本次会介绍对于这部分视频的前后端处理。

其次,我们在音视频控制的精准度上做了比较多的优化,这次大会也会着重讲这部分。第三,由于视频处于生产制作环节,对于视频防“跑版”的需求比较多,这次大会稍微介绍一下视频安全的内容。最后,疫情期间MediaTrack对更高效的视频协作做了很多探索,本次大会也会把新的协作形式的开发进行简要说明。



LiveVideoStack:您眼中当前国内的视频生产环境是什么样的?
姜雨晴:目前国内专业的视频创作团队还在使用比较传统的创作方式。新媒体的兴起,给这些生产者带来了一些新的思路,却没有把他们从传统的制作方式中带出来、拥抱互联网。新媒体的兴起给了很多UGC用户舞台创作视频,甚至有些视频不用专业的工作栈就可以制作出来。

过去的几年内,我们在很多新媒体、短视频平台上看到了大量这样的作品。但随着专业制作团队的引入,受欢迎的作品逐渐被专业制作团队的产出占据。目前的环境,基本就是会用互联网工具协作的人,做不出专业的作品。而制作的出专业作品的人却无法用互联网协作。当然,这并不是创作者的问题,而是目前的创作工具大多偏向于非专业用户。要想改变这一现状,需要有能够满足专业场景的互联网工具。



2.png



LiveVideoStack:视频播放体验优化面临的普遍问题是什么,有哪些解决方案?
姜雨晴:首先清晰度和卡顿这两件事,从来就是互斥的。高码率高清晰度的视频往往伴随着对网络条件的更高要求。5G的到来为我们解决掉了部分这样的问题。场景化、用户需求化的转码策略和新的转码技术也可以解决这个问题。

其次是C端用户要求比较高的首屏时间。但是在我们的场景中,秒级以内的优化并不是用户刚需,更需要的其实是对一些常见的视频格式,可以快速在多端播放,这才是用户真正关心的“首屏”。也就是从上传完成到各个端都可以播放视频的时间。这仍然是依赖转码,此时转码策略尤为重要。

最后是画面。视频生产与视频观看不同,哪怕是边角的水印都有可能影响制作者对画面的理解,视频生产环节十分注重视频的安全性,这两者之间产生了很大的矛盾。数字水印等策略可以部分解决这一问题。



LiveVideoStack:MediaTrack解决方案的亮点及其具体考量是什么
姜雨晴:我个人觉得,最大的亮点其实在于深入用户场景。对于不同场景下的文件处理用的是不同的策略:比如音频制作环节,音频制作者关心的其实是音频本身的一些数据,比如看波形数据判断音频是否过载等等,而单条音频制作之后,在混音的环节,制作者关心的又是多条音频轨道的搭配问题;在视频创作环境中,创作者关心的是画面、调色是否准确,转场是否在指定的位置,甚至是某一帧不该出现的穿帮镜头等等。

实际视频创作者分很多不同的工种,他们对于同一个视频或者音频表现出来的要求也不一样。这需要深入用户场景在服务端和播放端做不同的策略,才能让各个工种的用户都得到满足。所以在开发过程中,看到的虽然是一个播放器,但实际是很多不同的播放器根据策略展现。



LiveVideoStack:您现阶段正在解决的问题以及您下一个阶段的研发目标是什么
姜雨晴:现阶段其实有几个研发目标,首先就是实现MediaTrack对新的协作模式的创新。其次,我们需要更加深入用户的制作场景,开始PC客户端、工作栈插件和音视频生产制作过程中一些实用工具的研发。

于我个人而言,下一阶段需要兼顾网页、小程序、PC客户端和服务端的研发,在不同的思维模式中进行转换。
还可输入800
全部评论
作者介绍

姜雨晴

MediaTrack

音视频研发负责人

文章

粉丝

视频

阅读排行
  • 2周
  • 4周
  • 16周