暑期实习C++音视频面经合集(上)

音视频面经合集:腾讯、快手、OPPO、美团。纯靠面试后的回想,应该会有不少的疏漏。
合集(上):腾讯 OPPO

腾讯PCG客户端(一二面都是一小时左右):

一面:

1. 面试官介绍部门,问地域是否接受
2. 做题 子序列
3. 介绍360度视频编码推流器项目(跟科研有关),接着聊了一些360视频的开放性问题
4. 介绍视频编码流程,哪些部分属于无损编码
5. 播放器项目相关问题,包队列的设计,倍速实现等,这里应该问了不少
6. TCP UDP的区别
7. MP4介绍,如果不知道moov box的具体位置,如何快速起播
8. 场景题:实现透明视频,在编码这一块需要做什么操作?

二面:
1. 自我介绍 
2. 进程和线程区别;线程同步方式 锁 信号量 条件变量;什么场景适用什么方式;无锁编程 
3. TCP 三次 四次;然后很多场景题(具体记不清了);可靠性具体是什么;HTTP GET POST 
4. 打草稿讲思路:a. 相交链表 判断交点 b. queue实现stack c.100枚硬币,其中一枚质量不同,给你一杆秤判断它的轻重,最少称几次

OPPO多媒体开发(一二面都是30分钟多一点):

一面:
1. 自我介绍 
2. 一个实际软件项目的开发流程思路
2. 指针和引用 野指针 悬空指针 智能指针 
4. 线程池 线程 线程同步 锁的分类 死锁 
5. 7层模型 TCP UDP区别 TCP可靠性 
6. 设计模式 
7. FLV MP4 
8. 播放器项目 音视频同步 信息交互 低延迟播放器的实现 FFmpeg中的AVPacket和AVFrame 
9. 科研项目介绍

二面:
1. 自我介绍 
2. CPU调度算法 进程 线程 
3. 7层模型 TCP三次握手 
4. 各种排序算法介绍 
5. 两个项目介绍 
6. 工作场景中的开放性问题 互联网加班现象怎么看; AB两个模块有模糊边界 你是其中一个模块负责人 模糊区域出现问题 怎么沟通解决
全部评论
佬,问一下音视频怎么学的,有没有推荐的网课或资料
1 回复 分享
发布于 2024-07-19 16:01 广东
佬,oppo二面后还有吗
点赞 回复 分享
发布于 2024-04-25 13:50 湖南
佬,base哪
点赞 回复 分享
发布于 2024-04-16 23:04 北京

相关推荐

