这次是去南京线下参加公司的面试,所以一面二面就直接一起面了,总共时间是在 1 个半小时,问了很多协议和音视频相关的内容:
自我介绍。
关于旁路推流的最高并发量是多少,为什么只有 5k 路呢?是什么原因导致一台机器只能处理 40-60 个任务,瓶颈在哪。
http 协议是什么,ssl 是如何对 http 加密的,讲下具体加密的过程。
讲下旁路推流使用的 rtmp 协议,以及 rtmp 协议用于处理媒体流有哪些优势(或者 rtmp 在用于媒体流时做了哪些优化)。
有用过 c++ 的 boost 库吗,和 stl 有什么区别。
在项目中有使用 event lib 或者 epoll 吗?具体是如何监听客户端的 connection / read / write 操作的。
在项目中有使用多线程吗?具体讲一讲线程池的设计 & 处理逻辑。
自己实现的一个日志系统,能讲下你是如何去实现的吗?当队列中有任务时就立刻往磁盘文件中写,如果产生 IO 负载高的问题,你是如何去解决的比如使用缓存做优化等(实际上项目并没有做优化,但我理解通过生产者 - 消费者模式,且只有一个子线程去做写的操作,对于 IO 的负载并不高)。
右值引用是什么,以及在什么场景下会使用右值引用,左值如何转化为右值。
智能指针和裸指针有什么区别,解决了裸指针什么问题。
ffmpeg 指令有用过哪些,pts 和 dts 分别是什么 & 它们之间的区别。
什么是 I 帧、P 帧和 B 帧。
关于云端播放器的循环 / 定时 / 暂停 / 倍速等功能是如何实现的(因为当时负责的是控制侧的逻辑,所以负责的是解析 & 透传参数给 ServerSDK2,具体实现还是由 ServerSDK2 去做的)。
假双声道造成波形相位相反音频抵消的问题是如何解决的。
有一个场景,当 client 和 server 使用相同的端口,但建立多条 tcp 连接(端口复用),当一条 tcp 连接因为传输阻塞或丢包时会影响其它 tcp 连接吗?如何从应用层解决这个问题。(涉及 HTTP 3.0 的传输优化,即使用 udp 时如何在应用层保证数据传输的可靠性)。
之后反问了下岗位的职责,主要是做融合通信系统和底层 sip 协议栈的开发和维护的工作,对协议之间的交互和音视频也是有要求的,也要熟悉 ceph 和 srs。
二面是主管面,此时就没有问很多技术上的问题,问的问题有:
你是如何去响应 & 处理故障的,讲一个你印象深刻的案例。
你认为解决最难的一个问题是什么,说下碰到的难题和具体解决的过程。
听你的讲述,你既要负责开发,还有客户问题、运维部署、线上监控、机器成本和效率提升等的职责,你觉的这样的工作模式会导致什么问题,当如果有多件事情同时找到你,你会如何应对。
线上灰度流程是怎样的,如何面向故障灰度。
旁路推流 & 输入在线媒体流是在哪些行业有使用,具体的应用场景是什么,涉及到的具体客户,客户为什么会使用你们的产品即有哪些优势提供给客户。
离职的原因。
大部分都是一些开放性的问题,最后也问了下为什么叫 "中兴高达",和中兴有什么关系,以及具体的一个工作时间(大小周)。最后因为 hr 请假了,所以只能之后电话面了,不然今天可以把所有流程走完。
然后我就去合肥找同学聚会了,因为今天是周六写的,明天上午 11:00 还有一场科大讯飞的线下面试。