C++音视频八股文(流媒体协议基础 )
1. RTSP协议的工作流程是什么?主要包含哪些命令?
- RTSP定义:Real Time Streaming Protocol,实时流传输协议,是一个应用层协议,用于控制流媒体服务器,类似于视频播放器的遥控器
- 工作流程:客户端发送OPTIONS请求查询服务器支持的方法发送DESCRIBE获取媒体描述信息(SDP)发送SETUP建立会话,协商传输参数(RTP端口等)发送PLAY开始播放,服务器开始发送RTP数据流播放过程中可发送PAUSE暂停发送TEARDOWN结束会话,释放资源
- 主要命令:OPTIONS:查询服务器支持的方法DESCRIBE:获取媒体描述(返回SDP)SETUP:建立传输会话,分配资源PLAY:开始播放,可指定播放范围PAUSE:暂停播放TEARDOWN:终止会话GET_PARAMETER:获取参数,常用于保活SET_PARAMETER:设置参数
- 协议特点:基于文本的协议,类似HTTP,使用554端口,只负责控制不传输媒体数据,实际数据通过RTP/RTCP传输
- 应用场景:监控摄像头、视频点播、IPTV、专业视频设备
2. RTMP协议的特点是什么?适用于什么场景?
- RTMP定义:Real Time Messaging Protocol,实时消息传输协议,Adobe开发,基于TCP的应用层协议
- 主要特点:基于TCP传输,可靠性高,自动重传丢失数据低延迟,通常1-3秒延迟支持音视频和数据消息使用1935端口支持加密变体RTMPS和RTMPE
- 工作原理:建立TCP连接后进行握手,然后通过chunk分块传输数据,支持多路复用,可在一个连接上传输多个流
- 消息类型:音频消息、视频消息、数据消息(AMF格式)、控制消息(设置块大小、确认等)
- 适用场景:直播推流(OBS等推流工具)低延迟直播(互动直播)CDN分发的中间协议Flash时代的网页直播(现已淘汰)
- 优缺点:优点是延迟低、稳定可靠;缺点是浏览器不原生支持(Flash淘汰)、防火墙可能拦截、CDN支持成本高
3. HLS协议的原理是什么?M3U8文件的作用是什么?
- HLS定义:HTTP Live Streaming,苹果开发的基于HTTP的流媒体传输协议
- 工作原理:服务器将视频切分成多个小的TS文件(通常5-10秒)生成M3U8索引文件记录TS文件列表客户端先下载M3U8文件按顺序下载并播放TS文件定期更新M3U8获取最新分片(直播场景)
- M3U8文件作用:播放列表索引文件,文本格式记录所有TS分片的URL和时长包含流的元信息(编码格式、分辨率、码率)支持多码率自适应(Master Playlist)直播时动态更新,点播时固定
- M3U8结构:包含#EXTM3U标识、#EXT-X-VERSION版本、#EXT-X-TARGETDURATION目标时长、#EXTINF每个分片时长、#EXT-X-ENDLIST结束标记(点播)
- 优点:基于HTTP,穿透防火墙能力强CDN友好,可利用HTTP缓存支持自适应码率浏览器原生支持(iOS Safari、
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
C++八股文全集 文章被收录于专栏
本专栏系统梳理C++技术面试核心考点,涵盖语言基础、面向对象、内存管理、STL容器、模板编程及经典算法。从引用指针、虚函数表、智能指针等底层原理,到继承多态、运算符重载等OOP特性从const、static、inline等关键字辨析,到动态规划、KMP算法、并查集等手写实现。每个知识点以面试答题形式呈现,注重原理阐述而非冗长代码,帮助你快速构建完整知识体系,从容应对面试官提问,顺利拿下offer。