04-22 23:15
中南大学 Java
时间:4.21公司地点:北京时长:52min做了一些简化,提取了更有借鉴价值的部分1. 部门介绍2. 自我介绍3. 这两个项目你觉得哪个项目复杂度高一些,可以多聊一会4. 你这个项目主要是想解决什么样的问题呢5. 你刚才说这些方法的话,应该说也是社区内或者说比较常见的一些处理方式了,对吧?我都或多或少都能get到,但是我有一个问题,就是**你做这件事情之前,就是每一个技术的应用之前,你有没有去验证这个技术确实提升了准确率呢**6. 我们的这些处理方式是否真正的真的提升了它的准确率。就是我们只是堆砌技术,还是说我们确确实实是提升了这件事情?7. 你这一知识库当时怎么选的?你做的知识库是什么类型的知识库?8. 那你这知识库里面涉及了哪些方面的内容?比如说文学类的,还是什么科技类的?是什么航天类的等等?有没有就说具体一些?9. 那你这个博客内容写的多吗?10. 那如果14篇文章的话,而且你这14篇文章看起来所涉及的范围是比较发散的,那么在这种情况下,其实这个rag的检索本身就不容易出现,刚才说的那个检索有问题的情况,这可能本身就不是个问题。11. 在我们去真正去做一件事情这的处理的时候,其实我们还是应该先去有一个度量的标准,不然我们优化可能是负优化,我们都不知道对吧?就是说我现在要做 rag 检索。我要去先做一个度量的方式,然后去验证它的准确率,你应该怎么做?12. 你怎么判断问题回答是准确的13.那么我怎么看到线上的这些回答的准确率呢?14. 有必要搞多级缓存吗15. 好,那首先就多级缓存来说,你觉得,它有什么弊端,还有它有什么优势?这个讲一下。16. 我有一个问题,首先其实我们一般认为 redis 它的那个吞吐是非常高的,而且如果说我们比如说数量很大,Redis 它也是支持那个多节点对吧,比如说…… 不管是哪种方案吧,Redis 也可以支持多节点的这种部署,所以在这种情况下的话,我们认为 redis 从网络压力这一块是没有太大问题的。那么在你看来,有了 redis 的话,我们还要去引入本地缓存的主要目的是什么?因为刚才你说的只是为了减少网络开销。 但是现在我们实际的生产环境中 redis 的是网络开销 其实是没什么太大的问题的。你应该明白我的意思,就是 redis 网络开销不是它的核心问题,就是我为什么非要引入本地缓存17. 我看后面你还自己写过两个 SKILL 对不对?能具体展展开一个就是你可能平时,有没有平时用的比较多的,我想知道不是那种为了写而写的那种,就真正能解释你生活中问题的那种 SKILL18. 你最近面试多吗?19. 那八九场的话,就是你觉得你做的自己就是面试,就是相当于面试自己的这种 Skill 和你真正去面试中拿到的面试题,它相似度高吗?>我是我当时了解到,主要是主要是因为网络开销的问题,进一步提升响应速度20. 说实话 redis 并不存在很大量的网络开销问题  对不对?21. 我看后面你还自己写过两个 SKILL 对不对?能具体展展开一个就是你可能平时,有没有平时用的比较多的,我想知道不是那种为了写而写的那种,就真正能解释你生活中问题的那种 SKILL22. 你最近面试多吗?23. 那八九场的话,就是你觉得你做的自己就是面试,就是相当于面试自己的这种Skill和你真正去面试中拿到的面试题,它相似度高吗24. OK, 那你觉得你这个 SKILL 有没有帮你解决到一些实际面试中的问题,有没有确实命中的一些面试中的一些真正的面试题25. 对你来说,现在比如经验完经历完这场面试之后,你觉得你的 SKILL 应该如何提升呢?26. 你理解什么叫 CAS?27. 那它和悲观锁有什么不同?那首先第一个问题就是纯靠CAS就能解释就能实现这个乐观锁吗?28. 解释一下volatile的这个关键字的目的和作用29. 既然我们提到了CAS操作就一定能保证。并发更新的安全性了。那么我们为什么还要用 volatile 去修饰这个变量呢?这不多此一举吗?30. 好,那继续问 CAS 里面会有什么问题?就它会有什么其他的什么问题呢?31. 你了解 CAS 的 ABA 问题吗?32. 讲一下怎么解决就可以了33. 那现在回到这儿来说就是有乐观锁和悲观锁两种锁,对不对。那么,我什么时候要选择乐观锁?什么时候要选择悲观锁?你看,我们知道 JDK 里面 synchronized 的关键字是悲观锁,对吧?而 ReentrantLock 是个就是这种我们一般认为是 CAS+volatile 这种乐观锁的方式那么这两种方式的话,你觉得我们在应用中。什么情况下会采用乐观锁?什么时候要采用悲观锁?34. 为什么?35. 这个我知道好,那现在问一个问题 就是说,既然高并发情况下用悲观锁就很好,那我无脑用悲观锁不就完了吗?就是既然说。乐观锁有就是说并发高了,它就不行,自选浪费 CPU,对吧?那我无脑用悲观锁,不就 OK 了吗?不挺好的吗?36.那还有一个问题,就是我们刚才说的这些并发的处理的方式。都是基于一个理念叫共享内存,对吧,相当于都是无论是悲观锁还是乐观锁,我们都相当于是要在对象上加锁,然后限制一些线程的进入和退出,对不对。 那么有没有别的方式照样可以实现并发更新的?并发更新的这样的一个方式,就除了共享内存方式,还有没有别的。比如说或者说我这么说吧,就全世界上处理同一个数据的多线程更新的这个问题,只有乐观锁和悲观锁两种方式吗?是非阻塞不能处理吗?因为不管是哪个锁,其实都会进入到一个阻塞的状态,对吧?必须是通过阻塞的方式才能搞实现多线程对同一变量的更新吗?37. 手撕环节:[电话号码的字母组合](*******************************************************************)48. 反问环节
查看30道真题和解析
点赞 评论 收藏
分享
评论
11
82
分享

创作者周榜

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