Comments (6)
since this is sent by clients to a server, and the proposal is to have distinct names for video and audio, a server could be backwards compatible with this beta spec by understanding fourCcList
as well as the new video & audio ones.
from enhanced-rtmp.
Good point, I am leaning towards making the requested change. One concern, even though the document is officially beta I am wondering if anyone will be affected by the name change...
from enhanced-rtmp.
since this is sent by clients to a server, and the proposal is to have distinct names for video and audio, a server could be backwards compatible with this beta spec by understanding
fourCcList
as well as the new video & audio ones.
A later client talking to a server that was just release with enhanced rtmp support and a that only understands 'fourCcList' property name will still be an issue. Server will need to be updated, which it probably will once more codecs get introduced.
from enhanced-rtmp.
In thinking about this some more. I am somewhat hesitant to change the name of fourCcList property to avoid any future confusion. But looking at the proposal in #15 we could perhaps solve this by introducing some special characters. Ex.
- "*" - To signal that the client can receive any codec.
- "a" - To signal that the FourCC values which follow this entry in the the fourCcList identify audio codecs
- "v" - To signal that the FourCC values which follow this entry in the the fourCcList identify video codecs. This is the default value which is optional when the list starts with video codecs.
- "a*" - To signal that the client can receive any audio codec and to optionally state which audio codecs it can decode
- "v*" - To signal that the client can receive any video codec and to optionally state which video codecs it can decode
This style of signaling is future proof and avoids renaming fourCcList property or adding new ones based on the codec type.
from enhanced-rtmp.
i have two concerns with the above:
- traditional
audioCodecs
andvideoCodecs
are essentially sets, and today'sfourCcList
can also be considered a set, where order doesn't matter. if the list is now ordered with delimiters (that is,a
andv
to indicate the following fourCCs up to the next delimiter are audio or video, or a set if there are no delimiters or up to the first delimiter), that is a significant increase in semantic complexity. - if we're going to stay with a unified
fourCcList
instead of having separate ones for audio and video, i like the idea of "any codec", "any audio codec", and "any video codec". however, i'd recommend usingaudio/*
andvideo/*
instead ofa*
andv*
, to avoid any potential confusion or surprise for future generations who might think to interpret e.g.a*
to be like a shell glob/regex (that is, matching any fourCC starting with "a"), especially if*
is the "any codec" wildcard. consider that there's alreadyav01
(would match globa*
) andvp09
(would match globv*
), both video types, in the repertoire.
the situation i described up top, "the client supports receiving a codec i've never heard of, but i wish i knew if it was an audio codec i've never heard of or a video codec i've never heard of" is likely not going to be enough of a practical/functional concern to warrant significantly increasing the semantic complexity of encoding "here are the codecs i can receive". it might be of moderate interest for analytics, but even then i don't think we should increase the complexity of the everyday signaling just for that.
from enhanced-rtmp.
Related Issues (20)
- connect response doesn't indicate support for Enhanced RTMP HOT 9
- please clarify meaning and semantics of PacketTypeMPEG2TSSequenceStart HOT 4
- PacketTypeMetadata SHOULD or MUST come before the video sequence it affects? HOT 5
- fourCcList description should explicitly state support for receiving those codecs HOT 1
- fourCcList definition should provide for a wildcard HOT 4
- consider enabling Discussions on this repo HOT 1
- Additional Audio Codec: FLAC HOT 7
- enchanced HOT 1
- Hakiiii
- Support for QUIC? HOT 3
- Hi HOT 1
- Support CodecID 12 for HEVC HOT 6
- Fgvh
- OBS and SRS supported enhanced RTMP for user to push HEVC via RTMP. HOT 1
- What's the plan to make the document as Internet standard? HOT 3
- What the status of this document? HOT 1
- What about adding also H.266/VVC? HOT 8
- onMetaData: videocodecid not defined for HEVC, VP9 and AV1 HOT 17
- presence of composition time offset in PacketTypeCodedFrames is codec-specific HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from enhanced-rtmp.