引言

本文主要是记录一下面试字节跳动的经历。

三四月份投了字节跳动的实习(图形图像岗位),然后hr打电话过来问了一下会不会opengl,c++,shador,当时只会一点c++,其他两个都不会,也就直接被拒了。

七月初内推了字节跳动的提前批,因为内推没有具体的岗位,hr又打电话问要不要考虑一下图形图像岗,我说实习投过这个岗位不合适,不会opengl和shador,然后hr就说秋招更看重基础。我当时想着能进去就不错了,管他哪个岗呢,就同意了面试。

后来面试也就是问了C++的一些东西和图像滤波的一些东西,最后让我用数组实现一下队列的数据结构。回答的不是很好,所以就挂了。具体的面试问题我也没记录。

接下来就是正式批面试音视频编解码岗位了。

一面

面试是视频面试,上来就有三个面试官进入房间,还好都没开摄像头。面试过程中主要是一个面试官在问。

首先是自我介绍。。。

然后讨论了一下项目的细节。。。

问:说一下SPS和PPS的区别,
答:sps是序列的参数集,pps是图像的参数集,每一帧都有自己的pps。(感觉跟没说差不多)

问:sizeof(只有虚函数的类) 是多少
答:是4,因为要有虚函数表指针,本来sizeof一个什么都没有的类是1嘛(自己挖坑)

问:为什么sizeof空类是1
答:(难道我要说面试之前刚看过?)额,总得有个标志啥的吧(面试官表示嗯嗯,也差不多,又给我详细解释了一下)

问:说一下C++的虚函数
答:(背了一下面经里面的答案)

问:说一下四种cast
答:(按照面经背了一下,但是回答的很混乱,因为自己也不是很理解)

问:我看你简历里面有写会C++和Python,那说一下Python里的垃圾回收机制
答:我就知道一种垃圾回收机制,就是引用计数(然后说了一下引用计数,扯到了循环引用的问题上)

问:那循环引用怎么解决呢
答:(想了一会,自己瞎说了一下)假如一个对象引用另一个对象,我就去检测一下另一个对象是否引用了这个对象(然后在面试官的提示下说出了智能指针)

问:Tcp三次握手
答:就这一方发送个数据包请求通信,另一方同意通信返回一个数据包,这一方再返回一个ack(后来想想这个回答跟没说差不多,主要是我复习的时候觉得这个岗位应该不会问网络方面的东西,面经里面有我还特意没看)

问:tcp的滑动窗口有了解吗
答:(说了两句就说不下去了,就只好说不清楚)

问:tcp和udp的区别
答:(为什么还问网络啊,好后悔看面经的时候没背)tcp是有连接的,udp是无连接的,tcp是可靠的,udp是不可靠的(就答出来这两点)

问:dts pts的区别
答:什么dts pts?(主要因为说的是英文简称,要是说中文显示时间戳和解码时间戳我还能扯一点)

问:从C++源文件到可执行程序有几步
答:首先是预处理,然后编译,(少答了一步汇编),然后链接。

问:最后来做个题吧:最长递增子序列,用自己的ide编写代码
答:之前没做过这个,做了有二十分钟吧没做出来,也就说了一种思路,然后面试官举了个反例,然后我就很失落。面试官还跟我说,没事的同学(面试官人真好)。

整个面试大概面了五十分钟吧。结束面试,我靠在椅子上陷入了深深的思考,满脑子就是凉凉。过了会电话就响了,说准备等会二面,真是太惊喜了,等了会又打电话说二面面试官太忙了明天再面。就这样结束了一面。

后面想了一下,能通过一面,主要还是项目经历还可以,展现了自己的视频编码专业能力,而且C++的基础问题还行。最后的算法题虽然没做出了但是也说出了自己的思路(虽然是错的)本来算法题没思路都准备放弃了,还好自己没放弃,所以大家在面试的时候一定要坚持住,不要觉得自己没希望了就放弃。当然主要还是运气好,面试官很nice。

