简体   繁体   中英

How to get resolution of h264 video stream

I'm doing a SIP client and have some problems with it. I invite user via SIP server, and get SDP parameters from it. However, user client (MicroSip) did not send sdprop-params in SDP. Moreover, it did not send SPS/PPS slices in RTP stream either.

How to get picture parameters in this way?

Wireshark dump

        Session Description Protocol
            Session Description Protocol Version (v): 0
            Owner/Creator, Session Id (o): - 1516869540 1516869540 IN IP4 172.16.50.175
            Session Name (s): mss
            Connection Information (c): IN IP4 172.16.50.175
            Time Description, active time (t): 0 0
            Media Description, name and address (m): audio 4000 RTP/AVP 97 100
            Connection Information (c): IN IP4 172.16.50.175
            Media Attribute (a): rtcp:4001 IN IP4 172.16.50.175
                Media Attribute Fieldname: rtcp
                Media Attribute Value: 4001 IN IP4 172.16.50.175
            Media Attribute (a): sendrecv
            Media Attribute (a): rtpmap:97 opus/48000/2
                Media Attribute Fieldname: rtpmap
                Media Format: 97
                MIME Type: opus
                Sample Rate: 48000
            Media Attribute (a): fmtp:97 maxplaybackrate=24000
                Media Attribute Fieldname: fmtp
                Media Format: 97 [opus]
                Media format specific parameters: maxplaybackrate=24000
            Media Attribute (a): rtpmap:100 telephone-event/8000
                Media Attribute Fieldname: rtpmap
                Media Format: 100
                MIME Type: telephone-event
                Sample Rate: 8000
            Media Attribute (a): fmtp:100 0-16
                Media Attribute Fieldname: fmtp
                Media Format: 100 [telephone-event]
                Media format specific parameters: 0-16
            Media Description, name and address (m): video 4002 RTP/AVP 97
            Connection Information (c): IN IP4 172.16.50.175
            Media Attribute (a): rtcp:4003 IN IP4 172.16.50.175
                Media Attribute Fieldname: rtcp
                Media Attribute Value: 4003 IN IP4 172.16.50.175
            Media Attribute (a): sendrecv
            Media Attribute (a): rtpmap:97 H264/90000
                Media Attribute Fieldname: rtpmap
                Media Format: 97
                MIME Type: H264
                Sample Rate: 90000
            Media Attribute (a): fmtp:97 profile-level-id=42801e; packetization-mode=0
                Media Attribute Fieldname: fmtp
                Media Format: 97 [H264]
                Media format specific parameters: profile-level-id=42801e
                    Profile: 42801e
                Media format specific parameters: packetization-mode=0
                    [Packetization mode: Single NAL mode (0)]

Сlient每1秒发送一次SPS / PPS slicec,您必须等待。

The SPS / PPS may only be sent in the startup and never again depending on the video sender. eg Polycom VVX video phones

From the SDP you can only find the maximum bit rate based on the Profile value which will restrict what can be received. Please note I said

The profile value of 42801e is:

So this will define the maximum bitrate and the possible resolutions based on that bitrate as support by the level and also what H264 features are supported by the profile (CBP).

To force a SPS / PPS to be sent to you, can send a Media Control command to the video sender as per RFC5168 . You should send one of these when you detect dropped packets or if the user requests it (IE the user sees a corrupt picture and indicates they want a refresh). You could send them on a regular basis if you like.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM