enhanced-rtmp: onMetaData: videocodecid not defined for HEVC, VP9 and AV1

Hi,

I am really glad a new version of RTMP is coming 🙏

In the FLV spec, there is a field in onMetaData called videocodecid where the codec was specified:

videocodecid: Number: Video codec ID used in the file (see E.4.3.1 for available CodecID values)

with CodecID:

Codec Identifier. The following values are defined: 2 = Sorenson H.263
3 = Screen video
4 = On2 VP6
5 = On2 VP6 with alpha channel 6 = Screen video version 2
7 = AVC

Unfortunately, in the current version of enhancements of RTMP spec, there is no mention of onMetaData’s videocodecid field. Is it something missing or is it because onMetaData is not really useful?

Best regards, Thibault

About this issue

  • Original URL
  • State: closed
  • Created a year ago
  • Reactions: 1
  • Comments: 17 (7 by maintainers)

Commits related to this issue

Most upvoted comments

Closing the issue. We added new onMetaData section in the spec. videocodecid property MUST now be set to a FOURCC value (per enhanced-RTMP spec) when video codec is signaled via FourCC. We alerted the OBS team of the new spec section.

We probably will not overload the meaning of videocodecid and instead provide a new property which will identify fourCC via a string (i.e. same style as in fourCcList property, see NetConnection connect command)

Hi, I’m sad to tell you that, at this moment, we can not guess whether the video codec is H264 or H265 from obs. Obs send metadata with videocodecid of 7 when push a H265 rtmp stream: 图片

And obs did not set fourCcList in NetConnection connect command: 图片

So when i am implementing enhanced-RTMP, i am very confused whether the stream is H264 or H265. Rtmp metadata will becoming dispensable, it can even lead to ambiguity.

Also, what videocodeid should be used for vp9 and av1?

So I strongly recommend adding a field in metadata that indicates the correct codecid.

Thanks, Best regards.