二面

第二天二面,面试大概持续了半个多小时,面试官全程微笑,很亲切。

上来还是自我介绍

然后问了一下Hevc相比H264的改进,这个问题我回答的还可以,主要就说了一下块划分已经帧内预测的区别,毕竟帧间和滤波的话也不是很了解。

如果给你offer,现在能来实习吗?这个我需要跟导师商量一下。

然后让我看了两段代码,找出代码中的错误,第一段是一个函数,在函数内部改变了参数的值,但是实参值不会改变,与函数的目标不符。第二段也是在函数内部取变量的地址,然后返回指针,这样离开函数后变量就被销毁了,指针就是空悬指针了。但是第二段代码我当时是没看出来有什么错误,面试官直接说了答案。

写一个线程安全的单例模式,(这个题面经上也有,但是我没有看)写了半天写的也不对。

写一个内存移动函数。我在面经上看过内存copy函数,就问了一下跟内存拷贝有什么不一样吗,让我思考了一会告诉我要考虑重叠的情况,然后就顺利地写出来了(毕竟看过)。

虚基类的作用?菱形继承的时候巴拉巴拉。。。(不得不说运气不错,面试前才看过)

构造函数、析构函数能是虚函数吗?不能,巴拉巴拉。。。

有什么想问的吗?问了一下主要业务,然后又问了一下公司的地址。

最后面试官说了一句希望不久的将来能见到你(听了很兴奋,面试官真的太nice了)。

三面

二面结束两天后三面,刚开始以为是hr面,问了一下还是技术面。总共面了大概二十分钟吧,还比较轻松。

依旧是自我介绍。。。

问:前两面感觉如何,回答好的地方,不好的地方
答:编码方面答的比较好,网络方面答的不太好。

问:职业规划
答:先学习公司文化,跟同事处好关系,然后提升自己的技术,努力承担更多的业务。。。(反正大概就是这意思)

问:项目中遇到的难点,一直无法解决的问题
答:。。。

问:写道代码题吧:判断链表是否有环。你要定义链表的数据结构,并写一个函数返回bool类型表示链表是否有环。
答:(这真的是很简单的题了,之前看过,很轻松写出来了)

问:有什么想问我的
答:您的职位?主要业务?我进去主要做什么?

三面的面试官也很亲切,全程微笑,面试体验很好。三面结束是星期四,过了周末,周二就发了意向书,字节跳动的面试效率是真的高。

总结

这个岗位的话主要有三个能力要求吧:视频编码,c++以及网络。能通过面试感觉还是运气比较好,毕竟刚开始面试很多知识还都没复习完。希望大家也都能有个好运气,面试加油!

