ENG-2985: WebRTC Phase 0 - Update publisher and playback examples#64
Draft
felipeMoran-wowza wants to merge 112 commits intomasterfrom
Draft
ENG-2985: WebRTC Phase 0 - Update publisher and playback examples#64felipeMoran-wowza wants to merge 112 commits intomasterfrom
felipeMoran-wowza wants to merge 112 commits intomasterfrom
Conversation
…NG-3207-add-support-for-whip-selection
…vigation-on-development ENG-3206 Fix navigation on development
…p-name-parameter-for-feature-flag ENG-3113: Added appName param in url for FeatureFlag
…NG-3207-add-support-for-whip-selection
…' into feature/ENG-3207-add-support-for-whip-selection
…-react-play-page ENG-3225: Update React play page
…' into feature/ENG-3207-add-support-for-whip-selection
…pport-for-whip-selection ENG-3207: Add support for whip selection
…' into feature/ENG-3262-update-react-publish-page
…-react-publish-page ENG-3262 Update react publish page
…pport-for-whep-selection ENG-3208: Add support for WHEP selection
…_the_webrtImplementation_flag_value_from_modern_to_v2 Change parameter from modern to v2
…e-publish-play-error-handling ENG-3387: Improve publish play error handling
…ew-examples-to-new-folder ENG-3488: Generate new project structure
…' into feature/ENG-3531-add-stun-harvester
…' into feature/ENG-3537-fix-connection-id-empty
…un-harvester ENG-3531: Add stun harvester
…nnection-id-empty ENG-3537: Fix connectionId empty on ice candidates
…_Composite_and_meeting_tabs_while_they_are_not_implemented ENG-3527 Remove Composite and meeting tabs while they are not implemented
…un-configuration-field ENG-3580: Add STUN and TURN configuration fields
…ikved sdp m cleanup when changing input devices
…different-mobile-cameras ENG-3855: Fix changing cameras in mobile and desktop
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR bundles all the work to adapt the WebRTC client examples to the new WebRTC reimplementation in Wowza Streaming Engine. The legacy examples are kept untouched but moved to v1/, and the new ones live in v2/, React-only (the jQuery variant was discontinued for the new version).
Repo reorganization
?webrtcImplementation=v2on the WebSocket URL so the server picks the new flow (see startPublish.js:214 and startPlay.js:255).Key differences between v1 and v2
Signaling protocol. In v1, messages were a single nested payload with
direction,command,streamInfo,sdp, anduserData. v2 flattens and formalizes this: every message declares amessageType(OFFER/CANDIDATE) and anaction(PUBLISH/VIEW), and the stream fields (applicationName,streamName,connectionId) live at the root. The status field in responses moved fromstatustostatusCode.ICE trickle. In v1,
iceCandidateswere bundled with the SDP in the server response. v2 implements real trickle ICE: candidates are sent as they're gathered in standaloneCANDIDATEmessages, with a queue (pendingCandidates) holding them until the server returns theconnectionIdso they can be associated. Same on the receive side for server-side candidates.Configurable
RTCPeerConnection. In v1, the peer connection was created with a barenew RTCPeerConnection()and no config. v2 accepts STUN and TURN servers configurable from the UI (IceServersUtils.js), with support for multiple comma-separated URLs and TURN credentials.No more SDP munging. v1 had to hand-edit the SDP to force bitrates and codecs (v1/.../mungeSDP.js). That file is gone in v2: negotiation runs directly on the SDP the browser produces.
WHIP / WHEP. Added support for WHIP (publish) and WHEP (playback) as alternatives to WebSocket signaling, with trickle ICE over
PATCH application/trickle-ice-sdpfrag(seestartPublishWhipandstartPlayWhep).Other v2 tweaks.
504/514from the repeater).Included tickets
webrtcImplementationflag changes frommoderntov2.connectionIdon candidates.