1、介绍一下自己最熟悉的项目,并讲讲遇到的难题及解决思路==》websocket接收大数据时出现丢数据的情况
2、说两个c++11里比较常用的特性==》锁和智能指针,guard_lock的用法和局限性,unique_lock用法,智能指针shared_ptr
3、音视频同步==》讲了ffplay的三种同步方式
4、ffmpeg里处理MP4文件播放==》先创建formatcontex上下文,查找流获取流索引,读帧,解码、播放
5、avpacket和avstream的区别==》前者存储解码器数据,后者存放解码后数据
6、音视频里的pts来源?avpacket和avframe里面的pts的区别==》时基都是一样的,都来自于AVStream,AVStream
的time_base
的单位是秒。每种格式的time_base
的值不一样,根据采样来计算,比如mpeg
的pts
、dts
都是以90kHz
来采样的,所以采样间隔就是1/900000
秒
7、项目里的高倍速回放优化相关的东西==》性能瓶颈是啥?优化到什么程度?怎么实现的优化
8、app回放信令优化,响应速度提升怎么做的
9、intel linux下解码用到了什么?
10、sdl用作什么?
11、死锁定位方法==》先确认业务范围,再加日志确认==》面试官的回答中加了打印线程id等关键信息
12、内存泄漏怎么定位和规避==》win上面内存统计,linux下vargrlid
13.花屏问题怎么去确认==》定位到对应卡顿时间点的I帧,使用三方工具播放264/265文件,如elecard
14、ffmpeg内部如何将264的MP4文件转成265的ts文件==》先解封装,解码、libx265编码、封装成ts
15、是否跨平台开发过==》媒体库支持跨平台
16、数据结构:实现双向链表的插入和查找==》时间短没写完,后续补充完后发给面试官
17、画面响应实时性提升80%的作法==》实现了非标准rtsp,节省了信令交互时间==》进一步询问如何得到80%的结果==》对比前后版本从点击app到出图的时间
18、除单例和工厂模式外还用到过其他哪些设计模式==》无用到