BIGO一面

投票
提问环节:
1. 讲一下你的全链路埋点都是怎么做的?你都埋了哪些数据?为什么?
2. 你提到你负责处理和解决音视频相关的各种bug,能说一下你是如何排查、解决、验证和闭环的吗?
3. 你提到你的埋点提高了debug的效率,是怎么提高的?
4. 你提到你实现了一个自动化脚本来自动跑测试,说一下怎么做的
5. 讲一下你了解到的音视频编码格式(aac/opus)
6. aac和opus有什么优缺点?
7. 讲一下你遇到过的项目难点,以及你是如何解决和闭环的?
8. 你的音视频同步是怎么做的?如何确保用户体验?
9. 音频比视频快和视频比音频快,哪个更影响用户体验?
10. 你是怎么确保音视频同步和体验是好的?(直接说统计时间戳的差)
11. 有没有可能硬件底层导致时间戳有一定的误差,你怎么解决?(底层用的厂商soc,我们默认他们是OK的)
12. 你提到OpenGL渲染管线构建可扩展滤镜框架(灰度/反⾊/翻转),你是怎么构建的?用的什么设计思想?
13. 码率控制模块是如何设计的?
14. 你是怎么考虑分辨率/帧率/QP的调整,来确保出流体验?
15. 讲一下你的卡尔曼滤波和滑动窗口的码率控制策略?
16. 你的码控不能太频繁也不能太稀疏,你是如何设计控制间隔的?
17. 为什么选2秒?(因为IPC摄像头出流2s一个GOP)
18. 讲一下你的动态内存池的实现,你认为你比开源项目中的实现好在哪?(学习借鉴优秀开源项目,同时基于业务需求调整)
19. 说一下内存池的大致实现,你的内存池通过什么来进行同步?(cv+unique_lock)
20. 你提到原子变量std::atomic,展开讲一下?
21. 手撕:找到有序数组的所有中位数。(奇数时中位数必然在中间,偶数时在中间的左右两个)
22. 你还在职吗?我们这边主要是做音频的,看你做视频比较多。

反问环节:
1. 您这边用到的技术栈主要有哪些?(C++、ffmpeg等,主要还是根据开发需求吧)
2. 您做音频编码用aac多还是opus多?为什么?(除非播放器不兼容,不然都优先opus)
3. 您结合今天的面试情况,谈一下我哪些地方需要学习和提高?(整体答得都挺好的,可能有些细节需要进一步深入吧)
4. 能说一下具体哪里需要进一步深入吗?(你可能需要在工作中寻找和解决问题,遇到难题进一步学习和深入,不过工作后你可能也没有太多精力学习了)

整体感觉面试难度较低,没有太多深挖(比如ffmpeg源码级),面完第二天接到二面邀请。
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务