三星🐮🐴 level
获赞
124
粉丝
12
关注
5
看过 TA
1074
蚌埠坦克学院
2024
C++
IP属地:上海
人🥬瘾大
私信
关注
投票
提问环节: 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源码级),面完第二天接到二面邀请。
查看22道真题和解析
0 点赞 评论 收藏
分享
04-19 15:58
已编辑
蚌埠坦克学院 C++
查看11道真题和解析
0 点赞 评论 收藏
分享
04-19 16:05
已编辑
蚌埠坦克学院 C++
1. 音频格式了解哪些?2. 说一下MP4帧头结构,moov中包含哪些参数?3. 说一下AAC/Opus的区别?4. 你提到Opus延迟更低,且在中低码率下能够有更好的音质,能具体说一下?5. 说一下音频文件从mp4解复用到播放声音的整个处理链路?6. AVPacket和AVStream有什么区别7. 看到你简历有写webrtc,讲一下webrtc的主要模块划分?8. 讲一下NAT穿透和P2P打洞?9. 你提到webrtc fec太严格挤占过多带宽,你是怎么去优化的?10. 你提到IDR帧,能说下IDR帧和I帧有什么区别吗?11. 你提到每个GOP开头IDR帧会把重传缓冲区冲垮,你通过优化pacer来解决这一问题,讲一下思路?12. 你提到RTCP和NACK包?能讲一下RTCP包含哪些包类型?(SR/RR、SDES、BYE、APP等)13. 了解其他流媒体协议吗?说一下音频传输的主流协议和特点?14. 你们的IPC摄像头有提供一些AI+能力吗?展示讲讲?15. 你觉得IPC可以集成哪些AI+的能力呢?举些例子说明一下?16. 讲一下你们的IPC摄像头的整个AI识别和反馈结果的流程?(多个IPC->有线/无线适配器接入NVR->共享内存AI算力卡->内存池+缓存队列->解码/AI识别/加字幕/识别框->返回AI算力卡->NVR解码渲染->编码送用户APP)17. 有了解AI模型在端侧的部署和应用吗?(承认没做过,不过简要说了下思路,提了一嘴模型选型,比如YOLOv8n)18. 考虑成本问题,我们不会用太高端的芯片,你认为可以从哪些角度优化资源利用?(modern C++特性比如智能指针、移动语义、锁管理器等,使用内存池清理碎片,尽量使用位运算优化计算性能,注意字节对齐避免为共享,尽量做无锁队列,IPC通信用零拷贝方案,编译和链接优化去掉不必要的符号、避免用静态库等)19. 了解哪些AI相关的算法吗?(承认了解不深,讲了些最经典的机器学习比如SVM、随机森林、K-Means均值,强化学习聊了下DQN、critic-actor框架、以及多智能体强化学习的MADDPG,面试官嘲讽都是玩具,难绷)20. 讲讲音频的3A算法?(AEC/ANS/AGC)21. 了解AEC算法的原理吗?它底层做了什么操作?(双端检测+延迟估计+非线性处理)22. 你提到要先消回声、再降噪、最后做自动增益控制,为什么?23. 先降噪,再消回声会怎样?24. 有调过音频算法的一些参数吗?这些参数的影响是怎样的?(一时只想起抑制等级和过减因子,延迟估计参数)25. 介绍你提到的卡尔曼滤波器原理?为什么后来又改成了EMA?(卡尔曼滤波是状态估计算法,需要调整过程噪声协方差Q和测量噪声协方差R,比较难确定最优参数,我们选了折衷方案)26. 卡尔曼滤波器和EMA有什么联系(EMA就是最简单的固定K增益的卡尔曼滤波器)27. 你的码率控制模块会调节qp/帧率/分辨率等参数,你是怎么去调节和优化的?28. 讲一下你的内存池是怎么实现的?能带来哪些性能上的优化提升?29. AI用的多吗?讲讲你用AI实现全栈项目闭环的过程?(前端界面+后端进程+守护/检测进程)30. 讲讲agent skills是怎么封装的?你封装和发布过哪些skills解决什么问题?31. 手撕:LRU缓存32. 你目前base哪里?老家是哪里人?33. 你对工作地点有硬性要求吗?能接受北京工作吗?反问环节:1. 您这边业务主要会涉及哪些音频编码格式?您是怎么考虑的?(主要用opus吧,实时通话延迟低且无版权费)2. 我们前面有聊到opus延迟更低,从您的专业角度看,它为什么会比aac延迟更低?(我们就先不谈太深的技术了笑,这些你后续可以查下资料,我们聊聊团队和发展相关的话题吧)3. 在过去的工作中,很遗憾我没有合适机会做端侧的AI应用开发;想了解下您的团队对于这个岗位在AI部署能力上的要求是怎样的?您会期望候选人要有硬性的落地经验吗?(其实也没有太硬性的要求,我们很多技能都是在边学边做,可能会更关注候选人的编程基础和学习能力)个人感觉难度中等,二面结束5分钟后约三面,期望会有一个好结局吧
0 点赞 评论 收藏
分享
04-22 11:17
已编辑
蚌埠坦克学院 C++
1. 介绍一下你这个多路解码模块的业务背景和主要功能?2. 讲一下你的内存池是怎么设计的?3. 你前面提到你用到了共享内存做IPC通信,为什么?4. 你的共享内存是用SPCS队列实现的,能展开说一下这个队列是如何设计的吗?5. 为什么用SPSC,了解MPMC的实现原理吗?讲讲如何选型?6. 你的SPSC会不会出现ABA问题?为什么?7. 为什么你的SPSC队列要预先申请N+1个位置?8. 你的SPSC队列是如何判断空或者满的?9. 你在这个项目过程中是如何考虑性能优化的,讲讲思路?10. 你的SPSC队列如果出现生产者生产速度远快于消费速度?你是怎么处理的?(要么无界队列,但不是很合适因为内存不确定;有界队列做滚动会更好)11. 你提到你的SPSC队列满了,你需要做滚动操作,你是怎么做的?12. 如果你滚动时,消费者还在使用这个旧数据怎么办?(生产者速度不会很快,因为视频流严格按20FPS生产,消费时我们在消费队列前端确保消费速度严格大于生产速度,处理不过来也要取帧后丢弃)13. 上面这个问题,有考虑过通过锁+同步来处理吗?(不会这么做,锁+同步在这个高频调用的情况下容易锁竞争,性能影响大)14. 聊聊你的播放器项目,先讲讲整体架构吧15. 你提到更多考虑设计模式,能讲讲你会如何做?(音视频场景可以考虑模板方法设计模式,因为音视频处理都是流水线,具体操作通过虚函数实现,不同芯片子类继承和重写)16. 有做过跨客户端平台的SDK开发吗?如果让你来设计,你会怎么考虑?反问环节:1. 前面我们聊到的SPSC队列来做音视频传输,从您的角度看怎么做会更优?面试官: SPSC队列本身是很好的设计,旧数据的滚动也是必要的,但我可能更多地希望做到一个优雅且外部无感的滚动逻辑...(没有解释得太细)2. 您在SDK开发和设计过程中,会考虑哪些设计模式来做外部接口和内部实现的隔离?3. 您这边提到用自动化脚本做模块开发,您是用单个agent来做还是multi-agents来做,您是如何考虑的?4. 您觉得对于这个岗位我还需要学习和了解哪些知识?让您推荐一本书,您会推荐什么?面试官:跨平台相关的知识吧,比如安卓、ios、windows、macOS等;像《macOS X技术内幕》、《深入理解Android:Java虚拟机ART》、《Windows 核心编程》整体偏工程,无手撕,感觉难度一般吧。第二天上午告知通过并安排三面,希望能过。
查看20道真题和解析
0 点赞 评论 收藏
分享
04-19 15:49
已编辑
蚌埠坦克学院 C++
1. 了解哪些客户端?看你主要是做Linux的,有没有做过mac/Windows上的SDK开发?2. 讲一下FFmpeg的主要模块,以及怎么做视频编码、解码、转码?以视频解码为例,讲一下底层实现?3. 讲一下你了解的主要编码协议,以及这些编码协议的特点和对比?4. 你提到H265的压缩率比H264提高40-50%,同时编码速度更慢,为什么?5. 讲一下你是如何通过OpenGL来实现灰度/反色/翻转效果的?6. 你提到着色器,上述操作应该调整着色器还是渲染器?7. 讲一下OpenGL有几种渲染管线?8. openGL渲染流程是怎样的?9. 看你简历写了OpenGL多线程并发,假如OpenGL中的某个gl对象被渲染线程和后处理的某个线程同步处理,你知道怎么解决数据竞争问题吗?10. 如果让你渲染一个画面,比如一个正方形画面你需要保留画面中心的圆圈部分,其他部分设置为某个白色或什么颜色的背景,你觉得该怎么做?11. 圆圈的边缘部分你认为要怎么渲染?12. 看你调试过不少视频bug,比如花屏、丢帧、卡顿,举例说明一下闭环流程。13. 你提到了WebRTC,讲讲你对于WebRTC的了解?以及你是怎么开发的?14. 你提到了FEC,能展开说一下FEC的主要原理吗?以及你这里FEC遇到的问题?15.音视频同步为什么选音频为主时钟?具体怎么做?16. 先处理视频再处理音频会怎样?17. 音视频的帧率会影响同步策略吗?为什么?18. 如果音频时钟出现异常(如声卡驱动卡住),怎么处理?19. 你提到的同步阈值50ms,是怎么测出来的?可以调吗?20. 说一下你怎么实现基于伙伴算法的内存池? 动态合并和分裂的流程是怎样的?21. 手撕一个简单内存池(实现4个操作即可:构造、析构、get、put)总结一下难度其实没有很难,主要是openGL涉及比较多,恰好这块我不太熟,被深挖就答不上了,只能怪自己菜。
0 点赞 评论 收藏
分享
04-14 09:26
已编辑
蚌埠坦克学院 C++
1. 用的C++版本是什么?用到C++的哪些新特性?2. 了解lambda表达式的底层实现吗?3. 使用lambda捕获this会有什么问题?4. shared_ptr的构造方式有哪些?为什么要用make_shared来构造?5. 讲一下折叠表达式的实现?什么是左折叠和右折叠?6. 什么是类型折叠?什么是完美转发?7. 你提到std::forward,你知道底层是怎么实现的吗?8. 你了解H264和H265的主要差别吗?9. 你提到H265没有VPS,你了解H264和H265帧头的主要结构吗?10. 为什么H265能做到比H264更高的压缩率吗?11. 讲一下ffmpeg的解复用流程?12. 看过ffmpeg源码吗?简单讲一下ffmpeg是底层是怎么处理视频编解码的?(帧头解析->00 00 01 / 00 00 00 01 NALU分割 + 指数哥伦布解码 + slice帧CABAC解码,编码类似)13. 为什么帧头间要用00 00 01 / 00 00 00 01分割?14. 解复用avformat_find_stream_info做了什么操作?底层怎么做的?15. OpenGL的渲染管线有哪一些?了解底层原理吗?16. 你提到GLM,是那个线性代数框架吗?能讲一下里面有什么主要方法?17. 了解Qt的主要方法吗?说一下你对Qt的理解?18. 用ffmpeg哪个版本比较多?了解ffmpeg的新特性吗?19. 讲一下你遇到过比较困难的问题,以及你是如何定位和调试的?20. 音视频同步的方式有哪些? 怎么选?21. 手撕:链表选择排序
查看21道真题和解析
0 点赞 评论 收藏
分享
04-21 19:25
已编辑
蚌埠坦克学院 C++
1. 讲一下多路线程池的实现原理,怎么做线程同步?2. 生产者-消费者队列(有界队列)实例需要几个条件变量和锁来管理?(1个和2个都行,2个就是not_empty和not_full)3. 你提到无锁队列,讲一下实现方法?4. 为什么用atomic原子变量来实现无锁队列?了解atomic的底层原理吗,这样做会引入什么代价?5. 为什么atomic+自旋实现的无锁队列比有锁队列性能更优?6. 讲一下内存序有哪几种?分别有什么特性怎么使用?7. 为什么memory_order_acquire和memory_order_release 用于锁的获取和释放?8. 为什么要使用内存序?为什么执行顺序和代码顺序会出现不一致?9. 你提到编译器优化?还有其他原因吗?(CPU乱序,缓存一致性)10. 讲一下返回值优化?返回值优化的原理能展开说说吗?11. 讲一下你的解码帧内存池的实现原理和数据结构选型?12. 你提到你每个页设置的是64KB,为什么选这个大小?13. 如果你每个页拼接起来尾部有不足64KB的怎么办?(已经按公倍数选择了,解码帧分辨率都是64的倍数)14. 讲一下你为什么选LRU,假如你用来管理页的vector回收了一些页块回来,造成了外部碎片,该怎么处理?(伙伴算法+相邻页块合并)15. 聊聊webrtc和websocket的差异和优缺点,你认为他们分别适合什么样的业务场景,有什么优缺点?16. 手撕:跳跃游戏II
查看16道真题和解析
0 点赞 评论 收藏
分享
04-21 16:27
已编辑
蚌埠坦克学院 C++
提问环节: 1、说一下C++的三大特性2、C++多态3、讲一下虚函数指针和虚函数表、虚函数表在虚拟内存的哪个区4、说一下用到的C++11/14/17的新特性5、多线程同步的方式6、用过哪些锁?7、讲一下RAII8、智能指针有哪些?有什么特点?9、写一个简单的shared_ptr10、shared_ptr的底层,在内存中是怎么布局的?11、说一下shared_ptr的循环引用?怎么解决?weak_ptr如何创建和使用?12、指向内存的shared_ptr都释放了,但还有一个weak_ptr指向这块内存,这块内存会释放吗?13、weak_ptr也有计数吗?说一下14、讲一下常见的几种设计模式和实现方法15、单例模式的实现,以及单例模式的优缺点16、设计模式的六大原则17、聊一下pImpl?18、ffmpeg和gstreamer框架的对比和优缺点19、说一下音视频同步的原则和做法20、OpenGL渲染帧率如何确定?21、如果显示器帧率是60帧,视频是150帧,应该怎么渲染22、介绍一下你的码率控制模块的设计框架?码率控制模式如何选型?(cbr/abr/vbr)23、介绍一下你是如何处理弱网卡顿的(时域svc + 记忆化滑动窗口预测)24、如果网络持续恶化,你会立刻降码率吗?25、介绍一下你的多路解码模块设计?内存池大概是怎么实现的?(多级分辨率链表 + LRU)26、讲一下AI工具,如何使用和发布skills和mcp server27、平时用AI开发多吗?都是怎么用AI的?28、Qt主窗口用的QWidget还是QMainWindow?为什么?29、 对多进程和多线程的理解,顺便提到macOS偏好多进程开发的原因30、为什么基类析构函数一般做成虚函数,构造函数能不能做成虚函数,为什么?31、共享屏幕看一下项目代码,看看你的代码习惯反问环节:Q1:您组里做什么业务呢?A1:音视频SDK开发,涉及linux和windows端,这块跟你经历接近;除此之外还要在移动端APP做拼接、特效等功能,不过这些你过来后也可以学。Q2:您是如何解决soc芯片编码能力不足,但需要给多路APP用户推流的问题?如果复用某几路流,码控不能兼容用户体验,您是如何思考的?A2:我们业务是手机和相机局域网通信的,并且只推一路流(笑),不过你提的这个问题确实不好解决。Q3:请您给一些关于我学习和成长的建议?A3:了解基础技术的前提下,多学习和使用AI吧,AI更新太快,程序员都要被自己开发的AI干掉了(笑)
0 点赞 评论 收藏
分享
2023-11-07 23:58
蚌埠坦克学院 C++
阿斯顿户籍卡厉害送的...:你是提前批还是正式批?提前批这两周内就发体检
0 点赞 评论 收藏
分享

创作者周榜

更多
关注他的用户也关注了:
牛客网
牛客网在线编程
牛客网题解
牛客企业服务