Skip to main content
Participant
December 21, 2009
Answered

Question about RTMP specification

  • December 21, 2009
  • 1 reply
  • 3045 views

Hello,

I have downloaded and read the RTMP specification, and am confused about some of the wording relating to the RTMP Chunk Stream.

Page 19 of the RTMP Chunk Stream specification states that an extended Timestamp must not be present if the timestamp field is not present, then further states that Type 3 chunks must not have this field.  The only Chunk message header that has a timestamp is the Type 0 header.  Types 1 and 2 do not have a Timestamp field (however they have a timestamp delta.)  If applicable, is the extended timestamp only included with a Type 0 chunk, or do Type 1 and Type 2 chunks also include it?

Thanks for your time.

    This topic has been closed for replies.
    Correct answer vgatto

    Right after section 6.1.2.4 it says:


    timestamp delta: 3 bytes

    For a type-1 or type-2 chunk, the difference between the previous
    chunk's timestamp and the current chunk's timestamp is sent here.
    If the delta is greater than or equal to 16777215 (hexadecimal
    0x00ffffff), this value MUST be 16777215, and the ‘extended
    timestamp header’ MUST be present. Otherwise, this value SHOULD be
    the entire delta.

    1 reply

    vgattoCorrect answer
    Participant
    December 21, 2009

    Right after section 6.1.2.4 it says:


    timestamp delta: 3 bytes

    For a type-1 or type-2 chunk, the difference between the previous
    chunk's timestamp and the current chunk's timestamp is sent here.
    If the delta is greater than or equal to 16777215 (hexadecimal
    0x00ffffff), this value MUST be 16777215, and the ‘extended
    timestamp header’ MUST be present. Otherwise, this value SHOULD be
    the entire delta.

    Participant
    July 22, 2011

    Hello i noticed a difference with the 'extended timestamp' in Type 3 chunks. The 'RTMP Specification' on page 19  say 'In the Type 3 chunks MUST NOT have this field.', but i see the 'extended timestamp' in chunks from the flash player. Here my trace with same decoding comments:



    06 channelId:6 Type 0 chunk
    FF FF FF timestamp
    00 BC 48 message length
    09 message type id

    01 00 00 00 msg stream id
    01 64 3D D0 extended timestamp

    payload chunk size is 128

    12 00 00 84 02 80 9E FE 25 2A 2E F8 30 3F 99 FC

    4C AB 6E B7 2F CB CB E2 DE 62 A7 86 9E BC 3E 04

    05 73 C3 D1 F0 FB 70 45 12 80 32 CE 4C B3 44 6E

    76 37 66 62 C7 A5 84 A0 60 12 C1 80 51 55 E9 41

    80 D5 06 01 69 55 53 EB 70 18 06 10 60 1A FC C2

    BF 4C B0 03 65 1D E5 FA 6B 57 AE 91 80 C0 25 03

    00 A9 E2 EB F0 60 36 01 80 61 B6 65 1D 83 00 D0

    0C 03 82 B1 16 C0 52 89 35 7A D3 18 C2 88 F6 CD
    C6 channelId:6 Type 3 chunk

    01 64 3D D0 (I think tihs is a extended timestamp)

    00 FE 03 02 F7 28 19 50 AF F8 55 7D 8C 35 1A 33

    0E 3D EE DC F2 75 3B 10 E4 CC 21 7B CF C1 80 11

    06 00 64 BF 41 0C 18 00 F0 0C F9 7F F2 DA AC 18

    01 10 40 56 3B C5 17 3F 4B BE AD AC B6 E5 DC C1

    DC 91 EF 60 C0 4F 03 00 3E 5F B6 83 00 36 0C 00

    99 7C A0 C1 88 80 62 A5 3C C0 60 9E 81 80 10 CD

    9B 59 83 BE B0 E8 F5 40 C0 22 03 00 A9 00 D8 30

    0C 00 C0 36 97 F2 D0 60 5E 02 1D 08 39 F1 EE 03

    and the next chunk

    C6 channelId:6 Type 3 chunk

    01 64 3D D0 (I think tihs is a extended timestamp)

    04 F2 07 FB 67 07 6D F6 5B B6 9F 8E A0 C0 20 83

    00 B3 E5 14 18 0F 00 84 AF 6A AD A2 58 30 02 A0

    C0 0C 04 39 F8 A6 A9 D0 60 3E 41 80 10 2F 6B 16

    98 C0 8A E6 AF 2A 12 44 75 73 CA F6 62 90 3F FA

    58 08 52 6C 63 AB 64 E1 D8 70 43 FC 9C 2F 2F F5

    9B 66 5A 0A AD FB 48 0C 3D E8 18 0A 60 60 09 2D

    55 FF 03 00 3A 0C 00 CA 8B C5 70 4B 06 00 60 18

    00 F2 FA 8F EA 84 88 5D F9 19 6B E0 59 EF 5E 06

    Is this an error in the Flash Player or a mistake in the 'RTMP Specification' ?


    October 12, 2011

    Did you ever get a response to this from Adobe?  This seems to be the standard behavior even though it violates the spec.