字节跳动视频编解码面经相关推荐

  1. 国内外视频编解码标准体系-横向纵向对比全球三个体系标准

    作者:中国移动李琳 针对国内外视频编解码标准,前文回顾和总结了标准组织或联盟包括MPEG.ISO.ITU.AOM.AVS等的阵营.历史.标准关系.本文从纵向.横向分析对比视频编解码的特性. 纵向是指按 ...

  2. 被压缩的视觉:视频编解码技术

    视觉是人类获得信息的主要方式,每天有大量的视频信息被生产并传输.未经压缩的视频内容占用的存储空间和传输带宽十分巨大,以常见的30fps高清视频为例,采用avi格式存储的YUV420视频流一分钟就有2G ...

  3. 视频编解码的理论和实践1:基础知识介绍

    近几年,视频编解码技术在理论及应用方面都取得了重大的进展,越来越多的人想要了解编解码技术.因此,网易云信研发工程师为大家进行了归纳梳理,从理论及实践两个方面简单介绍视频编解码技术. 相关阅读推荐 &l ...

  4. H.264/AVC视频编解码技术详解 第一章 视频信息与压缩编码

    H.264/AVC视频编解码技术详解系列笔记 是对 H.264/AVC视频编解码技术详解 课程的学习 文章目录 人与世界的交互 视频信号的表示方法 视频压缩编码 视频信息为什么可以被压缩? 视频压缩编 ...

  5. 基于FFMPEG 的跨平台视频编解码研究

    第33卷 第11期 2011年11月 武 汉 理 工 大 学 学 报 JOURNALOF WUHANUNIVERSITYOFTECHNOLOGY Vol.33 No.11 췍췍췍췍췍췍췍췍췍췍췍췍췍췍 ...

  6. 音视频开发(9)--视频编解码的理论和实践

    视频编解码的理论和实践1:基础知识介绍   1.视频介绍 视频的本质是图像序列,根据视觉暂留的原理,每秒播放20~25张图像,就会形成连续平滑的视觉效果,人眼将无法区分其中单幅的图像,就这样连续的画面 ...

  7. 04 ARM Mali-V VPU硬件视频编解码驱动介绍V61

    ARM Mali-V VPU硬件视频编解码驱动介绍V61 作者 将狼才鲸 创建日期 2022-12-13 CSDN文章地址:ARM Mali-V VPU硬件视频编解码驱动介绍V61 一.PC上的VPU ...

  8. 各种音视频编解码标准

    编解码学习笔记(一):基本概念 媒体业务是网络的主要业务之间.尤其移动互联网业务的兴起,在运营商和应用开发商中,媒体业务份量极重,其中媒体的编解码服务涉及需求分析.应用开发.释放license收费等等 ...

  9. 各种音视频编解码学习详解之 编解码学习笔记(四):Mpeg系列——Mpeg 4

    最近在研究音视频编解码这一块儿,看到@bitbit大神写的[各种音视频编解码学习详解]这篇文章,非常感谢,佩服的五体投地.奈何大神这边文章太长,在这里我把它分解成很多小的篇幅,方便阅读.大神博客传送门 ...

最新文章

  1. 发际线有救了!这款app可一键AI生发,拯救你的自拍焦虑
  2. Spring中bean标签的属性和值:
  3. 因为名字叫True,她被苹果iCloud服务器拒绝了
  4. Windows Server 2008 R2 DNS 服务器迁移方法
  5. hdu-2553 N皇后问题(深搜 + 状态压缩)
  6. 你会选择深圳还是佛山?
  7. HTML5 API详解(6):getUserMedia实现拍照功能
  8. Androidstudio查不出具体哪行报错解决办法
  9. Linux 命令 (tar,权限,管道)
  10. 最良心的Chrome插件可以良心到什么程度?
  11. 力扣-103. 二叉树的锯齿形层序遍历
  12. 克里斯坦森:管理水平高的公司往往离崩塌不远
  13. xlsread的返回值
  14. perl依赖包安装方法
  15. C3P0,alibaba连接池错误【已解决】-An exception occurred while acquiring a poolable resource. Will retry.
  16. 小程序中图片的移动、旋转和缩放功能
  17. iOS-发布按钮动画(类似于闲鱼发布),弹出动画github开源
  18. hive的分区和分桶
  19. 坐标变换怎么转?转的方向和矩阵正余弦正负的关系
  20. Rancher2.6 Monitoring Grafana 对接 LDAP

热门文章

  1. go mysql 错误_mysql安装失败原因和解决方法
  2. C语言unsigned char、char与int之间的转换
  3. JS逆向之Webpack 处理2
  4. 车道偏离预警——LDW Carsim与simulink联合仿真模型
  5. 学历对于程序员找工作重要么
  6. python进程结束
  7. Bluehost 主机推荐 黑色星期五
  8. 清华邓俊辉数据结构学习笔记(3) - 二叉树、图
  9. SU插件情报局 | ClothWorks模拟布料插件详解
  10. 怎么改变CO的成本控制范围