个人状况:工作两年,社招,双非本科,没想到给了面试机会
面试题:
先自我介绍,然后让介绍自己做过的项目。根据项目问了些问题。
音视频:
1、flv报文分析。具体到某个字段在哪存(时间戳,编码字段具体放在哪的)
2、rtmp交互流程(rtmp握手、建立网络连接、建立流,播放),rtmp直播推流经过哪些环节(摄像头采集、音频编码、视频编码、flv封装、rtmp封装、推流到服务器)
3、rtmp的握手过程
4、rtmp停止推流发送什么指令(没回答上来,当时说实际使用停止推流就是直接不推。后来查了,应该是FCPublish 和FCUnpublish 指令)
5、h.264帧类型,并详细说明
6、I帧和IDR帧区别
7、GOP开放模式和封闭模式的使用场景及如何选择
8、h.264的码率控制模式(只知道可编码率和固定码率),讲一讲区别以及使用场景
9、yuv420P在内存中的排列方式
10、yuv420p和nv12的区别(忘了nv12是半平面模式,没回答上来)
11、h.264裸流分析(vcl层和nal层分析)
12、两个h.264包,是怎么识别是两个包的(没听懂啥意思)
13、SPS和PPS是干什么的
C++:
1、c++11新特性有哪些
2、介绍一下智能指针有哪些?shared_ptr底层数据结构如何实现的?shared_ptr是线程安全的吗(没回答上来)。shared_ptr和weak_ptr来构造有什么区别(没理解啥意思,就回答了weak_ptr不会引起计数器的增加)
3、什么是左值引用?int &&a=10;和int &&a=b;(int b=10)的区别(这个问题以前分析过,但是忘了)
4、lambda表达的的捕获方式有哪几种?值捕获能否修改捕获的值(要加mutable才能修改)。lambda中访问一个static int a;是否需要先捕获它
5、lambda和std::function的区别(没get到面试官问的点,就回答临时用就用的lambda,后续需要继续用就用std::function)
最后,手撕翻转链表
面完总体感觉自己面得一般,声网是在投递后一周给的面试通知,有些东西没准备全。面试官人还不错,但有些问题没懂啥意思。感觉面试官想完成个任务就走人。反问环节只问了什么时候通知(面试官说不知道),又问一共多少面(回答三面以上)