从H264/H265码流中获取宽、高及帧率

本文介绍了如何从H264和H265的码流中计算图像的宽度、高度以及帧率。通过分析SPS字段,提供了针对不同情况的计算公式,并提及了在处理特殊分辨率时的注意事项。同时,讨论了H264和H265帧率的计算方法,指出在某些情况下可能存在的误差和需要注意的细节。
摘要由CSDN通过智能技术生成

在做码流分析时,图像分辨率、帧率这类的基本信息,当然不可少。本文介绍如何从NAL中计算到图像宽、高,还有分辨率。于是H264和H265有相似性,就在一起写了。
一、从码流获得宽、高
1、H264
宽高可从SPS字段计算得到,公式如下:

Width = (pic_width_in_mbs_minus1+1)*16;
Height = (pic_height_in_map_units_minus1+1)*16;

但以上是针对宽高是16的整数倍的情况,当不是16整数倍时,frame_cropping_flag值为1,frame_mbs_only_flag为1,公式如下:
(也可以认为统一使用下面的公式)

width = ((pic_width_in_mbs_minus1 +1)*16) - frame_crop_left_offset*2 - frame_crop_right_offset*2;
height= ((2 - frame_mbs_only_flag)* (pic_height_in_map_units_minus1 +1) * 16) - \
(frame_crop_top_offset * 2) - (frame_crop_bottom_offset * 2);

比如一个1080P视频的SPS信息如下:

pic_width_in_mbs_minus1 : 119
pic_height_in_map_units_minus1 : 67 
frame_mbs_only_flag : 1
mb_adaptive_frame_field_flag : 0
direct_8x8_inference_flag : 1
fr
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值