C++-FFmpeg-8-(1)基本概念与原理-rtsp-I、P、B 帧-DTS、PTS-

本文介绍了RTSP协议的基本概念,包括鉴权过程。同时,详细阐述了视频编码中的I、P、B帧的区别,以及DTS和PTS在解码与播放过程中的作用,帮助理解视频流处理中的时间同步问题。最后提到了RTSP协议的抓包分析,涉及网络协议分析的基础知识。
摘要由CSDN通过智能技术生成

目录

1.rtsp是什么?

2. I、P、B 帧

3.DTS、PTS

4.rtsp协议抓包分析?




1.rtsp是什么?

 

 
流程:



 

 鉴权: 2种 :basice64    Digest 哈希值 


 

 哈希值不可逆。nonce 做的单项散列(MD5,SHA512,国密),生成随机数。哈希是二进制。
base64 : 把二进制转成64个字母。
base16:进制

2. I、P、B 帧


要搞懂 DTS 和 PTS ,首先要先了解一下 I、P、B 帧。

I 帧 : 帧内编码帧 又称intra picture,I 帧通常是每个 GOP(MPEG 所使用的一种视频压缩技术)的第一个帧,经过适度地压缩,做为随机访问的参考点,可以当成图象。I帧可以看成是一个图像经过压缩后的产物。可独立解码。
P 帧 : 前向预测编码帧 又称predictive-frame,P 帧图像只采用前向时间预测,可以提高压缩效率和图像质量。
B 帧 : 双向预测内插编码帧 又称bi-directional interpolated prediction frame,可以大大提高压缩倍数。
I P B 帧的不同:
I 帧:    自身可以通过视频解压算法解压成一张单独的完整的图片。
P 帧:需要参考其前面的一个 I 帧 或者 P 帧来生成一张完整的图片。
B 帧:  则要参考其前一个 I 或者 P 帧及其后面的一个 P 帧来生成一张完整的图片。
两个 I frame 之间形成一个 GOP,在 x264 中同时可以通过参数来设定bf的大小,即:I 和 P 或者两个 P 之间 B 的数量。

通过上述基本可以说明如果有 B frame 存在的情况下一个 GOP 的最后一个 frame 一定是 P.

这就带来一个问题:在视频流中,先到来的 B 帧无法立即解码,需要等待它依赖的后面的 I、P 帧先解码完成,这样一来播放时间与解码时间不一致了,顺序打乱了,那这些帧该如何播放呢?这时就需要我们来了解另外两个概念:DTS 和 PTS。

3.DTS、PTS


DTS、PTS 的概念如下所述:

DTS(Decoding Time Stamp):即解码时间戳,这个时间戳的意义在于告诉播放器该在什么时候解码这一帧的数据。
PTS(Presentation Time Stamp):即显示时间戳,这个时间戳用来告诉播放器该在什么时候显示这一帧的数据。
虽然 DTS、PTS 是用于指导播放端的行为,但它们是在编码的时候由编码器生成的。

在视频采集的时候是录制一帧就编码一帧发送一帧的,在编码的时候会生成 PTS,这里需要特别注意的是 frame(帧)的编码方式,在通常的场景中,编解码器编码一个 I 帧,然后向前跳过几个帧,用编码 I 帧作为基准帧对一个未来 P 帧进行编码,然后跳回到 I 帧之后的下一个帧。编码的 I 帧和 P 帧之间的帧被编码为 B 帧。之后,编码器会再次跳过几个帧,使用第一个 P 帧作为基准帧编码另外一个 P 帧,然后再次跳回,用 B 帧填充显示序列中的空隙。这个过程不断继续,每 12 到 15 个 P 帧和 B 帧内插入一个新的 I 帧。P 帧由前一个 I 帧或 P 帧图像来预测,而 B 帧由前后的两个 P 帧或一个 I 帧和一个 P 帧来预测,因而编解码和帧的显示顺序有所不同,如下所示:


 

 



4.rtsp协议抓包分析?
 




 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值