Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
10d35f2
chore(deps): bump brace-expansion in /packages/server
dependabot[bot] Nov 26, 2025
2539e04
chore(deps-dev): bump pbkdf2 from 3.1.2 to 3.1.5 in /packages/sdk
dependabot[bot] Nov 26, 2025
1be3f0f
chore(deps): bump serialize-javascript and mocha in /packages/server
dependabot[bot] Nov 26, 2025
f3e1f1d
chore(deps-dev): bump base-x from 3.0.9 to 3.0.11 in /packages/demo
dependabot[bot] Nov 26, 2025
bb9dd36
chore(deps-dev): bump sha.js from 2.4.11 to 2.4.12 in /packages/sdk
dependabot[bot] Nov 26, 2025
4cec288
chore(deps-dev): bump cipher-base from 1.0.4 to 1.0.7 in /packages/sdk
dependabot[bot] Nov 26, 2025
a33df18
chore(deps): bump tmp from 0.2.1 to 0.2.5 in /packages/sdk
dependabot[bot] Jan 10, 2026
310b83a
chore(deps): bump lodash from 4.17.21 to 4.17.23
dependabot[bot] Jan 22, 2026
3dcd2aa
chore(deps): bump semver in /packages/server
dependabot[bot] Feb 5, 2026
457a4ee
chore(deps): bump qs and body-parser in /packages/sdk
dependabot[bot] Feb 12, 2026
f5e9533
chore(deps): bump ajv and fastify in /packages/server
dependabot[bot] Feb 17, 2026
4901a5c
chore(deps): bump tar and @mapbox/node-pre-gyp in /packages/server
dependabot[bot] Feb 18, 2026
3210058
chore(ci): upgrade GitHub Actions to v4
LucasMaupin Mar 5, 2026
4aed071
fix(sdk): null-safe regex match handling in util.ts
LucasMaupin Mar 5, 2026
3c6d328
feat(server): ISmbProtocol interface, retry resilience, and SMB tests
LucasMaupin Mar 5, 2026
44d62f9
fix(server): modernise Fastify 5 plugin patterns and remove fetch pol…
LucasMaupin Mar 6, 2026
48f50f1
Merge remote-tracking branch 'origin/dependabot/npm_and_yarn/packages…
LucasMaupin Mar 6, 2026
6e1b62a
Merge remote-tracking branch 'origin/dependabot/npm_and_yarn/packages…
LucasMaupin Mar 6, 2026
4c1cf28
Merge remote-tracking branch 'origin/dependabot/npm_and_yarn/packages…
LucasMaupin Mar 6, 2026
d1e5c3a
Merge remote-tracking branch 'origin/dependabot/npm_and_yarn/packages…
LucasMaupin Mar 6, 2026
8cb2851
Merge remote-tracking branch 'origin/dependabot/npm_and_yarn/packages…
LucasMaupin Mar 6, 2026
35fc6ed
Merge remote-tracking branch 'origin/dependabot/npm_and_yarn/packages…
LucasMaupin Mar 6, 2026
6a9813f
Merge remote-tracking branch 'origin/dependabot/npm_and_yarn/packages…
LucasMaupin Mar 6, 2026
c0033e3
Merge remote-tracking branch 'origin/dependabot/npm_and_yarn/lodash-4…
LucasMaupin Mar 6, 2026
25994d8
Merge remote-tracking branch 'origin/dependabot/npm_and_yarn/packages…
LucasMaupin Mar 6, 2026
914f00d
Merge remote-tracking branch 'origin/dependabot/npm_and_yarn/packages…
LucasMaupin Mar 6, 2026
0c5cbaa
Merge remote-tracking branch 'origin/dependabot/npm_and_yarn/packages…
LucasMaupin Mar 6, 2026
2b7384b
Merge remote-tracking branch 'origin/dependabot/npm_and_yarn/packages…
LucasMaupin Mar 6, 2026
9e21934
chore(deps): regenerate package-lock.json after merging dependabot up…
LucasMaupin Mar 6, 2026
b0d74da
feat(demo): redesign UI with dark sidebar layout and status indicators
LucasMaupin Mar 6, 2026
3c486e9
fix(server): add missing undici-types peer dependency for @types/node…
LucasMaupin Mar 6, 2026
f2c67e5
feat(demo): make video player fill content area, compact resources strip
LucasMaupin Mar 6, 2026
ea6bd28
fix(demo): prevent video overflow when stream is active
LucasMaupin Mar 6, 2026
824ae88
feat(demo): move Active Resources into sidebar below Capture
LucasMaupin Mar 6, 2026
9b2301d
fix(server): register SDP content-type parsers at root server level
LucasMaupin Mar 6, 2026
234bdf9
fix: remove duplicate Fastify 5 content-type parsers and HEAD routes
LucasMaupin Mar 6, 2026
4909275
fix: health check initial delay, resilient destroy, revert docker IPV…
LucasMaupin Mar 6, 2026
89b9223
fix(sdk): replace Karma with mocha+ts-node to fix test suite
LucasMaupin Mar 6, 2026
3a87912
fix(sdk): upgrade typedoc to 0.28.x for TypeScript 5 compatibility
LucasMaupin Mar 6, 2026
3a978e0
fix(server): lazy-load @koush/wrtc to prevent native build in CI, sup…
LucasMaupin Mar 6, 2026
27e4f17
fix: null-safety in SDP parsing, connectionfailed event, and demo rec…
LucasMaupin Mar 12, 2026
60076ac
revert(docker): restore docker-compose-sfu.yml to main state
LucasMaupin Mar 12, 2026
9985384
docs: update README screenshot to hosted GitHub asset
LucasMaupin Mar 13, 2026
c772233
chore(deps): bump lerna to 9.0.5 and fast-xml-parser to 4.5.4
LucasMaupin Mar 13, 2026
8eaa101
fix: remove lerna bootstrap postinstall script incompatible with v9
LucasMaupin Mar 13, 2026
8c8f2f1
fix: add npm workspaces to replace lerna bootstrap in v9
LucasMaupin Mar 13, 2026
7b65e41
fix: bump @types/node to ^22.0.0 for TypeScript 5 workspace compatibi…
LucasMaupin Mar 13, 2026
e4a8cfd
fix: replace @koush/wrtc with @roamhq/wrtc for Alpine/musl compatibility
LucasMaupin Mar 16, 2026
ad9063e
fix: replace remaining @koush/wrtc imports with @roamhq/wrtc
LucasMaupin Mar 16, 2026
b3aaf76
fix: add skipLibCheck to suppress @roamhq/wrtc type declaration confl…
LucasMaupin Mar 16, 2026
ee6f503
Revert "fix: add skipLibCheck to suppress @roamhq/wrtc type declarati…
LucasMaupin Mar 16, 2026
ec60ee5
Revert "fix: replace remaining @koush/wrtc imports with @roamhq/wrtc"
LucasMaupin Mar 16, 2026
7af1d7a
Revert "fix: replace @koush/wrtc with @roamhq/wrtc for Alpine/musl co…
LucasMaupin Mar 16, 2026
d26f7f8
chore: update gitignore with local yml
LucasMaupin Mar 18, 2026
e09360c
chore: add OSC deployment scripts and static server
LucasMaupin Mar 18, 2026
291a58a
fix(demo): add input:not([type]) selector to survive Parcel minification
LucasMaupin Mar 18, 2026
887312f
revert: restore root start script to lerna orchestration
LucasMaupin Mar 18, 2026
5e4dc3d
feat(demo): add active resources panel, capture-type icons, and impro…
LucasMaupin Mar 19, 2026
b9f03f4
chore: point root start script to demo server for OSC deployment
LucasMaupin Mar 19, 2026
ec13d2d
revert: restore root start script to lerna orchestration
LucasMaupin Mar 19, 2026
1daeaa5
chore: point root start script to demo server for OSC deployment
LucasMaupin Mar 19, 2026
2ac1ec2
revert: restore root start script to lerna orchestration
LucasMaupin Mar 19, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/deploy_demo.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v1
- uses: actions/setup-node@v1
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 16
registry-url: https://registry.npmjs.org/
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/deploy_dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v4

