-
-
Notifications
You must be signed in to change notification settings - Fork 8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
obs-outputs: Add eRTMP multitrack audio support #10618
obs-outputs: Add eRTMP multitrack audio support #10618
Conversation
549d4c1
to
f1b0094
Compare
#10500 has been merged, so this can be rebased and undrafted. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Commit message nit:
obs-outputs: Add erRTMP multitrack audio support
erRTMP -> eRTMP
28e0352
to
b55ac21
Compare
b55ac21
to
2587c32
Compare
For what it's worth, I tested this and it worked as expected/configured. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tentatively approving this. Tests seemed fine. Would appreciate a second review.
Holding this due to a confirmed issue regarding audio/video desync that is unique to this implementation. |
Adding the link to the public alpha Enhanced RTMP v2 spec for posterity. |
@RytoEX: I just pushed a fix for the desync, it was an issue in librtmp's handling of type 3 chunks -> undrafting |
12635f2
to
9f2a2ef
Compare
Great work tracking that multitrack bug down. That must have been a pain. |
Not sure if the librtmp commit should be first or not. I wouldn't want the eRTMP multitrack audio commit to exhibit the buggy behavior, but I wasn't sure if the librtmp commit has other effects on the existing VOD Audio Track implementation. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great work. Ryan's suggestion to put the commit at the beginning rather than the end might be good but it doesn't really prevent merging of this PR or anything. We'll wait for just a bit more verification/testing to make sure everything's okay but otherwise seems good to go.
agreed, will move it to the beginning it doesn't affect the current vod track (as far as I can tell) because the current vod track uses Footnotes
|
9f2a2ef
to
45fbcb2
Compare
Per [1] type 3 chunks/RTMP_PACKET_SIZE_MINIMUM always use the previously sent (delta) timestamp as their _delta_ timestamp, so we need to inspect whatever was previously sent, rather than just looking at the previous packet's absolute timestamp. I.e., type 3 chunks are only permissible in this case if the previously encoded (delta) timestamp equals the current delta timestamp. [1] https://rtmp.veriskope.com/docs/spec/#53124-type-3
45fbcb2
to
f080c6b
Compare
Further tests with the added librtmp commit seem promising, so I'm going to call this safe and merge it. |
Description
In addition to multitrack video, eRTMP also includes support for multitrack audio, thus making things like VOD track available in the spec, rather than relying on FLV byte arrays
Motivation and Context
VOD track currently uses FLV byte arrays to carry the additional audio track, where byte arrays are part of the spec, but using them for audio isn't. With the updated eRTMP multitrack audio support general overhead is lower and also the transport format is part of an open specification.
How Has This Been Tested?
eRTMP multitrack audio is being tested internally at Twitch
Types of changes
Checklist: