veovera / enhanced-rtmp

This industry-sanctioned project introduces significant enhancements to the RTMP and FLV specifications, outlining advanced features aimed at revitalizing and modernizing the RTMP solution.
https://veovera.org
Apache License 2.0
272 stars 24 forks source link

What about adding also H.266/VVC? #7

Open yekuiwang opened 1 year ago

yekuiwang commented 1 year ago

Indeed, thanks from our side as well for the good job for enhancing the RTMP & FLV specs!

We at Bytedance are interested in adding also the support of H.266/VVC. Is it OK to add that?

yekuiwang commented 1 year ago

OK, let me ask two other questions. Anyone else interested in adding H.266/VVC? Anyone has whatever concern on adding H.266/VVC?

veovera commented 1 year ago

Thanks for the H.266 suggestion. We will take a look and evaluate.

zenomt commented 1 year ago

with the move to fourcc, adding new codecs should be independent of RTMP and FLV now. instead adding new codecs should be with codec-specific docs that give the fourcc and any codec-specific syntax or semantics mapped onto the generic enhanced RTMP (similar to the WebCodecs Codec Registry and e.g. HEVC Registration).

i'm only just starting to look deep at Enhanced RTMP, but i see one hindrance to generality already regarding composition time offsets, which i'll raise in a new issue.

zenomt commented 1 year ago

i opened #9 about the composition time offset issue, and also suggested a separation of syntax from codec registry.

veovera commented 1 year ago

RTMP messages are transferred using a lower level transport layer (i.e. RTMP Chunk Stream). RTMP messages that carry compressed AV data may have associated hint information as part of the message. Correct, you can define any fourcc. It would however behoove to define fourcc plus appropriate set or hints/rules at the same time as part of the Enhanced RTMP to make sure that developers settle on specific set of rules and behaviors for a particular fourcc data format. This assures that a stream behaves the same no matter what tech stack delivers or plays it.

yekuiwang commented 1 year ago

Given the way how H.265/HEVC has been added, the changes needed for adding H.266/VVC can be simple and similar, like the following: 1) Add a Video FourCC value VVC = {'v', 'v', 'c', '1'}. 2) Add VideoTagBody corresponding to VVC, similar as that for HEVC, but with "DATA = [VvcDecoderConfigurationRecord]" and "DATA = [VVC NALU]".

TroyKomodo commented 1 year ago

Out of curiosity is there any playback support in the major vendors for VVC yet?

I have not heard much about VVC. I was curious if anyone is currently working on adding support to chromium, vlc or ffmpeg.

Since, well as nice as it would be to supporting the codec using RTMP I dont understand what device will end up consuming the stream if there is currently no support anywhere else

yekuiwang commented 1 year ago

@TroyKomodo You can find information on the deployment status of the VVC standard from this document: https://www.jvet-experts.org/doc_end_user/current_document.php?id=12630.