Differences from the JavaScript SDK
The Video Media SDK for Node.js shares the Room, Participant, and Track model and event names with the Twilio Video JavaScript SDK. It connects with the same Access Token and VideoGrant format. It uses the JavaScript SDK object model.
The Node.js SDK runs on a server without camera, microphone, or screen. The following table maps each feature between browser and server.
| Video JavaScript SDK | Video Media SDK for Node.js | |
|---|---|---|
| Send video frames | Captures local media from a camera or microphone. | Push raw frames without device capture. |
| Render video frames | Renders remote media. | Doesn't render the raw decoded frames. |
| Accept audio inputs | Accepts various input from devices. | Uses 48 kHz mono S16LE PCM. |
| Tune bandwidth | Supports adaptive simulcast and the TrackPriority API. | Uses bandwidthProfile, encodingParameters, and setContentPreferences(). |
| Create local tracks | Creates asynchronously after device permission. | Creates synchronously without device prompt. |
The JavaScript SDK runs in a browser. The Node.js SDK runs on Node.js 24 or later on Linux x64 or macOS x64. On Apple Silicon, install Rosetta. To learn more, see system requirements.
- Quickstart: Connect to a Room and move your first frames.
- Work with media frames: Learn the I420 video and PCM audio formats that replace device capture and rendering.