采访讲师

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

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

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

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

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

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

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

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的转码流的帧情况也存在着差异,需要分别换算准确的帧数,在标记时进行显示。

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

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

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

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

Q

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

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

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

LiveVideoStack:能透露一下您在这次LiveVideoStackCon会带来哪些独家内容吗?

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

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

LiveVideoStack:您眼中当前国内的视频生产环境是什么样的?

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

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

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

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

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

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

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

LiveVideoStack:您现阶段正在解决的问题以及您下一个阶段的研发目标是什么

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

于我个人而言,下一阶段需要兼顾网页、小程序、PC客户端和服务端的研发,在不同的思维模式中进行转换。

前端工程师后端转型实录相关推荐

  1. Java、Python、Go 哪个后端编程语言适合web前端工程师学习?

    不知道作为web前端工程师的大家有没有相似的经历:很多时候我们想深入学习node,立志向web全栈方向发展,但是却十分遗憾的发现很多node教程基本都是helloworld级别的.如果真想搞后端开发, ...

  2. 写给刚入门的前端工程师的前后端交互指南

    转自原文 写给刚入门的前端工程师的前后端交互指南 作为刚接触前端的不久的童鞋,大家都会兴奋于CSS和JS所带来漂亮界面,然而,前端工程师除了UI重构外,还有非常重要的职责在正确的区域渲染出服务端的数据 ...

  3. 相对于就业来讲,前端工程师和后端开发哪个比较好?

    在开始这个问题前,先说一下前端和后端两者之间都是干什么的?有哪些区别?通俗地讲,前端干的工作是用户可以直接看得见的,而后端开发的工作主要在服务端,用户不太能直接看到.虽然前端开发和后端开发的工作有巨大 ...

  4. 前端工程师和后端工程师的区别?

    有很多小伙伴都听说过前端开发和后端开发,但是却不知道两种岗位都是干嘛的有什么区别,今天小千就来给大家介绍一下前端工程师和后端工程师的区别,方便大家理解. 前端工程师 前端工程师是互联网时代软件产品研发 ...

  5. IT、CT、UI、前端工程师以及后端工程师的简绍

    IT指的是信息技术产业,一些软件开发,软件管理: CT指的是通讯技术产业,2/3/4/5G通信技术. UI是UI设计师,是根据产品的需求,设计出图案,在界面中设计和排版对应的交互.视觉元素. 前端工程 ...

  6. 互联网首席工程师 - 全栈,懂后端的精英前端工程师

    1. 老百姓身边的互联网 逛街买衣服好累哦 大家想一下,我们在没有互联网的时候,我们买衣服是怎么买的,大家想过吗?在没有互联网的时候,大家买衣服我没猜错的话我们会去商场或者是专卖店,像北京现在天气这么 ...

  7. 七夕节马上要到了,前端工程师,后端工程师,算法工程师都怎么哄女朋友开心?

    这篇文章的前提是,你得有个女朋友,没有就先收藏着吧! 七夕节的来源是梁山伯与祝英台的美丽传说,化成了一对蝴蝶~ 美丽的神话!虽然现在一般是过214的情人节了,但是不得不说,古老的传统的文化遗产,还是要 ...

  8. python前端开发和后端开发工程师_一文看懂前端和后端开发

    作为一名开发者,你可能会想:2019 年最好的软件开发技术和编程语言会是什么?它们又是如何被应用在软件开发当中的?如果你在思考这个问题,那就来对地方了.这篇文章将对前端和后端开发技术做一个对比,先从基 ...

  9. 前端和后端的英文_前端工程师一般都喜欢去哪些网站逛?

    看到有人问前端开发应该知道哪些网站,那我就来总结一下. 我先说一些程序员很通用的网站,再推荐一写前端程序员可以订阅的优质前端内容网站,如果对你有用,就点个赞呗~ 1. Google: 这个不用多说了吧 ...

最新文章

  1. OS study plan
  2. 记录一下vlfeat视觉库配置
  3. Soul网关发布里程碑的2.3.0版本,新增支持GRPC,Tars,Sofa协议
  4. 干掉MySQL!阿里云MVP专家的分库分表设计,搞得太棒了!
  5. python中的序列总结:列表,元组,字符串
  6. html如何设置字符类型,html 空格字符类型
  7. 如何把UIView转成UIImage,解决模糊失真问题
  8. UCScript——C++集成脚本
  9. 软件测试需求分析录音,谈一谈软件测试需求分析
  10. 20191025:(leetcode)摆动序列
  11. python真的是吹过了-python是否被过度吹捧?
  12. spring整合大全
  13. windows xp下Apache2.2.11整合Tomcat6.0.20(集群模式无集群模式)
  14. HTML PROGRESS 中显示百分比,在ProgressBar控件中显示进度百分比
  15. Beta 多样性排序分析方法与比较
  16. 常见14种手机传感器
  17. 人工智能--技术发展史
  18. 基于单片机的智能宠物喂食器设计
  19. 计算今天距离2026年1月1日,还有多少年,多少月,多少天?
  20. UVA 1647 Computer Transformation

热门文章

  1. LeetCode 145 ——二叉树的后序遍历
  2. 固定DIV不随滚动条滚动
  3. centos Crontab
  4. 一段JAVA签名算法的PHP改写
  5. 80后创业故事之:兄弟散伙,创业失败(转)
  6. 基于InkCanvas实现的桌面涂鸦工具-[ WPF开发 ]
  7. CodeForces - 1358C Celex Update(思维)
  8. 洛谷 - P4568 [JLOI2011]飞行路线(分层图最短路)
  9. POJ - 3259 Wormholes(判断负环)
  10. Windows系统CUDA10.2+CUDNN安装教程