从RTSP的DESCRIBE返回的SDP中计算视频宽和高

以下限于H264.

  • SDP中计算宽高用到的参数


    DESCRIBE成功后返回sdp信息中的SPS信息局部
  • 计算公式

// 计算宽和高 简易公式
Width  = (pic_width_in_mbs_minus1        + 1) * 16;
Height = (pic_height_in_map_units_minus1 + 1) * 16;
Width  -= (frame_crop_left_offset + frame_crop_right_offset) * 2;
Height -= (frame_crop_top_offset  + frame_crop_bottom_offset) * 2;

更详细复杂的可参见: http://ju.outofmemory.cn/entry/208773

  • 计算实例
Width  = (119 + 1) * 16 - (0 + 0) * 2 = 1920
Height = (67  + 1) * 16 - (0 + 4) * 2 = 1088 - 8 = 1080
  • 代码实例
        Width  = (pic_width_in_mbs_minus1        + 1) * 16;
        Height = (pic_height_in_map_units_minus1 + 1) * 16;

        int frame_mbs_only_flag;
        int frame_cropping_flag, frame_crop_left_offset, frame_crop_right_offset;
        int frame_crop_top_offset, frame_crop_bottom_offset;

        ...

        frame_cropping_flag = u(1,buf,StartBit);
        if (frame_cropping_flag)
        {
            frame_crop_left_offset   = ...;
            frame_crop_right_offset  = ...;
            frame_crop_top_offset    = ...;
            frame_crop_bottom_offset = ...;

            Width  -= (frame_crop_left_offset + frame_crop_right_offset) << 0x1;
            Height -= (frame_crop_top_offset  + frame_crop_bottom_offset) << 0x1;
        }

References:
http://ju.outofmemory.cn/entry/208773
http://www.latelee.org/my-study/get-width-height-framerate-from-bitstream.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • http://www.latelee.org/my-study/get-width-height-framerat...
    ai___believe阅读 4,843评论 0 3
  • 使用RTP传输H264的时候,需要用到sdp协议描述,其中有两项:Sequence Parameter Sets ...
    rogerwu1228阅读 4,255评论 0 8
  • 扫雪是小时候每年必干的活。自己很小的时候都是父亲自己去扫雪,院子里、屋顶上、大门前,这几处是必须要扫的。扫院子是为...
    小小侠klx阅读 472评论 0 0
  • 这世界很奇妙 来来去去 去去来来 活着的坚强地活 守着天空和大地 走了的安静地走 不带走一片云彩 这就是人生 司空...
    色彩斑斓的云阅读 183评论 0 5