- name: Get the tag
id: get_tag
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v1
- uses: actions/setup-node@v1
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
registry-url: https://registry.npmjs.org/
Expand Down
5 changes: 3 additions & 2 deletions .github/workflows/unit-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,18 @@ jobs:
test:
name: Run unit tests
runs-on: ubuntu-latest
timeout-minutes: 10

strategy:
matrix:
node-version: [22.x]

steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v4

- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}

Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,6 @@ lerna-debug.log
.vscode/extensions.json
*.pem
tools/SymphonyMediaBridge
*.local.yml
.env.local

12 changes: 7 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
# WebRTC-HTTP ingestion protocol

![Screenshot](screenshot.png)
![Screenshot](https://github.com/user-attachments/assets/584b3280-af2c-440f-9f45-4f0814cd1b75)

Live demo at [web.whip.eyevinn.technology](https://web.whip.eyevinn.technology)

Client and Server modules for WebRTC HTTP Ingestion Protocol (WHIP)

| Module | Description |
| ------ | ----------- |
| [@eyevinn/whip-endpoint](https://www.npmjs.com/package/@eyevinn/whip-endpoint) | Server endpoint for providing WHIP resources |
| Module | Description |
| ---------------------------------------------------------------------------------- | --------------------------------------------------------------------- |
| [@eyevinn/whip-endpoint](https://www.npmjs.com/package/@eyevinn/whip-endpoint) | Server endpoint for providing WHIP resources |
| [@eyevinn/whip-web-client](https://www.npmjs.com/package/@eyevinn/whip-web-client) | Client Javascript SDK for browser based WHIP client (WebRTC producer) |

## Getting started
Expand All @@ -33,12 +33,14 @@ Start media server and WHEP egress endoint as docker containers
docker-compose -f docker-compose-sfu.yml up
```

For local development, make sure to change the IPV4_ADDR in the docker-compose-sfu.yml for both the sfu-origin and sfu-edge to your local ip.

The WHEP egress endpoint is then available at `http://localhost:8001/whep/channel/<channelId>`. The `<channelId>` is the one provided as a query parameter to the WHIP endpoint, e.g. `http://localhost:8000/api/v2/whip/sfu-broadcaster?channelId=<channelId>`. You can test WHEP playback with the Eyevinn WebRTC player available online at https://webrtc.player.eyevinn.technology/

### With TLS termination

```
NODE_ENV=development \
NODE_ENV=development \
TLS_TERMINATION_ENABLED=true \
WHIP_ENDPOINT_USE_HTTPS=true \
npm run dev
Expand Down
Loading
Loading